azure - Azure B2C 自定义策略本地帐户 KMSI 不让我保持登录状态
问题描述
我实施了示例中的步骤- 到目前为止,所有步骤都按预期工作 - 然后我按照说明启用 KMSI。
在测试 Identity Experience Framework->Custom Policies->B2C_1A_signup_signin ->Run 时,我可以在登录时打开复选框“让我保持登录”。但是,我关闭了这个窗口(或保持打开状态),运行再次自定义政策并要求我再次登录(“保持登录状态”显示未选中)。
我已经三次检查了教程和示例中的更改,但看不出有任何区别(除了示例中我没有 LoadURI 和 RecoveryURI。
我注意到我没有根据ContentDefinitions进行更改,只是按照启用KMSI中的说明进行操作,因为我认为这不是教程中的要求。
请给我一些指导什么可能是错的。谢谢您的帮助
解决方案
您使用了错误的方法来测试 KMSI 功能。
如果您“再次运行自定义策略”,它总是会要求您重新输入您的凭据,这是设计使然。
您应该遵循测试您的策略的步骤。
首次登录后,您可以关闭窗口。然后按照步骤 4、5 和 6:
- 返回 Azure 门户。转到策略页面,然后选择复制以复制登录 URL。
- 在浏览器地址栏中,删除
&prompt=login
查询字符串参数,该参数会强制用户在该请求中输入其凭据。- 在浏览器中,单击Go。现在 Azure AD B2C 将发出访问令牌,而不会提示您再次登录。
更新:
您不需要替换SignUpOrSignin.xml
and TrustFrameworkExtensions.xml
。只需参考我的更改:
将以下代码片段添加到TrustFrameworkExtensions.xml
.
<ContentDefinitions>
<ContentDefinition Id="api.signuporsignin">
<LoadUri>~/tenant/default/unified.cshtml</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.1.0</DataUri>
<Metadata>
<Item Key="DisplayName">Signin and Signup</Item>
</Metadata>
</ContentDefinition>
</ContentDefinitions>
然后将以下节点添加为元素的子节点。它必须紧跟在 之后<DefaultUserJourney ReferenceId="User journey Id" />
。
<UserJourneyBehaviors>
<SingleSignOn Scope="Tenant" KeepAliveInDays="30" />
<SessionExpiryType>Absolute</SessionExpiryType>
<SessionExpiryInSeconds>1200</SessionExpiryInSeconds>
</UserJourneyBehaviors>
这些都是需要做出的改变。
您不需要&prompt=login
在文件中删除。请看我上面的截图。复制登录 URL 后,将如下所示:
https://**.b2clogin.com/**.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1A_SignUpOrSignIn&client_id=**&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login
只需删除&prompt=login
URL 末尾的 并在新窗口中访问它。
推荐阅读
- spring - 使用嵌套 DTO 将实体映射到 DTO
- reactjs - Shopify 公共应用中的 Google Analytics(分析)实施
- autodesk-forge - API :urn/metadata/:guid/properties 响应“属性 JSON 的大小太大,请通过对象 id 查询调用此 API”
- google-apps-script - 使用 getFileById 时出现异常:无效 ID 错误
- flutter - 未处理的异常:键入“列表”
' 不是类型 'List 的子类型 - python - 如何使用 resquest.get 检索大数据
- r - ggplot2 不应该按字母顺序排列条形图吗?
- python - 如何在 selenium webdriver Python 中用鼠标单击第二层元素?
- angular - 来自订阅的 Angular Return Observable
- yocto - 在 yocto 上安装 tokbox 时出现 QA 错误