You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Entra External ID for customers:注册时自动分配默认应用角色方法问询

借助Azure External ID在用户注册时自动分配默认应用角色的实现方案

可以实现,下面是两种可靠的实现方式:

方法一:通过Azure AD自定义策略(Identity Experience Framework)原生实现

这是最直接的内置方案,无需额外服务,直接修改注册流程的策略文件即可:

    1. 先在Azure门户的目标应用"应用角色"页面创建好默认角色(比如普通用户角色User),记录该角色的ID。
    1. 打开你的自定义策略文件(如SignUpOrSignin.xml),找到<OutputClaims>节点,添加角色ID的输出声明:
<OutputClaim ClaimTypeReferenceId="roles" DefaultValue="你的默认角色ID" />
    1. 找到负责创建用户的TechnicalProfile(如AAD-UserWriteUsingEmailAddress),添加<PersistedClaims>节点将角色写入用户对象:
<PersistedClaims>
  <PersistedClaim ClaimTypeReferenceId="roles" />
</PersistedClaims>
    1. 将修改后的策略文件上传回Azure AD,新注册的外部用户会自动被分配该默认角色。

方法二:用Microsoft Graph API结合注册触发器实现灵活分配

如果需要根据用户属性(如邮箱域名、注册地区)动态调整角色,可采用这种方式:

    1. 创建Azure Logic Apps或Azure Function,作为用户注册完成后的处理服务。
    1. 配置Azure AD的用户创建事件触发(可通过Azure AD审计日志的事件订阅,或Microsoft Graph的变更通知)。
    1. 在触发的服务中调用Microsoft Graph API的应用角色分配接口,为新用户分配预设角色:
POST https://graph.microsoft.com/v1.0/users/{userId}/appRoleAssignments
Content-Type: application/json

{
  "principalId": "{新注册用户的ID}",
  "resourceId": "{目标应用的服务主体ID}",
  "appRoleId": "{默认角色的ID}"
}
    1. 确保服务拥有AppRoleAssignment.ReadWrite.All或Directory.ReadWrite.All的API权限,并完成身份验证配置(如使用托管标识)。

内容的提问来源于stack exchange,提问作者Purvesh Desai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 15:07:14