Управление политиками согласия приложения для владельцев групп

Политики согласия приложений — это способ управления разрешениями, которые у приложений есть для доступа к данным в вашей организации. Они используются для управления тем, на какие приложения пользователи могут дать согласие, и чтобы гарантировать, что приложения соответствуют определённым критериям, прежде чем они смогут получить доступ к данным. Эти политики помогают организациям контролировать свои данные и обеспечивать доступ только доверенными приложениями.

В этой статье вы узнаете, как управлять встроенными и настраиваемыми политиками согласия приложений для управления предоставлением согласия владельца группы.

С помощью Microsoft Graph и Microsoft Graph PowerShell вы можете просматривать политики согласия владельца группы и управлять ими.

Политика согласия владельца группы содержит от нуля и более наборов условий "include" и от нуля и более наборов условий "exclude". Чтобы событие рассматривалось в политике согласия владельца группы, набор условий "include" не должен соответствовать любому набору условий "исключить".

Каждый набор условий состоит из нескольких условий. Чтобы событие соответствовало набору условий, должны быть выполнены все условия в наборе условий.

Политики согласия владельца группы, в которых идентификатор начинается с microsoft-, являются встроенными политиками. Например, политика согласия владельца группы описывает условия, microsoft-pre-approval-apps-for-group при которых владельцы групп могут предоставить согласие приложениям из предварительно созданного списка администратором для доступа к данным для групп, принадлежащих им. Встроенные политики можно использовать в пользовательских ролях каталога и настраивать параметры согласия пользователя, но не могут быть изменены или удалены.

Требования

Чтобы управлять политиками согласия владельца группы для приложений с помощью Microsoft Graph PowerShell, подключитесь к Microsoft Graph PowerShell и войдите с помощью одной из ролей, перечисленных в разделе предварительных требований. Вам также нужно предоставить согласие на Policy.ReadWrite.PermissionGrant разрешение.

# change the profile to beta by using the `Select-MgProfile` command
Select-MgProfile -Name "beta"
Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"

Узнайте, как проверить, авторизован ли параметр согласия владельца группы другими способами.

  1. Получение текущего значения для параметра согласия владельца группы

      Get-MgPolicyAuthorizationPolicy | select -ExpandProperty DefaultUserRolePermissions | ft PermissionGrantPoliciesAssigned
    

    Если в PermissionGrantPoliciesAssigned возвращается ManagePermissionGrantPoliciesForOwnedResource, параметр согласия владельца группы мог быть одобрен другими способами.

  2. Проверьте, ограничена ли политика для group.

       Get-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | Select -ExpandProperty AdditionalProperties
    

Если ResourceScopeType == group, то параметр согласия владельца группы был авторизован другими способами. Кроме того, если была назначена microsoft-pre-approval-apps-for-groupполитика согласия приложения для групп, это означает, что функция предварительного утверждения включена для вашего арендатора.

Рекомендуется начать знакомство с существующими политиками согласия владельца группы в вашей организации:

  1. Список всех политик согласия владельца группы:

    Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
    
  2. Просмотрите наборы условий, включенных в политику.

    Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
    
  3. Просмотрите наборы условий "исключить":

    Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
    

