Azure AD Graph API - 应用程序角色分配列表

时间:2017-07-06 02:00:51

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

没有关于如何确定从此AAD Graph API调用生成的应用程序角色分配列表的文档:

https://graph.windows.net/contoso.com/users/simon@contoso.com/appRoleAssignments

例如,如果用户拥有Office 365,则图表API响应中不会显示已分配的Office 365应用,但如果此用户浏览到https://myapps.microsoft.com/contoso.com,则会看到它们已列出。

是否可以澄清用于构建此列表中返回的应用程序的逻辑,以及是否可以检索所有分配给用户的应用程序?

1 个答案:

答案 0 :(得分:1)

用户的iface eth0 inet6 static address YOUR_IPV6 netmask IPV6_PREFIX post-up /sbin/ip -f inet6 route add IPV6_GATEWAY dev eth0 post-up /sbin/ip -f inet6 route add default via IPV6_GATEWAY pre-down /sbin/ip -f inet6 route del IPV6_GATEWAY dev eth0 pre-down /sbin/ip -f inet6 route del default via IPV6_GATEWAY 导航属性应包含用户在应用上分配的所有角色。如果应用程序没有声明可以分配给用户的任何appRoles,那么这里仍然会有一个实体带有全零GUID。

例如,我已将某个测试用户分配给没有角色的应用,并且appRoleAssignments返回:

Get-AzureADUserAppRoleAssignment -ObjectId user-object-id

还有一个用于指定角色的应用程序:

DeletionTimestamp    :
ObjectId             : 1YoOkUy2bESZDaQwZRhU0S-UYlhvd3FJsJikOAWHrsI
ObjectType           : AppRoleAssignment
CreationTimestamp    : 17.1.2016 15.40.03
Id                   : 00000000-0000-0000-0000-000000000000
PrincipalDisplayName : Test User
PrincipalId          : 910e8ad5-b64c-446c-990d-a430651854d1
PrincipalType        : User
ResourceDisplayName  : TodoService
ResourceId           : 6b5b5ad6-54ce-415f-ad04-0a276ce086b0

请注意 Id 属性指定用户在该应用上拥有的角色的ID。在第一个的情况下,他们只是一般访问。

至于为什么Office 365应用程序不会显示在那里,如果我没记错,您不会通过Azure AD用户管理以相同的方式分配它们?应用程序分配可能是O365中的内部事物,Azure AD不了解它。可以从用户的DeletionTimestamp : ObjectId : 1YoOkUy2bESZDaQwZRhU0YAvk4B2fQdPqcTGnjNiP_0 ObjectType : AppRoleAssignment CreationTimestamp : Id : 06608f41-55fb-400a-8da2-3d51909a0449 PrincipalDisplayName : Test User PrincipalId : 910e8ad5-b64c-446c-990d-a430651854d1 PrincipalType : User ResourceDisplayName : TestApp ResourceId : ecf84db8-3333-43d0-809a-aaef620a14bf 导航属性(或使用Azure AD v2 PowerShell licenseDetails)中找到许可证分配。