Azure B2C注册时设置block sign in为true实现账户审批登录的咨询
方案可行性与完整配置说明
你想要实现的「注册默认禁用账户、审批通过后才允许登录」的需求完全可以通过自定义策略实现,你当前的配置方向正确,补充以下缺失步骤即可正常生效:
你在
AAD-UserWriteUsingLogonEmail技术配置文件中添加的持久化声明配置本身是正确的,作用就是写入用户时强制将账户启用状态设为false,对应Azure门户用户配置中的「阻止登录」开关:<PersistedClaim ClaimTypeReferenceId="accountEnabled" DefaultValue="false" AlwaysUseDefaultValue="true" />检查并补充声明定义
确认你的策略文件(通常是扩展策略)的<ClaimsSchema>节点下已经存在accountEnabled的声明定义,没有的话需要添加:<ClaimType Id="accountEnabled"> <DisplayName>账户启用状态</DisplayName> <DataType>boolean</DataType> <AdminHelpText>标记用户账户是否允许登录</AdminHelpText> </ClaimType>优化登录提示逻辑
在登录使用的用户读取技术配置文件(一般为AAD-UserReadUsingEmailAddress或AAD-UserReadUsingUserName)中添加accountEnabled作为输出声明,后续可搭配自定义判断逻辑,给禁用状态的用户返回明确提示:「您的账户正在等待管理员审批,审批通过后即可登录」。账户审批操作方式
需要启用已注册的用户时,可选两种操作方式:- 手动操作:直接进入Azure AD用户管理页面,找到对应用户,关闭「阻止登录」开关即可
- 自动化操作:调用Microsoft Graph API
PATCH /users/{用户ID}接口,将accountEnabled属性更新为true,可对接内部审批流实现审批通过后自动触发启用操作。
注意:如果你的自定义策略同时支持第三方社交账号登录,需要对社交账号对应的用户写入技术配置文件也添加相同的
accountEnabled持久化配置,否则社交账号注册的用户会默认处于启用状态。
内容的提问来源于stack exchange,提问作者Benji
相关产品推荐
相关产品推荐

