【发布时间】:2021-06-27 05:49:38
【问题描述】:
这是关于我们使用 Azure B2C 租户进行身份验证的应用程序。需要获取支持过滤、分页的用户列表,并且用户必须来自特定的 TenantId。我们正在使用 Graph API SDK,即 microsoft.graph 和 microsoft.graph.Auth 包。
我已经完成的步骤
- 使用带有 TenantId 的 ClientCredentialProvider 创建图形客户端。
- 使用以下代码获取用户
var users = await graphClient.Users
.Request()
.Top(100)
.Filter("identities/any(c:c/issuer eq 'contoso.onmicrosoft.com')")
.Select("displayName,id,identities")
.GetAsync();
这将获取给定颁发者或租户的所有用户。现在,有一个问题我无法使用此选项.Filter("identities/any(c:c/issuer eq 'contoso.onmicrosoft.com') and startswith(displayName,'a') 过滤用户,即,获取显示名称以“a”开头且属于此颁发者“contoso.onmicrosoft.com”的所有用户。根据 Microsoft,Graph API 目前不支持对身份的复杂查询。他们显示这条消息Message: Complex query on property identities is not supported.
现在,我的想法仅限于将此租户的整个用户表加载到内存中的选项。我认为这不是最好的方法,因为我们会有更多的租户,我不知道我们可以在内存中存储多少用户。
任何对这类场景有更多了解的人,请分享您的意见。我想知道我们可以采取的其他各种替代方案。
【问题讨论】:
-
如果我的回复有帮助,请采纳为答案(点击回复旁边的标记选项将其从灰色切换为填写。),请参阅meta.stackexchange.com/questions/5234/…
标签: azure azure-active-directory azure-ad-b2c microsoft-graph-sdks