【问题标题】:Azure AD B2C Automatic logout - Authorization Code Flow with PKCE - Custom policies - msalAzure AD B2C 自动注销 - 使用 PKCE 的授权代码流 - 自定义策略 - msal
【发布时间】:2021-11-12 16:21:19
【问题描述】:

如何让应用程序在访问令牌过期后自动注销?以下是申请详情

  1. 在 Azure AD B2C 中设置应用程序。
  2. 使用 @zure/msal-browser 和 @azure/msal-react
  3. 在 Azure AD B2C 自定义策略中设置访问令牌超时

观察到应用程序在访问令牌到期后没有注销用户。使用刷新令牌获取新的访问令牌。

在自定义策略中设置刷新令牌超时对应用没有影响。

谢谢, -萨西。

【问题讨论】:

    标签: azure-ad-b2c msal


    【解决方案1】:

    • 请检查 Azure AD B2C 自定义策略中的 Web 应用会话行为配置,以便在会话超时后自动注销用户。 webapp 会话生存期是 Azure AD B2C 会话 cookie 在成功身份验证后存储在用户浏览器上的时间,最长可设置为 24 小时。它有两个用于设置的参数,即滚动和绝对,其中“滚动”是指每次用户执行基于 cookie 的身份验证时扩展会话,“绝对”是指用户在之后进行的强制身份验证令牌超时。

    • 此外,如果传递了有效的 id_token_hint 并且启用了注销请求中的 Require ID 令牌,Azure AD B2C 会在执行重定向之前验证 post_logout_redirect_uri 的值是否与应用程序配置的重定向 URI 之一匹配。注销请求中对 id_token 的要求允许您的应用程序获取刷新令牌并在“ID_token”超时后重新验证用户。但是,如果 logout requests 参数中的 require ID token 设置为“false”,如下所示,注销后的应用程序将重定向到 post_logout_redirect_uri 参数中指定的 URI,而不管已为应用程序指定的回复 URL。

      ‘ <UserJourneyBehaviors>
       <SingleSignOn Scope="Tenant" EnforceIdTokenHintOnLogout="false"/>
         <SingleSignOn Scope="Application" />
         <SessionExpiryType>Absolute</SessionExpiryType>
        <SessionExpiryInSeconds>86400</SessionExpiryInSeconds>
         </UserJourneyBehaviors> ‘
    

    请找到以下链接供您参考:-

    https://docs.microsoft.com/en-us/azure/active-directory-b2c/session-behavior?pivots=b2c-custom-policy#secure-your-logout-redirect

    【讨论】:

    • 添加 EnforceIdTokenHintOnLogout="false" 对我不起作用。
    • 请在发起请求授权码时检查应用程序中是否包含'offline_access'范围,因为这将确保授权服务器将在超时后撤销刷新令牌,因为身份验证策略由它管理.
    • 是的,我确实看到了令牌端点请求中包含的 offline_access 范围。我在我的 SPA 中使用 @azure/msal-browser" 和 @azure/msal-react"。我还没有找到在令牌端点请求中不传递offline_access 范围的方法。对于我一直在阅读的内容,msal 2.0 默认添加了“openid”、“profile”和“offline_access”。我认为我在我的 SPA @azure/msal-browser" 和 @azure/msal-react" 中使用的模块是建立在 msal 2.0 之上的,感谢您的 cmets
    • 我建议您参考此链接并相应地修改和检查您的自定义策略设置 - docs.microsoft.com/en-us/azure/active-directory-b2c/…
    • 已经这样做了。但是,用户不会被注销。 MSAL 使用刷新令牌不断获取新的访问令牌。我认为这些设置只是使 Azure AD b2c cookie 过期。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多