如何通过Graph API获取Azure AD B2C联合用户的issuerAssignedId
Azure B2C联合用户issuerAssignedId相关问题解答
是否需要为每个身份提供商单独实现适配逻辑?
不需要针对每个身份提供商做单独适配,你可以统一通过Microsoft Graph接口,结合identities属性筛选直接定位目标联合用户,获取对应的issuerAssignedId。
示例查询逻辑如下:
- 已知用户所属的身份提供商issuer名称时,可通过如下请求精准查询:
GET https://graph.microsoft.com/v1.0/users?$filter=identities/any(c:c/issuer eq '目标身份提供商的issuer标识' and c/issuerAssignedId eq '用户在该身份提供商的关联标识')&$select=id,identities - 仅知道用户邮箱等通用信息时,可直接跨所有身份提供商匹配:
GET https://graph.microsoft.com/v1.0/users?$filter=identities/any(c:c/issuerAssignedId eq 'user@contoso.com')&$select=identities
查询返回结果的identities集合中,对应身份提供商条目下的issuerAssignedId就是你需要的值。如果你的租户配置了多个身份提供商,建议查询时加上issuer筛选条件,避免出现同邮箱不同IDP的用户匹配冲突。
注册流程底层获取issuerAssignedId的逻辑
用户通过联合身份提供商完成注册时,Azure B2C会先向你配置的IDP发起标准的OIDC/OAuth或SAML授权请求,用户在IDP侧完成身份验证后,IDP会返回对应的身份凭证给Azure B2C:
- 若为OIDC协议的IDP,B2C会直接从返回的ID Token的
sub声明中提取值,作为该联合用户的issuerAssignedId - 若为SAML协议的IDP,B2C会从SAML断言的
NameID声明中提取值,作为该联合用户的issuerAssignedId
这个过程是Azure B2C内置的标准协议处理逻辑,无需额外开发对接。
内容的提问来源于stack exchange,提问作者Vivere
相关产品推荐
相关产品推荐

