获取Azure Active Directory应用程序用户和角色

时间:2016-09-06 19:16:56

标签: azure azure-ad-graph-api azure-active-directory

我在Azure AD Premium中设置了一个应用程序,并进行了访问该应用程序所需的用户分配。我已将自定义应用程序角色添加到应用程序清单中。我可以为用户分配一个角色给应用程序。

如何获取分配给应用程序及其分配角色的所有用户的列表?

1 个答案:

答案 0 :(得分:3)

Azure门户(预览)

在新的Azure门户中,在“企业应用程序”>下; (您的应用)> “用户和组”,您现在只能看到分配给应用程序的用户列表,以及分配给它们的应用程序角色。您还可以按应用角色进行过滤和排序。这是一个例子:

Azure portal / Enterprise applications / Users and groups

注意:截至2016年9月,新Azure门户中的Azure AD管理体验处于预览状态。

经典Azure门户

在和应用程序的“用户和组”下,您可以列出所有用户(以及他们的分配状态)以及所有组:

[Classic Azure portal / Active Directory / Application / Users and groups]

<强>的PowerShell

使用新的preview (as of Sept 2016) Azure AD PowerShell module,您可以使用以下示例:

# Get all service principals, and for each one, get all the app role assignments, 
# resolving the app role ID to it's display name. Output everything to a CSV.
Get-AzureADServicePrincipal | % {

  # Build a hash table of the service principal's app roles. The 0-Guid is
  # used in an app role assignment to indicate that the principal is assigned
  # to the default app role (or rather, no app role).
  $appRoles = @{ "$([Guid]::Empty.ToString())" = "(default)" }
  $_.AppRoles | % { $appRoles[$_.Id] = $_.DisplayName }

  # Get the app role assignments for this app, and add a field for the app role name
  Get-AzureADServiceAppRoleAssignment -ObjectId ($_.ObjectId) | % {
    $_ | Add-Member "AppRoleDisplayName" $appRoles[$_.Id] -Passthru
  }
} | Export-Csv "app_role_assignments.csv" -NoTypeInformation

Azure AD Graph API

使用Azure AD Graph API,您可以执行上述PowerShell脚本所做的操作(实际上,新的Azure AD PowerShell模块对大多数请求使用Azure AD Graph API)。

列出所有服务主体:

GET https://graph.windows.net/{tenant-id}/servicePrincipals

列出服务主体的应用角色分配:

GET https://graph.windows.net/{tenant-id}/servicePrincipals/{object-id}/appRoleAssignments