Поделиться через


Настройте, как пользователи дают согласие для приложений

В этой статье вы узнаете, как настроить параметры согласия пользователей в идентификаторе Microsoft Entra для управления тем, когда и как пользователи предоставляют разрешения приложениям. Это руководство помогает ИТ-администраторам снизить риски безопасности, ограничив или отключив согласие пользователя.

Прежде чем приложение сможет получить доступ к данным организации, пользователь должен предоставить ему разрешения. Различные разрешения позволяют использовать разные уровни доступа. По умолчанию всем пользователям разрешено предоставлять согласие на разрешения приложений, не требующие согласия администратора. Например, по умолчанию пользователь может предоставить приложению разрешение на доступ к своему почтовому ящику, но не может дать приложению неограниченный доступ на чтение и запись для всех файлов в организации.

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

Примечание.

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

Предварительные условия

Чтобы настроить согласие пользователя, вам потребуется следующее.

Параметры согласия пользователей можно настроить в идентификаторе Microsoft Entra с помощью центра администрирования Microsoft Entra, Microsoft Graph PowerShell или API Microsoft Graph. Параметры, которые вы настраиваете, применяются ко всем пользователям в организации.

Чтобы настроить параметры согласия пользователя в Центре администрирования Microsoft Entra, выполните следующие действия.

  1. Войдите в Центр администрирования Microsoft Entra в качестве глобального администратора.

  2. Перейдите к Identity>Приложения>Enterprise apps>Согласие и разрешения>Настройки согласия пользователей.

  3. В разделе "Согласие пользователя для приложений" выберите параметр согласия, который требуется настроить для всех пользователей.

  4. Нажмите кнопку "Сохранить", чтобы сохранить параметры.

Снимок экрана: панель

Общие сведения о политиках авторизации и предоставления разрешений в Microsoft Graph PowerShell

Чтобы настроить параметры согласия пользователя программным образом с помощью Microsoft Graph PowerShell, важно понимать различие между политикой авторизации на уровне клиента и отдельными политиками предоставления разрешений. Полученный authorizationPolicy, с помощью Update-MgPolicyAuthorizationPolicy определяет глобальные параметры, такие как могут ли пользователи давать согласие на использование приложений и какие политики предоставления разрешений назначены роли пользователя по умолчанию. Например, вы можете отключить согласие пользователя, позволяя разработчикам управлять разрешениями для приложений, принадлежащих им, назначая только ManagePermissionGrantsForOwnedResource.DeveloperConsent в permissionGrantPoliciesAssigned коллекции.

С другой стороны, конечная точка permissionGrantPolicies перечисляет текущие политики предоставления разрешений. Эти политики определяют, какие разрешения могут предоставляться приложениям и в каких обстоятельствах. Каждая политика "включает" определенные условия, но "исключает" другие. Когда пользователь пытается предоставить согласие приложению, система проверяет политики предоставления разрешений, чтобы узнать, применяются ли какие-либо из них к запросу пользователя. Например, политика низкого риска позволит пользователям предоставить согласие на эти разрешения, настроенные как "низкий риск". Он включает эти политики с низким уровнем риска (в виде GUID). В другом сценарии, если пользователь пытается предоставить согласие в контексте, который соответствует политике AdminOnly, он не может предоставить согласие.

Примечание.

Перед обновлением параметров согласия с помощью команды Update-MgPolicyPermissionGrantPolicy всегда извлеките текущее authorizationPolicy, чтобы определить, какие политики предоставления разрешений уже назначены. Это гарантирует сохранение необходимых разрешений, таких как предоставление разработчикам возможности управлять согласием для приложений, которыми они владеют, и избегание непреднамеренного удаления существующих функций.

Чтобы выбрать, какая политика согласия приложения управляет согласием пользователей для приложений, используйте модуль Microsoft Graph PowerShell . Командлеты, используемые здесь, входят в модуль Microsoft.Graph.Identity.SignIns.

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

Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization"

Чтобы отключить согласие пользователя, убедитесь, что при обновлении коллекции политики согласия (PermissionGrantPoliciesAssigned) включают другие текущие политики ManagePermissionGrantsForOwnedResource.*, если таковые имеются. Таким образом, вы можете поддерживать текущую конфигурацию для параметров согласия пользователя и других параметров согласия ресурсов.

# only exclude user consent policy
$body = @{
    "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
        "managePermissionGrantsForOwnedResource.{other-current-policies}" 
    )
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body

Чтобы разрешить согласие пользователя, выберите политику согласия приложения, которая должна управлять авторизацией пользователей, чтобы предоставить согласие приложениям. Убедитесь, что, обновляя коллекцию, политики согласия (PermissionGrantPoliciesAssigned) включают в себя любые другие текущие политики ManagePermissionGrantsForOwnedResource.*, если таковые имеются. Таким образом, вы можете поддерживать текущую конфигурацию для параметров согласия пользователя и других параметров согласия ресурсов.

$body = @{
    "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
        "managePermissionGrantsForSelf.{consent-policy-id}",
        "managePermissionGrantsForOwnedResource.{other-current-policies}"
    )
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body

Замените {consent-policy-id} идентификатором политики, которую вы хотите применить. Вы можете выбрать созданную политику согласия приложения или выбрать из следующих встроенных политик:

Идентификатор Описание
пользователей-по-умолчанию-низкий-в-Microsoft Разрешение согласия пользователя для приложений от проверенных издателей для выбранных разрешений
Разрешить ограниченное согласие пользователя только для приложений от проверенных издателей и приложений, зарегистрированных в клиенте, и только для разрешений, которые вы классифицируете как низкое влияние. (Не забудьте классифицировать разрешения для выбора разрешений, которым разрешено согласие пользователей.)
пользователь-по-умолчанию-устаревший Разрешить согласие пользователя для приложений
Этот параметр позволяет всем пользователям предоставлять любому приложению согласие на любое разрешение, которое не требует согласия администратора

