Azure AD B2C 使用条款接受自定义策略如何展示条款供用户同意前查阅
版本化使用条款自定义策略运行逻辑
- 触发逻辑:用户完成身份校验(输入账号密码/社交登录验证通过)后,策略会首先读取该用户目录属性中存储的已同意使用条款版本号,与策略中配置的当前最新条款版本比对。若用户无同意记录、或已同意版本低于最新版本,会自动拦截登录流程,跳转至条款同意页面。
- 校验逻辑:同意页面会强制要求用户勾选同意选项才能继续,未勾选的情况下无法提交进入后续流程。
- 持久化逻辑:用户提交同意后,策略会将当前条款版本号、用户同意的时间戳写入用户的目录扩展属性中,只要后续策略中配置的条款版本不更新,该用户再次登录时不会重复触发同意流程。
插入使用条款内容的操作步骤
你可以通过修改策略的本地化配置直接嵌入条款内容,无需额外对接外部页面,操作如下:
- 新增条款内容的声明定义
首先在策略的ClaimsSchema节点中新增一个用于展示条款内容的声明:
<ClaimsSchema> <ClaimType Id="tou_content"> <DisplayName>使用条款内容</DisplayName> <DataType>string</DataType> <UserInputType>Paragraph</UserInputType> </ClaimType> </ClaimsSchema>
- 在本地化配置中写入实际条款内容
找到条款同意页面对应的LocalizedResources节点,将你的条款内容写入对应的本地化字符串中,支持HTML格式控制样式:
<LocalizedResources Id="api.selfasserted.tou.zh-CN"> <LocalizedStrings> <LocalizedString ElementType="ClaimType" ElementId="tou_content" StringId="DisplayName"> <![CDATA[ <!-- 可通过CSS控制内容滚动,避免页面过长 --> <div style="max-height: 320px; overflow-y: auto; border: 1px solid #e0e0e0; padding: 16px; border-radius: 4px; margin-bottom: 20px;"> <h3>XX服务使用条款</h3> <p>1. 您确认已年满18周岁,具备使用本服务的完全民事行为能力。</p> <p>2. 您在使用本服务过程中需遵守中华人民共和国相关法律法规,不得从事任何违法违规活动。</p> <p>3. 我们有权根据业务运营需要调整条款内容,调整后会更新条款版本,重新向您征求同意。</p> <!-- 补充其余所有条款内容即可 --> </div> ]]> </LocalizedString> <!-- 调整同意复选框的提示文案 --> <LocalizedString ElementType="ClaimType" ElementId="extension_TouConsented" StringId="DisplayName">我已充分阅读并同意上述全部使用条款</LocalizedString> </LocalizedStrings> </LocalizedResources>
如果需要支持多语言,只需要为不同语言的LocalizedResources节点分别配置对应语言的条款内容即可。
3. 调整自断言页面的声明展示顺序
修改条款同意页面对应的自断言技术配置文件,将条款内容声明放在同意复选框之前,确保用户先看到条款再操作:
<TechnicalProfile Id="SelfAsserted-ToU"> <Metadata> <!-- 开启HTML内容渲染支持 --> <Item Key="AllowDynamicElements">true</Item> <Item Key="ContentDefinitionReferenceId">api.selfasserted.tou</Item> </Metadata> <OutputClaims> <!-- 先展示条款内容,再展示同意复选框 --> <OutputClaim ClaimTypeReferenceId="tou_content" Required="false"/> <OutputClaim ClaimTypeReferenceId="extension_TouConsented" Required="true"/> </OutputClaims> </TechnicalProfile>
- 上传更新策略
将修改完成的策略文件上传到Azure AD B2C门户替换原有策略,测试生效即可。
内容的提问来源于stack exchange,提问作者MB700
相关产品推荐
相关产品推荐