Выполните следующие действия, чтобы создать политику согласия владельца настраиваемой группы:

  1. Создайте новую политику согласия владельца группы.

    New-MgPolicyPermissionGrantPolicy `
        -Id "my-custom-app-consent-policy-for-group" `
        -DisplayName "My first custom app consent policy for group" `
        -Description "This is a sample custom app consent policy for group." `
        -AdditionalProperties @{includeAllPreApprovedApplications = $false; resourceScopeType = "group"}
    
  2. Добавьте наборы условий включения.

    # Include delegated permissions classified "low", for apps from verified publishers
    New-MgPolicyPermissionGrantPolicyInclude `
        -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group" `
        -PermissionType "delegated" `
        -PermissionClassification "low" `
        -ClientApplicationsFromVerifiedPublisherOnly
    

    Повторите этот шаг для того, чтобы добавить дополнительные наборы условий "include".

  3. При необходимости добавьте наборы условий "исключить".

    # 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-app-consent-policy-for-group" `
        -PermissionType "delegated" `
        -ResourceApplication $azureApi.AppId
    

    Повторите этот шаг, чтобы добавить дополнительные наборы условий "исключить".

После создания политики согласия приложения для группы можно разрешить владельцам групп предоставить согласие в соответствии с этой политикой.

  1. Ниже показано, как удалить настраиваемую политику согласия владельца группы.

    Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group"
    

Чтобы управлять политиками согласия владельца группы, войдите в Graph Explorer с одной из ролей, перечисленных в разделе предварительных требований. Вам также нужно предоставить согласие на Policy.ReadWrite.PermissionGrant разрешение.

Узнайте, как проверить, авторизован ли параметр согласия владельца группы другими способами.

  1. Получение текущего значения политики

    GET /policies/authorizationPolicy
    

    Если ManagePermissionGrantPoliciesForOwnedResource появится, параметр согласия владельца группы может быть авторизован другими способами.

  2. Проверьте, ограничена ли политика group

    GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }
    

    Если resourceScopeType == group, то параметр согласия владельца группы был авторизован другими способами. Кроме того, если была назначена microsoft-pre-approval-apps-for-groupполитика согласия приложения для групп, это означает, что функция предварительного утверждения включена для вашего арендатора.

Рекомендуется начать знакомство с существующими политиками согласия владельца группы в вашей организации:

  1. Список всех политик согласия для приложений:

    GET /policies/permissionGrantPolicies
    
  2. Просмотрите наборы условий, включенных в политику.

    GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/includes
    
  3. Просмотрите наборы условий "исключить":

    GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/excludes
    

Выполните следующие действия, чтобы создать политику согласия владельца настраиваемой группы:

  1. Создайте новую политику согласия владельца группы.

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies
    
    {
      "id": "my-custom-app-consent-policy-for-group",
      "displayName": "My first custom app consent policy for group",
      "description": "This is a sample custom app consent policy for group",
      "includeAllPreApprovedApplications": false,
      "resourceScopeType": "group"
    }
    
  2. Добавьте наборы условий включения.

    Включить делегированные разрешения, классифицированные как "низкие" для приложений от проверенных издателей

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/includes
    
    {
      "permissionType": "delegated",
      "permissionClassification": "low",
      "clientApplicationsFromVerifiedPublisherOnly": true
    }
    

    Повторите этот шаг для того, чтобы добавить дополнительные наборы условий "include".

  3. При необходимости добавьте наборы условий "исключить". Исключите делегированные разрешения для API управления Azure (appId 00001111-aaaa-2222-bbbb-3333cccc44444)

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/excludes
    
    {
      "permissionType": "delegated",
      "resourceApplication": "00001111-aaaa-2222-bbbb-3333cccc4444 "
    }
    

    Повторите этот шаг, чтобы добавить дополнительные наборы условий "исключить".

После создания политики согласия владельца группы вы можете разрешить владельцам групп согласие в соответствии с этой политикой.

  1. Ниже показано, как удалить настраиваемую политику согласия владельца группы.

    DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
    

Предупреждение

Удаленные правила согласия владельца группы не могут быть восстановлены. При случайном удалении настраиваемой политики согласия владельца группы потребуется повторно создать политику.

Поддерживаемые условия

В следующей таблице приведен список поддерживаемых условий для политик согласия владельца группы.

Условие Описание
КлассификацияРазрешений Классификация разрешений для предоставления разрешения или "все" для сопоставления с любой классификацией разрешений (включая разрешения, которые не классифицируются). Значение по умолчанию — "все".
PermissionType (Тип разрешения) Тип предоставляемого разрешения. Используйте "application" для разрешений типа приложения (например, для ролей приложения) или "delegated" для разрешений типа делегирования.

Примечание. Значение "delegatedUserConsentable" указывает делегированные разрешения, которые не были настроены издателем API для требования согласия администратора. Это значение можно использовать в встроенных политиках предоставления разрешений, но не может использоваться в пользовательских политиках предоставления разрешений. Обязательный.
ResourceApplication AppId приложения ресурса (например, API), для которого предоставляется разрешение, или "любой" для соответствия любому приложению ресурса или API. Значение по умолчанию — "любой".
Разрешения Список идентификаторов разрешений для конкретных разрешений для сопоставления или список с единственным значением "все" для сопоставления с любым разрешением. По умолчанию используется единственное значение "все".
— Идентификаторы делегированных разрешений можно найти в свойстве OAuth2Permissions объекта ServicePrincipal API.
— Идентификаторы разрешений приложения можно найти в свойстве AppRoles объекта ServicePrincipal API.
ИдентификаторыКлиентскихПриложений Список значений идентификатора приложения для клиентских приложений, которые необходимо сопоставить или список с единственным значением "все" для сопоставления с любым клиентским приложением. По умолчанию используется единственное значение "все".
ClientApplicationTenantIds (Идентификаторы арендатора клиентского приложения) Список идентификаторов клиента Microsoft Entra, в которых зарегистрировано клиентское приложение, или список с одним значением "все" для сопоставления с клиентскими приложениями, зарегистрированными в любом клиенте. По умолчанию используется единственное значение "все".
ClientApplicationPublisherIds Список идентификаторов Microsoft Partner Network (MPN) для проверенных издателей клиентского приложения или список с единственным значением "все" для сопоставления с клиентскими приложениями от любого издателя. По умолчанию используется единственное значение "все".
Только клиентские приложения от проверенных издателей Установите этот параметр только для клиентских приложений с проверенными издателями. Отключите этот параметр (-ClientApplicationsFromVerifiedPublisherOnly:$false) для сопоставления в любом клиентском приложении, даже если у него нет проверенного издателя. По умолчанию — $false.

Предупреждение

Политики согласия, удаленные владельцем группы, не могут быть восстановлены. При случайном удалении настраиваемой политики согласия владельца группы потребуется повторно создать политику.

Получение справки или ответов на вопросы: