Если вы хотите получить API permissions
, вам нужно использовать следующую команду:
$app = Get-AzureADApplication -ObjectId '<object-id of the App Registration>'
$app.requiredResourceAccess | ConvertTo-Json -Depth 3
ResourceAppId
- это Application ID
субъекта службы API, например Microsoft Graph
, ResourceAccess
включает разрешения, добавленные в приложение, Scope
означает Delegated permission
, Role
означает Application permission
.
Мои разрешения API:
Чтобы проверить подробности разрешений API, вам необходимо воспользоваться приведенной ниже командой. Например, мы хотим узнать подробности разрешения, для которого Id
равно 5b567255-7703-4780-807c-7be8301ae99b
на скриншоте, Type
равно Role
, поэтому нам нужно использовать $sp.AppRoles
.
$sp = Get-AzureADServicePrincipal -All $true | Where-Object {$_.AppId -eq '00000003-0000-0000-c000-000000000000'}
$sp.AppRoles | Where-Object {$_.Id -eq '5b567255-7703-4780-807c-7be8301ae99b'}
* 1034. *
Если вы хотите получить Delegated permission
(Type
is Scope
), нам нужно использовать:
$sp = Get-AzureADServicePrincipal -All $true | Where-Object {$_.AppId -eq '00000003-0000-0000-c000-000000000000'}
$sp.Oauth2Permissions | Where-Object {$_.Id -eq 'e1fe6dd8-ba31-4d61-89e7-88639da4683d'}
Для проверки Status
прямого пути нет, вам нужно проверить, что разрешения, предоставленные администратором субъекта службы, соответствуют приложению AD в вашем клиенте AAD.
Сначала получите принципала обслуживания $appsp
:
$app = Get-AzureADApplication -ObjectId '<object-id of the App Registration>'
$appsp = Get-AzureADServicePrincipal -All $true | Where-Object {$_.AppId -eq $app.AppId}
Получите Delegated permissions
, который был предоставлен (Status
is Granted
):
Get-AzureADServicePrincipalOAuth2PermissionGrant -ObjectId $appsp.ObjectId -All $true | ConvertTo-Json
* ResourceId
- это Object Id
субъекта службы API:
Получите Application permissions
, который был предоставлен (Status
is Granted
):
Get-AzureADServiceAppRoleAssignedTo -ObjectId $appsp.ObjectId | ConvertTo-Json
Id
- это Id
в ResourceAccess
в первый снимок экрана.
Если разрешение не было предоставлено (Status
равно * 10 95 *), вы не получите разрешение с помощью приведенной выше команды.
Например, я добавляю новый Application permission
в портал, затем снова запускаю команду, мы все еще можем получить разрешение, которое было предоставлено.