【发布时间】:2021-10-20 02:10:42
【问题描述】:
我正在开发一项 B2B 服务,该服务需要 Azure AD 连接来为 Azure AD 域的所有成员设置用户帐户。我需要名字、姓氏和电子邮件。
起初我只是使用 Users.Read.All 权限来读取所有用户对象,但是我们的一些客户使用 AD 来存储不同的信息。
我正在寻找一种解决方案,我只能访问客户端分配给企业应用程序的用户和组。
我找到了 servicePrincipal api,但是这个服务没有返回用户的电子邮件。 通过:https://graph.microsoft.com/v1.0/servicePrincipals/{applicationId}/appRoleAssignedTo 调用此 api 时 响应如下所示:
{
"id": "41W1zT6z1U-kJxf62svfp1HFE8pMZhxDun-ThPczmJE",
"deletedDateTime": null,
"appRoleId": "00000000-0000-0000-0000-000000000000",
"createdDateTime": "2021-02-02T04:22:45.9480566Z",
"principalDisplayName": "Alex Wilber",
"principalId": "cdb555e3-b33e-4fd5-a427-17fadacbdfa7",
"principalType": "User",
"resourceDisplayName": "dxprovisioning-graphapi-client",
"resourceId": "8e881353-1735-45af-af21-ee1344582a4d"
}
我读过here,我可以使用 principalId 来请求用户对象,如下所示: https://graph.microsoft.com/v1.0/users/{prinicipalId} 。但这会导致错误解释我没有权限。
经过无数小时的谷歌搜索,我找不到解决这个问题的方法。这是不可能的吗?
【问题讨论】:
-
请编辑您的问题并包含您使用的确切 API。
-
我将域添加到调用中并添加了 servicePrincipal api 端点,这是您的意思吗?
标签: azure azure-active-directory microsoft-graph-api