Управление политиками согласия для приложений
Политики согласия приложений — это способ управления разрешениями, которые у приложений есть для доступа к данным в вашей организации. Они используются для управления тем, какие приложения могут предоставить согласие и обеспечить соответствие приложений определенным критериям, прежде чем они смогут получить доступ к данным. Эти политики помогают организациям контролировать свои данные и гарантировать, что они предоставляют доступ только к доверенным приложениям.
В этой статье вы узнаете, как управлять встроенными и настраиваемыми политиками согласия приложений для управления предоставлением согласия.
С помощью Microsoft Graph и Microsoft Graph PowerShell можно просматривать политики согласия приложений и управлять ими.
Политика согласия приложения состоит из одного или нескольких наборов условий include и нуля или нескольких наборов условий "исключить". Чтобы событие рассматривалось в политике согласия приложения, оно должно соответствовать по крайней мере одному набору условий include и не должно соответствовать любому набору условий "исключить".
Каждый набор условий состоит из нескольких условий. Чтобы событие соответствовало набору условий, должны быть выполнены все условия в наборе условий.
Политики согласия для приложений, в которых идентификатор начинается с "microsoft-", являются встроенными политиками. Некоторые из этих встроенных политик используются в существующих встроенных ролях каталогов. Например, политика согласия приложения microsoft-application-admin
описывает условия, при которых роли администратора приложений и администратора облачных приложений могут предоставлять согласие администратора на уровне клиента. Встроенные политики можно использовать в пользовательских ролях каталога и настраивать параметры согласия пользователя, но не могут быть изменены или удалены.
Необходимые компоненты
- Пользователь или служба с одной из следующих ролей:
- Роль каталога Администратора привилегированных ролей
- Настраиваемая роль каталога с необходимыми разрешениями для управления политиками согласия приложений
- Роль приложения Microsoft Graph (разрешение приложения)
Policy.ReadWrite.PermissionGrant
при подключении как приложения или службы
Чтобы управлять политиками согласия приложений для приложений с помощью Microsoft Graph PowerShell, подключитесь к Microsoft Graph PowerShell.
Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"
Список существующих политик согласия для приложений
Рекомендуется начать с ознакомления с существующими политиками согласия для приложений в вашей организации.
Список всех политик согласия для приложений:
Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
Просмотрите наборы условий include политики:
Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
Просмотрите наборы условий "исключить":
Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
Создание настраиваемой политики согласия приложения с помощью PowerShell
Чтобы создать настраиваемую политику согласия для приложений, выполните следующие действия.
Создайте пустую политику согласия для приложений.
New-MgPolicyPermissionGrantPolicy ` -Id "my-custom-policy" ` -DisplayName "My first custom consent policy" ` -Description "This is a sample custom app consent policy."
Добавьте наборы условий include.
# Include delegated permissions classified "low", for apps from verified publishers New-MgPolicyPermissionGrantPolicyInclude ` -PermissionGrantPolicyId "my-custom-policy" ` -PermissionType "delegated" ` -PermissionClassification "low" ` -ClientApplicationsFromVerifiedPublisherOnly
Повторите этот шаг, чтобы добавить дополнительные наборы условий include.
При необходимости добавьте наборы условий "исключить".
# Retrieve the service principal for the Azure Management API $azureApi = Get-MgServicePrincipal -Filter "servicePrincipalNames/any(n:n eq 'https://management.azure.com/')" # Exclude delegated permissions for the Azure Management API New-MgPolicyPermissionGrantPolicyExclude ` -PermissionGrantPolicyId "my-custom-policy" ` -PermissionType "delegated" ` -ResourceApplication $azureApi.AppId
Повторите этот шаг, чтобы добавить дополнительные наборы условий "исключить".
После создания политики согласия приложения необходимо назначить ее пользовательской роли в идентификаторе Microsoft Entra. Затем необходимо назначить пользователей этой пользовательской роли, которая присоединена к созданной политике согласия приложения. Дополнительные сведения о назначении политики согласия приложения пользовательской роли см. в разделе "Разрешения согласия приложения" для пользовательских ролей.
Удаление пользовательской политики согласия приложения с помощью PowerShell
В следующем командлете показано, как удалить настраиваемую политику согласия приложения.
Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-policy"
Чтобы управлять политиками согласия приложения, войдите в Graph Explorer с одной из ролей, перечисленных в разделе предварительных требований.
Необходимо предоставить согласие на Policy.ReadWrite.PermissionGrant
разрешение.
Перечисление существующих политик согласия приложений с помощью Microsoft Graph
Рекомендуется начать с ознакомления с существующими политиками согласия для приложений в вашей организации.
Список всех политик согласия для приложений:
GET /policies/permissionGrantPolicies?$select=id,displayName,description
Просмотрите наборы условий include политики:
GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/includes
Просмотрите наборы условий "исключить":
GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/excludes
Создание настраиваемой политики согласия приложения с помощью Microsoft Graph
Чтобы создать настраиваемую политику согласия для приложений, выполните следующие действия.
Создайте пустую политику согласия для приложений.
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies Content-Type: application/json { "id": "my-custom-policy", "displayName": "My first custom consent policy", "description": "This is a sample custom app consent policy" }
Добавьте наборы условий include.
Включение делегированных разрешений, классифицированных "низким" для приложений от проверенных издателей
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-policy }/includes Content-Type: application/json { "permissionType": "delegated", "PermissionClassification": "low", "clientApplicationsFromVerifiedPublisherOnly": true }
Повторите этот шаг, чтобы добавить дополнительные наборы условий include.
При необходимости добавьте наборы условий "исключить". Исключите делегированные разрешения для API управления Azure (appId 00001111-aaaa-2222-bbbb-3333cccc44444)
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/my-custom-policy /excludes Content-Type: application/json { "permissionType": "delegated", "resourceApplication": "00001111-aaaa-2222-bbbb-3333cccc4444 " }
Повторите этот шаг, чтобы добавить дополнительные наборы условий "исключить".
После создания политики согласия приложения необходимо назначить ее пользовательской роли в идентификаторе Microsoft Entra. Затем необходимо назначить пользователей этой пользовательской роли, которая присоединена к созданной политике согласия приложения. Дополнительные сведения о назначении политики согласия приложения пользовательской роли см. в разделе "Разрешения согласия приложения" для пользовательских ролей.
Удаление пользовательской политики согласия приложения Microsoft Graph
Ниже показано, как можно удалить настраиваемую политику согласия для приложений.
DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
Предупреждение
Удаленные политики согласия для приложений не могут быть восстановлены. Если настраиваемая политика согласия для приложений случайно удалена, необходимо будет заново создать политику.
Поддерживаемые условия
В следующей таблице приведен список поддерживаемых условий для политик согласия приложений.
Условие | Description |
---|---|
PermissionClassification | Классификация разрешений для предоставления разрешения или "все" для сопоставления с любой классификацией разрешений (включая разрешения, которые не классифицируются). Значение по умолчанию — "все". |
PermissionType | Тип предоставляемого разрешения. Используйте "application" для разрешений приложения (например, ролей приложений) или "делегированных" для делегированных разрешений. Примечание. Значение "delegatedUserConsentable" указывает делегированные разрешения, которые не настроены издателем API для требования согласия администратора. Это значение можно использовать в встроенных политиках предоставления разрешений, но не может использоваться в пользовательских политиках предоставления разрешений. Обязательный. |
ResourceApplication | AppId приложения ресурсов (например, API), для которого предоставляется разрешение, или "любой" для сопоставления с любым приложением ресурсов или API. Значение по умолчанию — "любой". |
Разрешения | Список идентификаторов разрешений для конкретных разрешений для сопоставления или список с единственным значением "все" для сопоставления с любым разрешением. По умолчанию используется одно значение all. — Идентификаторы делегированных разрешений можно найти в свойстве OAuth2Permissions объекта ServicePrincipal API. — Идентификаторы разрешений приложения можно найти в свойстве AppRoles объекта ServicePrincipal API. |
ClientApplicationIds | Список значений идентификатора приложения для клиентских приложений, которые необходимо сопоставить или список с единственным значением "все" для сопоставления с любым клиентским приложением. По умолчанию используется одно значение all. |
ClientApplicationTenantIds | Список идентификаторов клиента Microsoft Entra, в которых зарегистрировано клиентское приложение, или список с одним значением "все" для сопоставления с клиентскими приложениями, зарегистрированными в любом клиенте. По умолчанию используется одно значение all. |
ClientApplicationPublisherIds | Список идентификаторов Microsoft Partner Network (MPN) для проверенных издателей клиентского приложения или список с единственным значением "все" для сопоставления с клиентскими приложениями от любого издателя. По умолчанию используется одно значение all. |
ClientApplicationsFromVerifiedPublisherOnly | Установите этот параметр только для клиентских приложений с проверенными издателями. Отключите этот параметр (-ClientApplicationsFromVerifiedPublisherOnly:$false ) для сопоставления в любом клиентском приложении, даже если у него нет проверенного издателя. По умолчанию — $false . |
scopeType | Тип области ресурса, к к который применяется предварительная подготовка. Возможные значения: group для групп и команд, chat для чатов или tenant для доступа на уровне клиента. Обязательный. |
конфиденциальностьlabels | Метки конфиденциальности, применимые к типу области, и не будут предварительно утверждены. Он позволяет защитить конфиденциальные данные организации. Узнайте о метках конфиденциальности. Примечание. Ресурс чата пока не поддерживает конфиденциальностьLabels. |
Следующие шаги
Получение справки или ответов на вопросы: