如何将Azure AD B2C配置为Amazon Cognito的身份提供商(IdP)?集成配置方法咨询
我之前也折腾过这个配置,确实官方文档有时候讲得太笼统,给你梳理一下一步步的实操步骤,应该能帮你搞定:
一、先在Azure AD B2C侧完成前置配置
- 注册Web应用程序:登录Azure AD B2C门户,新建一个应用,类型选择「Web」,然后设置重定向URI为Cognito的固定回调格式:
https://<你的Cognito用户池域名>/oauth2/idpresponse。创建完成后,务必保存好应用的客户端ID和客户端密钥,这两个是后续配置的核心凭证。 - 配置用户流/自定义策略:如果用基础用户流,选一个「SignUpSignIn」类型的流,确保启用OpenID Connect协议,然后记下该用户流的元数据端点(格式一般是
https://<你的B2C租户名>.b2clogin.com/<你的B2C租户名>.onmicrosoft.com/<用户流名称>/v2.0/.well-known/openid-configuration);如果用自定义策略,要确保策略里配置了正确的受众和重定向规则。
二、在Amazon Cognito中添加Azure AD B2C作为身份提供商
- 进入你的Cognito用户池后台,切换到「身份提供商」选项卡,选择「OpenID Connect」类型。
- 填写核心配置项:
- 提供商名称:起个好记的标识,比如
AzureADB2C - 客户端ID:填入Azure侧获取的应用客户端ID
- 客户端密钥:填入Azure侧获取的应用客户端密钥
- 授权端点:从B2C元数据里复制
authorization_endpoint的值 - 令牌端点:从B2C元数据里复制
token_endpoint的值 - 用户信息端点:从B2C元数据里复制
userinfo_endpoint的值 - JWKS URI:从B2C元数据里复制
jwks_uri的值
- 提供商名称:起个好记的标识,比如
- 配置属性映射:这一步是避免用户信息丢失的关键,比如把B2C返回的
email映射到Cognito的email属性,name映射到Cognito的name属性,sub映射到Cognito的username(或者自定义属性,根据业务需求调整)。 - 启用并关联应用客户端:保存配置后,在「应用客户端」的「身份提供商设置」里,勾选刚才添加的Azure AD B2C,这样用户登录托管UI时就能看到这个第三方登录选项。
三、验证配置是否生效
- 打开Cognito托管UI链接(格式:
https://<你的用户池域名>/login?client_id=<你的应用客户端ID>&response_type=code&scope=openid&redirect_uri=<你的应用回调地址>),选择Azure AD B2C登录选项,测试是否能正常跳转到B2C登录页,登录成功后是否能回调到你的应用,且Cognito能正确获取并存储用户信息。 - 如果遇到报错,优先检查:重定向URI是否Azure和Cognito两边完全一致、客户端ID/密钥是否输入错误、属性映射是否匹配了正确的字段;也可以打开Cognito的CloudWatch日志,查看具体的错误详情(比如令牌验证失败、字段映射缺失等)。
内容的提问来源于stack exchange,提问作者Thomas George
相关产品推荐
相关产品推荐

