【问题标题】:B2C changes my custom subdomain to an onmicrosoft.com subdomain; redirect_uri_mismatch; AADB2C90006B2C 将我的自定义子域更改为 onmicrosoft.com 子域;重定向uri不匹配; AADB2C90006
【发布时间】:2018-01-12 03:44:44
【问题描述】:

我的 webapp 使用 B2C 进行身份验证。当我使用默认域 (tenant.onmicrosoft.com) 或简单的自定义域 (sampledomain.com) 注册我的应用程序时,一切正常。

我想使用一个子域进行身份验证 (login.sampledomain.com) 并为我的每个合作伙伴组织使用一个单独的子域 (partner1.sampledomain.com, partner2.sampledomain.com),我已按照说明进行操作 https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-app-registration#limitations 没有成功。

当我执行身份验证挑战时 var redirectUrl = "https://login.sampledomain.com/auth-callback"; HttpContext.GetOwinContext().Authentication.Challenge( new AuthenticationProperties { RedirectUri = redirectUrl })

错误消息显示我的子域的 错误 值:

"AADB2C90006:重定向 URI 请求中提供的https://login.sampledomain.onmicrosoft.com/ 是 未为客户注册"

因此,我配置的子域“login.sampledomain.com”在 B2C 中显示为不正确的值“login.sampledomain.onmicrosoft.com”。。 p>

我可以提供一些其他属性或配置设置,以便 B2C 不会操纵我的子域。

是否有其他人使用 B2C 自定义子域,这可能吗?

【问题讨论】:

  • AuthenticationProperties.RedirectUri 属性是指 B2C 令牌已被身份验证中间件验证后重定向到的返回 URL。您在启动类中将OpenIdConnectAuthenticationOptions.CallbackPath 属性设置为什么?这是在 B2C 身份验证请求中作为 redirect_uri 参数发送的内容。
  • 怎么按照文档添加回复地址却失败了?有任何错误信息吗?您必须在回复 URL 中添加https://sampledomain.comhttps://partner1.sampledomain.comhttps://partner2.sampledomain.com。注意:您不能在回复 URL 中添加不同的域。

标签: azure azure-active-directory azure-ad-b2c


【解决方案1】:

Authentication / Tokens 的客户拥有的域目前受支持!所有身份验证/授权请求都应发送至https://login.microsoftonline.com//oauth2/[authorize|token]。您将在 Azure AD 中注册自己的域这一事实不会改变这一事实。

已经有一个想法有足够的票数并计划支持该要求:https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/15334317-customer-owned-domains

另外,你可以配置多个reply-urls,注意-所有reply URLs都属于同一个根域:https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-app-registration#limitations

【讨论】:

    【解决方案2】:

    按照 cmets 中的建议,我尝试更新 CallbackPath(原始值为“/”),但没有任何区别,发生了同样的错误。 我还仔细按照说明创建了一个新的应用程序注册,同样出现了同样的错误。

    鉴于这些更改没有任何效果,B2C 似乎从 我的 AAD 租户名称而不是从 重定向 URL 派生了错误重定向 URL请求或应用程序注册中的设置。

    因此,我没有使用我的 AAD 租户名称为 OAuth 交换构建元数据地址,而是尝试了租户 ID (GUID)。

    即在 URL 中不使用租户名称 https://login.microsoftonline.com/tfp/sampledomain.com/ B2C_1_MySignInPolicy/v2.0/.well-known/openid-configuration

    我在网址中使用了租户 ID https://login.microsoftonline.com/tfp/1234abcd-1111-abcd-2222-abcd1234abdc/ B2C_1_MySignInPolicy/v2.0/.well-known/openid-configuration

    请求中的redirectUri是https://login.sampledomain.com/

    就这样......它工作了。不再有 redirect_uri_mismatch、AADB2C90006 错误。

    我仍然需要跨不同的自定义子域和策略类型进行测试,但我现在可以登录应用程序。

    这里仍然有一些令人讨厌的试验和错误,所以如果有人可以分享关于正在发生的事情的信息,我希望有一个更清晰的画面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 2017-04-12
      • 2023-03-20
      • 2017-02-02
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多