You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置AWS Cognito联合登录 实现多Azure AD租户下微软账户(live.com)身份验证

AWS Cognito 实现多租户微软联合登录的可行方案

方案1:切换为Azure AD多租户企业应用 + Cognito OIDC配置(成本最低的通用方案)

这是实现通用Login with Microsoft按钮最推荐的路径,不需要为每个客户单独做配置:

  • 首先将你之前创建的单租户Azure AD企业应用切换为多租户类型:在Azure门户的应用注册页面「身份验证」板块,将支持的账户类型修改为「任何组织目录中的账户(任何Azure AD目录 - 多租户)」,如果需要同时支持个人微软账户也可以选择包含个人账号的选项
  • 回到Cognito用户池的「身份提供商」配置页,更新原有Azure AD OIDC提供商的参数:
    • 将原有的issuer地址从https://login.microsoftonline.com/<你的单租户ID>/v2.0替换为https://login.microsoftonline.com/common/v2.0,这个通用端点会自动适配不同租户的用户登录请求
    • 确认OIDC配置的scope包含openid email profile,确保可以拉取到不同租户用户的基础身份信息
    • 原有客户端ID、客户端Secret无需修改,多租户应用全局通用
  • 前端直接配置Login with Microsoft按钮,跳转指向Cognito托管UI对应的身份提供商入口即可,不需要额外的租户区分逻辑
  • 提前在Azure应用的「API权限」板块为User.Read权限授予管理员同意,避免不同租户的用户登录时需要其租户管理员单独授权,低权限场景也可以配置为允许用户自行同意

方案2:多身份提供商动态匹配(适用于有强租户隔离要求的场景)

如果你的客户要求必须使用自己租户内注册的企业应用做身份验证,可以选择这种方案:

  • 提前为每个客户的Azure AD租户,在Cognito用户池中单独配置独立的OIDC身份提供商,每个提供商对应一个客户的租户ID
  • 前端登录页增加简单前置逻辑:用户点击Login with Microsoft按钮后,先让用户输入企业邮箱,根据邮箱后缀匹配对应的Cognito身份提供商ID,再跳转到对应认证地址
  • 该方案优势是可以为不同客户配置独立的身份验证规则、属性映射逻辑,适合对数据隔离有严格要求的企业级场景

方案3:基于Amplify Auth组件快速实现

如果你使用AWS Amplify作为前端开发框架,可以直接在Amplify Auth配置中填入多租户Azure AD的OIDC参数,Amplify自带的UI组件可以直接生成标准的Login with Microsoft按钮,不需要自行处理跳转、回调、令牌校验等逻辑。

额外注意要点

  • 属性映射配置:建议用Azure AD返回的oid字段作为Cognito用户的唯一标识,避免不同租户出现重复邮箱导致的用户身份冲突
  • 租户白名单控制:如果不希望所有Azure AD租户的用户都能登录,可以在Cognito的预令牌生成Lambda触发器中加入租户校验逻辑,只允许你指定的租户ID列表内的用户完成登录
  • 回调地址配置:多租户应用的回调地址统一配置为Cognito的回调地址即可,不需要为每个客户单独添加回调规则

内容的提问来源于stack exchange,提问作者Mahesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:06:03