azure AAD B2C:返回值:[]尝试按身份筛选时

f87krz0w  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(103)

我正在使用Microsoft AAD B2C与用户流。
我有一个返回这些身份对象的用户:

"identities": [
            {
                "signInType": "phoneNumber",
                "issuer": "ourtenant.onmicrosoft.com",
                "issuerAssignedId": "+55444444444"
            },
            {
                "signInType": "userPrincipalName",
                "issuer": "ourtenant.onmicrosoft.com",
                "issuerAssignedId": "ausdhasuduasd@ourtenant.onmicrosoft.com"
            }
        ],

我正在尝试筛选:

https://graph.microsoft.com/beta/tenant.onmicrosoft.com/users?$filter=(identities/any(i:i/issuer eq 'ourtenant.onmicrosoft.com' and i/issuerAssignedId eq '55444444444'))
https://graph.microsoft.com/v1.0/users?$select=id,displayName,identities&$filter=identities/any(c:c/issuerAssignedId eq '+55444444444' and c/issuer eq 'ourtenant.onmicrosoft.com')

但它只返回:

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users",
    "value": []
}

我也试过把i换成c,x,过滤顺序,不使用select,但是不起作用,只返回value:[].
租户是正确的,用户号码也是正确的。我尝试使用beta和v1.0。尝试在phoneNumber上使用“startsWith”进行过滤,但没有返回任何内容。

xn1cxnb4

xn1cxnb41#

我尝试在我的环境中重现相同的结果,结果如下:

我获取了用户的身份:

https://graph.microsoft.com/beta/users/UserId/identities

当我尝试过滤身份时,我遇到了如下所示的相同问题

https://graph.microsoft.com/v1.0/users?$select=displayName,id&$filter=identities/any(c:c/issuerAssignedId eq 'xxx' and c/issuer eq 'xxx')

如果在调用API时传递了错误的值,则通常会发生此问题。

  • 尝试添加+,同时传递电话号码,如下所示:
https://graph.microsoft.com/v1.0/tenant.onmicrosoft.com/users?$filter=(identities/any(i:i/issuer eq 'ourtenant.onmicrosoft.com' and i/issuerAssignedId eq '+55444444444'))
  • 如果问题仍然存在,请尝试获取另一个用户,并检查该用户帐户是否具有执行该操作的足够权限。

我能够成功执行查询,如下所示:

https://graph.microsoft.com/v1.0/users?$select=displayName,Identities&$filter=identities/any(c:c/issuerAssignedId eq 'xxx' and c/issuer eq 'xxx')

参考资料:

列出用户- Microsoft Graph v1.0
User query $filter ignores identities/issuer - MS Graph API and Azure B2C by Andrew Campbell

相关问题