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

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

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

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

Политика согласия владельца группы состоит из нулевых или более наборов условий include и нулевых или более "исключенных" наборов условий. Чтобы событие рассматривалось в политике согласия владельца группы, набор условий "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
    

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

  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. Просмотрите наборы условий include политики:

    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.

    # 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 Обозреватель с одной из ролей, перечисленных в разделе предварительных требований. Вам также нужно предоставить согласие на 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. Просмотрите наборы условий include политики:

    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. Добавьте наборы условий include.

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

    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
    

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

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

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

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

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

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

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

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

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