【问题标题】:Azure enterprise application get email of assigned usersAzure 企业应用程序获取分配用户的电子邮件
【发布时间】: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


【解决方案1】:

通过 PowerShell 获取 Azure 企业应用程序的所有用户帐户(用户显示名称、主体显示名称和电子邮件地址)

$app_name = "[app display name]"
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true
$assignments  # this will show all the users associated to the principal

参考So 线程:Azure: Get users assigned to enterprise application in Node JS/Power shell script?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-25
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多