gpt4 book ai didi

Azure B2C : KMSI feature does not work with custom policy

转载 作者:行者123 更新时间:2023-12-03 03:40:59 28 4
gpt4 key购买 nike

我们的 SPA 使用 Azure B2C 和 MSAL (React) 进行用户身份验证。还有其他要求,因此我们使用自定义策略而不是预定义的用户流。但我很难在 these instructions 之后实现保持登录 (KMSI) 功能.

  1. 我使用了 the starter pack 中的自定义政策:Phone_Email_Base.xmlSignUpOrSignInWithPhoneOrEmail.xml
  2. 已添加<Item Key="setting.enableRememberMe">True</Item>进入 <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Phone-Email">
  3. 更新了依赖方政策文件:
<UserJourneyBehaviors>
<SingleSignOn Scope="Tenant" KeepAliveInDays="30" />
<SessionExpiryType>Absolute</SessionExpiryType>
<SessionExpiryInSeconds>1200</SessionExpiryInSeconds>
<ScriptExecution>Allow</ScriptExecution>
</UserJourneyBehaviors>
  • 在我的 index.tsx 中设置 MSAL 实例 following this 。库版本:"@azure/msal-browser": "^2.14.2", "@azure/msal-react": "^1.0.0"
  • 尝试获取访问 token :
  • msalInstance
    .acquireTokenSilent(accessTokenRequest)
    .then((response) => {
    // use response.accessToken here
    ...
    })
    .catch((e) => {
    console.error(e);
    if (e instanceof InteractionRequiredAuthError) {
    instance.acquireTokenRedirect(accessTokenRequest);
    }
    });

    问题是 MSAL 无法在用户登录 24 小时后(即刷新 token 过期)以静默方式检索访问 token ,并要求用户重新登录。

    为了确保我的应用程序代码正常,我尝试使用预定义的用户流(组合 B2C_1_SignUpSignIn )并启用 KMSI 功能。在这种情况下,我的应用程序能够在 24 小时后静默获取访问 token 。因此,KMSI 与用户流完美配合,但不适用于自定义策略。

    在文档和示例中爬行了几天,但仍然找不到任何线索,这里还需要做什么。任何帮助将不胜感激。

    最佳答案

    当 acquireTokenSilent() 失败时,MSAL 将调用 ssoSilent()。这将启动一个隐藏的 iframe,尝试使用基于 cookie 的 SSO 获取 token 。

    当此操作失败时,将返回最终错误。您必须捕获此错误并调用 acquireTokenRedirect()。现在,如果您的技术配置文件的 session 设置正确,并且存在有效的 session cookie,您将获得 SSO。

    https://learn.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-reference-sso

    如果您确实看到用户输入的提示,则您的 session 设置对于该特定技术配置文件来说不正确。这就是 ssoSilent() 失败的真正原因。

    您的问题不是 KMSI。为了证明这一点,请删除 KMSI 配置,登录到您的应用,从 LocalStorage 中删除 MSAL 对象,强制更新 token 。即使没有 KMSI,登录几分钟后,您也会重现您所描述的问题。

    关于Azure B2C : KMSI feature does not work with custom policy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71301265/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com