如果我在 Azure AD B2C 中有一个基于 Azure AD(企业)身份创建的用户(如下所述:https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-aad-custom https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-aad-custom),AADB2C 中是否存储了一个属性,允许我在 AAD 中查找(使用 Graph API 或类似 API)用户对象?我看到 AADB2C 属性中有用户主体名称 and 发行人用户ID但对于我来说,这两个值是否与 AAD 中存储的任何值匹配并不明显。
thanks!
Martin
对于外部帐户,外部颁发者(即 Azure AD)和外部用户标识符(即 Azure AD 用户的对象标识符)将写入 Azure AD B2C 目录中用户对象的“userIdentities”属性,其中“issuerUserId”属性包含外部用户标识符的 Base64 编码:
{
"userIdentities": [
{
"issuer": "contoso.com",
"issuerUserId": "Mjk2NzdlNTAtY2MwZS00MmU5LWJhNWMtZjFmMDdkZTUwMDhm"
}
]
}
要通过外部账户查找用户对象,您可以调用以下 Graph API 操作,其中“x/issuerUserId”值设置为外部用户标识符的十六进制编码:
GET https://graph.windows.net/myorganization/users?$filter=userIdentities/any(x:x/issuer eq 'contoso.com' and x/issuerUserId eq X'32393637376535302d636330652d343265392d626135632d663166303764653530303866')
Update:
来自外部身份提供商的 IssuerUserId 应被视为字符串而不是十进制。在上面的示例中,当您对“Mjk2NzdlNTAtY2MwZS00MmU5LWJhNWMtZjFmMDdkZTUwMDhm”进行 Base 64 解码时,它会返回 guid 29677e50-cc0e-42e9-ba5c-f1f07de5008f。对于 facebook,issuerUserId 将是一个数字,但仍应被视为字符串。
下一步将使用字符串到十六进制转换器,然后在查询中使用该值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)