我正在尝试编写一个自动化程序,读取所有托管租户、他们的用户以及他们正在积极使用的所有许可证。我遇到的问题之一是通过邮递员获取信息。
我有一个具有全局管理员权限的单独同步帐户。如果我登录 Graph Explorer,同意 ManagedTenants.Read.All 并查询 https://graph.microsoft.com/beta/tenantRelationships/managedTenants/tenants 它可以工作并返回数据。
在 Postman 中,我在应用程序中使用授权代码和 Postman 回调 url 设置。我使用与 Graph Explorer 相同的帐户登录,但仍然收到未经授权的错误。
在整个组织的应用程序中授予管理员同意。
创建了一个 Microsoft Entra ID 应用程序并授予 API 权限,如下所示:
我使用授权代码流程生成了访问令牌:
https://login.microsoftonline.com/TenantID/oauth2/v2.0/token
client_id:ClientID
grant_type:authorization_code
code:code
redirect_uri:https://jwt.ms
client_secret:ClientSecret
scope:https://graph.microsoft.com/.default
或者,您可以使用以下 API 来获取客户 ID:
注意:要读取其他租户的用户信息,该用户必须是该租户的一部分。
在
TenantB
中,邀请 TenantA
用户:
TenantA
用户必须接受邀请:
创建 Microsoft Entra ID 并分配
User.Read.All
委派权限:
使用
TenantA
用户登录以生成访问令牌。
生成访问令牌:
https://login.microsoftonline.com/TenantBTenantID/oauth2/v2.0/token
client_id:TenantBAppID
grant_type:authorization_code
scope:https://graph.microsoft.com/.default
code:code
redirect_uri:https://jwt.ms
client_secret:ClientSecret
现在通过使用上面的访问令牌,
TenantA
可以从TenantB
检索用户信息
参考资料:
azure - 是否可以从租户 A 为租户 B 创建用户 (Microsoft Entra ID)? - Stack Overflow 由我