如何在Azure AD B2C中添加性别自定义应用声明并限制选项?
在Azure AD B2C中添加带选项限制的自定义性别应用声明
当然可以实现!Azure AD B2C完全支持添加带固定选项限制的自定义应用声明,用来收集用户性别这类不需要自由输入的信息。下面分两种常用场景给你详细说明步骤:
一、使用用户流(快速配置)
用户流是Azure AD B2C提供的可视化配置方式,适合快速搭建场景:
创建自定义用户属性
- 登录Azure门户,找到你的B2C租户,进入左侧菜单的用户属性选项
- 点击添加按钮,填写属性信息:
- 名称:建议用
genderPreference这类有辨识度的内部名称 - 显示名称:直接填“性别”
- 数据类型:选择字符串
- 用户可输入:选否(这样用户不能自由输入,只能选预设选项)
- 配置选项:选是,然后添加你需要的两个选项(比如“男”/“女”或者“Male”/“Female”)
- 名称:建议用
- 保存这个自定义属性
在用户流中启用该声明
- 进入用户流菜单,选择你要修改的注册/登录流(比如「注册并登录 v2」)
- 切换到用户属性标签,勾选你刚创建的
genderPreference,这样用户注册时会看到这个下拉选择框 - 再切换到应用声明标签,同样勾选这个属性,确保你的应用在用户登录后能获取到这个性别声明
(可选)调整UI显示
- 在用户流的页面布局标签里,找到注册页面,编辑该字段的显示样式,确保它是下拉选择的形式,符合你的需求
二、使用自定义策略(更灵活的定制)
如果你的场景需要更复杂的逻辑,比如和其他流程联动,可以用自定义策略:
在策略中定义带限制的声明
在你的自定义策略的TrustFrameworkExtensions.xml文件中,添加如下ClaimsSchema定义:<ClaimsSchema> <ClaimType Id="genderPreference"> <DisplayName>性别</DisplayName> <DataType>string</DataType> <UserInputType>DropdownSingleSelect</UserInputType> <Restriction> <Enumeration Text="男" Value="Male" SelectByDefault="false" /> <Enumeration Text="女" Value="Female" SelectByDefault="false" /> </Restriction> </ClaimType> </ClaimsSchema>这里通过
Restriction节点明确限制了可选值,UserInputType设为DropdownSingleSelect确保是下拉选择。在用户旅程中收集并输出声明
- 在注册流程的技术配置文件中,添加这个声明到
InputClaims,确保用户注册时需要选择 - 在输出技术配置文件中,添加这个声明到
OutputClaims,确保应用能收到该声明
- 在注册流程的技术配置文件中,添加这个声明到
一些注意事项
- 自定义用户属性一旦创建就无法删除,所以命名和配置时要谨慎
- 如果需要多语言支持,可以给
DisplayName和Enumeration的Text添加多语言资源 - 不管用用户流还是自定义策略,都要测试注册流程,确认用户只能选择预设选项,且应用能正确获取到性别声明
内容的提问来源于stack exchange,提问作者Karlitos2312
相关产品推荐
相关产品推荐

