首页 > 解决方案 > 在 signin_signup 自定义策略中 EnforceIdTokenHintOnLogout="true" 时出现 Azure AD B2C 错误“未指定 id_token_hint 参数”

问题描述

我需要确保 post_logout_redirect_uri 只能将用户定向到列入白名单的 URI,因此基于Azure AD B2C 中的答案易受 Open Redirect 影响?我添加了

SingleSignOn Scope="Tenant" EnforceIdTokenHintOnLogout="false" 

到我们的 signin_signup 自定义策略中的 ReplyingParty 的 UserJourneyBehaviors 部分。但是,当登录时出现错误

AADB2C90272:请求中未指定 id_token_hint 参数。请提供令牌并重试。

当我阅读微软的文档时,它指出

将先前发布的 ID 令牌传递给注销端点,作为有关最终用户与客户端的当前经过身份验证的会话的提示

但是,用户还没有登录,所以他们还没有颁发 ID 令牌来通过,并且在收到此错误后不允许他们登录。

我尝试在应用程序的身份验证选项卡中启用“ID 令牌(用于隐式和混合流)”选项,但这无济于事,因为第一次重定向到 Azure AD B2C 添加了 post_logout_redirect_uri 参数。

我还尝试设置PostLogoutRedirectUri为空字符串、null 和来自先前登录的 JWT 令牌,OpenIdConnectAuthenticationOptions因为它似乎是在重定向到 signin_signup 时生成 post_logout_redirect_uri 的位置也无济于事。

id_token_hint 应该是从 Azure AD B2C 返回的 JWTToken 还是另一个 ID 令牌?有没有人有任何 C# 代码显示如何传递它?

标签: azuresingle-sign-on

解决方案


推荐阅读