Настройка классификации разрешений
В этой статье описано, как настроить классификации разрешений в идентификаторе Microsoft Entra. Классификации разрешений позволяют определить влияние различных разрешений на основе политик вашей организации и оценки рисков. Например, можно использовать классификацию разрешений в политиках согласия, чтобы определить набор разрешений, на которые пользователи могут предоставлять согласие.
Поддерживаются три классификации разрешений: "Низкий", "Средний" (предварительная версия) и "Высокий" (предварительная версия). В настоящее время можно классифицировать только делегированные разрешения, которые не требуют согласия администратора.
Минимальные разрешения, необходимые для базового входа, — это openid
, profile
, email
и offline_access
, которые являются делегированными разрешениями на Microsoft Graph. С этими разрешениями приложение может считывать сведения о профиле вошедшего пользователя и поддерживать этот доступ, даже если пользователь больше не использует приложение.
Требования
Вот что необходимо для настройки классификации разрешений:
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Одна из следующих ролей: администратор приложений или администратор облачных приложений
Управление категориями разрешений
Выполните следующие действия, чтобы классифицировать разрешения с помощью Центра администрирования Microsoft Entra:
- Войдите в центр администрирования Microsoft Entra в роли как минимум администратора облачных приложений.
- Перейдите к Идентификация>Приложения>Корпоративные приложения>Согласие и разрешения>Классификации разрешений.
- Выберите вкладку для классификации разрешений, которую вы хотите обновить.
- Выберите " Добавить разрешения" , чтобы классифицировать другое разрешение.
- Выберите API и выберите один или несколько делегированных разрешений.
В этом примере мы классифицируем минимальный набор разрешений, необходимых для единого входа:
Для классификации разрешений можно использовать последнюю Microsoft Entra PowerShell. Классификации разрешений настраиваются на объекте ServicePrincipal интерфейса API, который публикует разрешения.
Выполните следующую команду, чтобы подключиться к Microsoft Entra PowerShell. Чтобы предоставить согласие на необходимые области, войдите принаймней как администратором облачных приложений.
Connect-Entra -scopes "Policy.ReadWrite.PermissionGrant", "Application.Read.All"
Вывод списка текущих классификаций разрешений с помощью Microsoft Entra PowerShell
Извлеките объект ServicePrincipal для API. Здесь мы извлекаем объект ServicePrincipal для API Microsoft Graph:
$serviceprincipal = Get-EntraServicePrincipal ` -Filter "servicePrincipalNames/any(n:n eq 'https://graph.microsoft.com')"
Прочтите классификации делегированных разрешений для API.
Get-EntraServicePrincipalDelegatedPermissionClassification ` -ServicePrincipalId $serviceprincipal.ObjectId | Format-Table Id, PermissionName, Classification
Классификация разрешения как "Низкое влияние" с помощью Microsoft Entra PowerShell
Извлеките объект ServicePrincipal для API. Здесь мы извлекаем объект ServicePrincipal для API Microsoft Graph:
$serviceprincipal = Get-EntraServicePrincipal ` -Filter "servicePrincipalNames/any(n:n eq 'https://graph.microsoft.com')"
Найдите делегированное разрешение, которому вы хотите присвоить категорию:
$delegatedPermission = $serviceprincipal.oauth2PermissionScopes | Where-Object { $_.Value -eq "User.ReadBasic.All" }
Задайте категорию разрешения с помощью его имени и идентификатора:
Add-EntraServicePrincipalDelegatedPermissionClassification ` -ServicePrincipalId $serviceprincipal.ObjectId ` -PermissionId $delegatedPermission.Id ` -PermissionName $delegatedPermission.Value ` -Classification "low"
Удаление делегированной классификации разрешений с помощью Microsoft Entra PowerShell
Извлеките объект ServicePrincipal для API. Здесь мы извлекаем объект ServicePrincipal для API Microsoft Graph:
$serviceprincipal = Get-EntraServicePrincipal ` -Filter "servicePrincipalNames/any(n:n eq 'https://graph.microsoft.com')"
Найдите категорию делегированных разрешений, которую вы хотите удалить:
$classifications = Get-EntraServicePrincipalDelegatedPermissionClassification ` -ServicePrincipalId $serviceprincipal.ObjectId $classificationToRemove = $classifications | Where-Object {$_.PermissionName -eq "User.ReadBasic.All"}
Удаление категории разрешений:
Remove-EntraServicePrincipalDelegatedPermissionClassification ` -ServicePrincipalId $serviceprincipal.ObjectId ` -Id $classificationToRemove.Id
Для классификации разрешений можно использовать Microsoft Graph PowerShell. Классификации разрешений настраиваются на объекте ServicePrincipal интерфейса API, который публикует разрешения.
Выполните следующую команду, чтобы подключиться к Microsoft Graph PowerShell. Чтобы предоставить согласие на необходимые области, войдите принаймней как администратором облачных приложений.
Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant", "Application.Read.All"
Вывод списка текущих классификаций разрешений для API с помощью Microsoft Graph PowerShell
Получите объект servicePrincipal для API:
$serviceprincipal = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'"
Просмотрите классификации делегированных разрешений для API.
Get-MgServicePrincipalDelegatedPermissionClassification -ServicePrincipalId $serviceprincipal.Id
Классификация разрешения как "Низкое влияние" с помощью Microsoft Graph PowerShell
Получите объект servicePrincipal для API:
$serviceprincipal = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'"
Найдите делегированное разрешение, которому вы хотите присвоить категорию:
$delegatedPermission = $serviceprincipal.Oauth2PermissionScopes | Where-Object {$_.Value -eq "openid"}
Задайте классификацию разрешений:
$params = @{ PermissionId = $delegatedPermission.Id PermissionName = $delegatedPermission.Value Classification = "Low" } New-MgServicePrincipalDelegatedPermissionClassification -ServicePrincipalId $serviceprincipal.Id -BodyParameter $params
Удаление делегированной классификации разрешений с помощью Microsoft Graph PowerShell
Получите объект servicePrincipal для API:
$serviceprincipal = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'"
Найдите категорию делегированных разрешений, которую вы хотите удалить:
$classifications = Get-MgServicePrincipalDelegatedPermissionClassification -ServicePrincipalId $serviceprincipal.Id $classificationToRemove = $classifications | Where-Object {$_.PermissionName -eq "openid"}
Удаление категории разрешений:
Remove-MgServicePrincipalDelegatedPermissionClassification -DelegatedPermissionClassificationId $classificationToRemove.Id -ServicePrincipalId $serviceprincipal.id
Чтобы настроить классификации разрешений для корпоративного приложения, войдите в Graph Explorer как минимум администратор облачных приложений.
Необходимо предоставить согласие на разрешения Policy.ReadWrite.PermissionGrant
и Application.Read.All
.
Выполните следующие запросы в обозревателе Microsoft Graph, чтобы добавить делегированную классификацию разрешений для приложения.
Вывод списка текущих классификаций разрешений для API с помощью API Microsoft Graph
Вывод списка текущих классификаций разрешений для API с помощью следующего вызова API Microsoft Graph.
GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications
Классификация разрешения как "Низкое влияние" с помощью API Microsoft Graph
В следующем примере мы классифицируем разрешение как "низкое влияние".
Добавьте делегированную классификацию разрешений для API, используя следующий вызов API Microsoft Graph.
POST https://graph.microsoft.com/v1.0/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications
Content-type: application/json
{
"permissionId": "b4e74841-8e56-480b-be8b-910348b18b4c",
"classification": "low"
}
Удаление делегированной классификации разрешений с помощью API Microsoft Graph
Выполните следующий запрос в обозревателе Microsoft Graph, чтобы удалить делегированную классификацию разрешений для API.
DELETE https://graph.microsoft.com/v1.0/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications/QUjntFaOC0i-i5EDSLGLTAE