我可以使用 Graph Explorer 获取 B2C 租户用户列表(使用 signin-signup 策略创建)吗?

Can I get a list of B2C Tenant Users (Created using signin-signup policy) Using Graph Explorer?

我想使用 Microsoft Graph Explorer 来处理我的 Azure AD B2C 租户。

最初,我只想检索我已分配给应用程序注册的自定义属性。自定义属性将存储 UserAppPermission 值,'role' 替代 B2C,因为它本身不支持它们。

我可以重新审视我的流程吗?我想确保我正确阅读了这篇文章。

第一个目标:获取注册到我的 B2C 租户的应用程序列表。推理是...如果没有出现应用程序注册,那么以后的查询不太可能成功。

资源#1“Manage Azure AD B2C with Microsoft Graph”(标题中注意 B2C)

(1) 我在我的 B2C 租户中注册了一个应用程序,其权限超过了最低限度,检查了这个过程两次:Register a Microsoft Graph application(在开头段落和整个文档中注意 B2C)。

(1a) 不确定 Azure 门户是否有问题,我还使用 'Global Administrator Role' 注册了此应用程序...绝对矫枉过正且不安全..

(1b) 我确定我在应用程序注册选项卡中分配了适当的 Microsoft Graph API 权限

(1c) 如文档中所述,我还为应用程序设置了用户管理员角色,尽管它包含在全局管理员角色中。

(1d) 根据文档,“现在您已经注册了您的管理应用程序并为它设置了所需的权限,您的应用程序和服务(例如 Azure Pipelines)可以使用它的与 Microsoft Graph API."

交互的凭据和权限

当我运行“https://graph.microsoft.com/beta/applications”获取已注册应用程序列表时,我看到的只是单个应用程序注册我们的'root' Azure 帐户拥有我们的 Azure Functions App。由于这是一篇关于使用 Microsoft Graph 管理 azure ad B2C 的文章,我期待看到应用程序注册到我的 B2C 租户。

?有没有人读到 (1d) 意味着我不应该使用 https://developer.microsoft.com/en-us/graph/graph-explorer,以 B2C 全局管理员身份登录,并且 g运行 设置端点所需的所有权限,使 Microsoft Graph API 查询?


下一个目标:获取注册到我的 B2C 租户的用户列表

资源#2“List Users”- 此资源的 link 由上面提供的资源 #1 提供,link。

(1) 本文中仅提及 B2C 是:“$count 和 $search 参数目前在 Azure AD B2C 租户中不可用。”

(2)获取所有用户的请求是GET "https://graph.microsoft.com/v1.0/users"

(2a) 请求 return 是 MyOrg 根 AD 租户的用户列表,而不是应用程序的 B2C 租户。不足为奇,因为请求中没有任何内容指定 B2C 租户。

(3) 另一个资源提供了这种请求格式:https://graph.microsoft.com/beta/.onmicrosoft.com/users,它指定了 b2c 租户。

(3a) 这在 Graph-Explorer 中执行时没有错误,但不会 return 任何使用 sign-up/sign-in 策略注册该应用程序的用户(消费者 B2C 用户)。它仍然是 return'root' Azure 帐户的用户列表。


更新 graph-explorer 中的 re:specifying 个租户:

当登录到 Graph Explorer 时,我的工作 MS 电子邮件已注册为我们的 Azure 帐户的全局管理员和我指定的 B2C 租户的所有者:

此 return 是根 Azure 帐户的应用程序列表,而不是我指定的 B2C 租户的应用程序注册。也许我误解了这个 Graph API 调用的意图。

我乐观地运行'https://graph.microsoft.com/beta/identity/b2cUserFlows'与URL中指定的租户(如截图)。结果:

 "error": {
    "code": "AADB2C",
    "message": "'4fba2ea8-XXXX-XXXX-964e-99f48b79d925' is not an Azure AD B2C directory...

我仍然不确定邮件中 returned 的 UUID 代表什么。我可以找到的 UUID 与我在 URL.

中指定的租户没有关联

原因是您使用的是来自根 AAD 租户的 Azure 帐户。

您有两种解决方法。

  • 在 Graph Explorer 中指定租户 URL: https://developer.microsoft.com/en-us/graph/graph-explorer?tenant={Your b2c tenant}.onmicrosoft.com。仍然从 root 用户使用该 Azure 帐户 AAD 租户登录,您可以获得应用程序列表和 现在您的 B2C 租户的用户。
  • 另一种方法是在您的 B2C 租户中创建一个新用户并分配 它的全局管理员角色。然后登录 https://developer.microsoft.com/en-us/graph/graph-explorer 与 这个新用户。现在您可以列出 B2C 的应用程序和用户 租客也是。

更新:

第二个建议不要使用消费者帐户(本地帐户)。您应该在 B2C 租户的 Azure 门户中创建一个 AAD 用户(工作帐户,格式:mytenantname.onmicrosoft.com )并为其分配全局管理员角色。

Overview of user accounts in Azure Active Directory B2C供大家参考。

@AllenWu 的第二个解决方案实际上是正确的,但对我来说不够明确。

B2C Tenant中的New user interface提供了三种创建用户的选项:创建用户、邀请用户和创建Azure AD B2C用户。我的大部分工作都是围绕 B2C 用户展开的,所以我这样做了,并授予了用户全局管理员权限,我的 Graph Explorer 结果没有改变。

另一位用户提供了 this suggestion 并明确表示我需要创建一个用户 w/an 电子邮件地址@my-tenant-name。onmicrosoft.com。我创建了这样一个用户,并为其分配了全局管理员权限,并且我能够按预期使用 Graph Explorer。

请注意,电子邮件地址为“SomeTestUser_gmail.com**#EXT#**@my-tenant-name.onmicrosoft.com 的用户行为不当同理。

感谢您的建议和反馈,如果您在这里遇到同样的问题,我希望这对您有所帮助。