API-интерфейс Azure AD Graph - список назначений ролей приложения

Отсутствует документация о том, как определяется список назначений ролей приложения, созданный с помощью этого вызова API-интерфейса AAD Graph:

https://graph.windows.net/contoso.com/users/[email protected]/appRoleAssignments

Например, если у пользователя есть Office 365, назначенные приложения Office 365 не отображаются в ответе Graph API, но если этот пользователь переходит на https://myapps.microsoft.com/contoso.com они видят их в списке.

Может ли кто-нибудь пояснить логику, используемую для создания приложений, возвращаемых в этом списке, и возможно ли получить все приложения, назначенные пользователю?


person Simon W    schedule 06.07.2017    source источник
comment
Похоже, этот вызов предоставляет элементы O365, к которым у вас есть доступ: график .windows.net / contoso.com / users / simon @ contoso.com /, но проблема в том, что вы не можете преобразовать их в объекты Application, хотя это может не быть проблемой, если вы учитываете имя клиента SharePoint. можно догадаться вместе с Yammer.   -  person Simon W    schedule 06.07.2017


Ответы (1)


Свойство навигации пользователя appRoleAssignments должно содержать все роли, назначенные пользователю в приложениях. В случае, если приложение не объявляет какие-либо appRoles, которые могут быть назначены пользователям, здесь все равно будет одна сущность с GUID, состоящим из нулей.

Например, я назначил одного из моих тестовых пользователей приложению, у которого нет ролей, и 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

А также для приложения, которое определяет роли:

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

Обратите внимание, что свойство Id указывает идентификатор роли, которую пользователь имеет в этом приложении. В случае с первым у них просто общий доступ.

Что касается того, почему приложения Office 365 там не отображаются, если я правильно помню, вы не назначаете их таким же образом через управление пользователями Azure AD? Назначения приложений могут быть внутренним делом в O365, и Azure AD об этом не знает. Назначения лицензий можно найти в licenseDetails свойстве навигации пользователя (или Get-AzureADUserLicenseDetail в Azure AD v2 PowerShell).

person juunas    schedule 06.07.2017