Например, чтобы разрешить согласие пользователя в соответствии со встроенной политикой microsoft-user-default-low, выполните следующие команды:

$body = @{
    "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
        "managePermissionGrantsForSelf.managePermissionGrantsForSelf.microsoft-user-default-low",
        "managePermissionGrantsForOwnedResource.{other-current-policies}"
    )
}

Общие сведения о политиках авторизации и предоставления разрешений в Microsoft Graph

Чтобы настроить параметры согласия пользователя программным способом с помощью Microsoft Graph, важно понимать различие между политикой авторизации на уровне клиента и отдельными политиками предоставления разрешений. ( authorizationPolicy извлекаемый с помощью GET https://graph.microsoft.com/v1.0/policies/authorizationPolicy/authorizationPolicy) управляет глобальными параметрами, например, могут ли пользователи согласиться на приложения и какие политики предоставления разрешений назначаются роли пользователя по умолчанию. Например, вы можете отключить согласие пользователя, позволяя разработчикам управлять разрешениями для приложений, принадлежащих им, назначая только ManagePermissionGrantsForOwnedResource.DeveloperConsent в permissionGrantPoliciesAssigned коллекции.

С другой стороны, конечная permissionGrantPolicies точка (GET https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies) перечисляет текущие политики предоставления разрешений. Эти политики определяют, какие разрешения могут предоставляться приложениям и в каких обстоятельствах. Каждая политика "включает" определенные условия, но "исключает" другие. Когда пользователь пытается предоставить согласие приложению, система проверяет политики предоставления разрешений, чтобы узнать, применяются ли какие-либо из них к запросу пользователя. Например, политика низкого риска позволит пользователям предоставить согласие на эти разрешения, настроенные как "низкий риск". Он включает эти политики с низким уровнем риска (в виде GUID). В другом сценарии, если пользователь пытается предоставить согласие в контексте, который соответствует политике AdminOnly, он не может предоставить согласие.

Примечание.

Перед тем как обновить параметры согласия с помощью запроса PATCH, всегда извлекайте текущее значение authorizationPolicy, чтобы можно было определить, какие политики предоставления разрешений уже назначены. Это гарантирует сохранение необходимых разрешений, таких как предоставление разработчикам возможности управлять согласием для приложений, которыми они владеют, и избегание непреднамеренного удаления существующих функций.

Используйте обозреватель Graph , чтобы выбрать политику согласия приложения, которая управляет согласием пользователей для приложений. Вам нужно войти в качестве администратора привилегированных ролей.

Чтобы отключить согласие пользователя, убедитесь, что при обновлении коллекции политики согласия (PermissionGrantPoliciesAssigned) включают другие текущие политики ManagePermissionGrantsForOwnedResource.*, если таковые имеются. Таким образом, вы можете поддерживать текущую конфигурацию для параметров согласия пользователя и других параметров согласия ресурсов.

PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
   "defaultUserRolePermissions": {
       "permissionGrantPoliciesAssigned": [
           "managePermissionGrantsForOwnedResource.{other-current-policies}"
        ]
    }
}

Чтобы разрешить согласие пользователя, выберите политику согласия приложения, которая должна управлять авторизацией пользователей, чтобы предоставить согласие приложениям. Убедитесь, что, обновляя коллекцию, политики согласия (PermissionGrantPoliciesAssigned) включают в себя любые другие текущие политики ManagePermissionGrantsForOwnedResource.*, если таковые имеются. Таким образом, вы можете поддерживать текущую конфигурацию для параметров согласия пользователя и других параметров согласия ресурсов.

PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy

{
    "defaultUserRolePermissions": {
        "managePermissionGrantsForSelf.{consent-policy-id}",
        "managePermissionGrantsForOwnedResource.{other-current-policies}"
   }
}

Замените {consent-policy-id} идентификатором политики, которую вы хотите применить. Вы можете выбрать созданную политику согласия приложения или выбрать из следующих встроенных политик:

Идентификатор Описание
пользователей-по-умолчанию-низкий-в-Microsoft Разрешение согласия пользователя для приложений от проверенных издателей для выбранных разрешений
Разрешить ограниченное согласие пользователя только для приложений от проверенных издателей и приложений, зарегистрированных в клиенте, и только для разрешений, которые вы классифицируете как низкое влияние. (Не забудьте классифицировать разрешения для выбора разрешений, которым разрешено согласие пользователей.)
пользователь-по-умолчанию-устаревший Разрешить согласие пользователя для приложений
Этот параметр позволяет всем пользователям предоставлять любому приложению согласие на любое разрешение, которое не требует согласия администратора

Например, чтобы включить согласие пользователя в соответствии со встроенной политикой microsoft-user-default-low, используйте следующую команду PATCH:

PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy

{
    "defaultUserRolePermissions": {
        "permissionGrantPoliciesAssigned": [
            "managePermissionGrantsForSelf.microsoft-user-default-low",
            "managePermissionGrantsForOwnedResource.{other-current-policies}"
        ]
    }
}

Любые обновления параметров согласия пользователей влияют только на будущие операции согласия для приложений. Существующие предоставления согласия остаются неизменными, и пользователи продолжают иметь доступ на основе предоставленных ранее разрешений. Сведения о том, как отозвать существующие гранты согласия, см. в статье "Просмотр разрешений, предоставленных корпоративным приложениям".

Совет

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

Следующие шаги