Предоставление приложению согласия администратора на уровне арендатора

Из этой статьи вы узнаете, как предоставить приложению согласие администратора на уровне клиента в идентификаторе Microsoft Entra. Сведения о настройке параметров согласия отдельных пользователей см. в статье "Настройка согласия конечных пользователей для приложений".

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

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

Внимание

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

Необходимые компоненты

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

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

  • Учетная запись пользователя Microsoft Entra с одной из следующих ролей:

    • Администратор привилегированных ролей для предоставления согласия для приложений, запрашивающих любое разрешение для любого API.
    • Администратор облачных приложений или администратор приложений для предоставления согласия для приложений, запрашивающих любое разрешение для любого API, кроме ролей приложения Microsoft Graph (разрешения приложения).
    • Настраиваемая роль каталога, которая включает разрешение на предоставление приложениям разрешений для разрешений, необходимых приложению.

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

Совет

Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.

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

  1. Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.
  2. Перейдите к приложениям>Identity>Application Enterprise Для всех приложений.>
  3. Введите имя существующего приложения в поле поиска и выберите приложение из результатов поиска.
  4. Выберите разрешения в разделе "Безопасность". На снимке экрана показано, как предоставить согласие администратора на уровне арендатора.
  5. Внимательно проверьте разрешения, необходимые для работы приложения. Если вы согласны с разрешениями, которые требует приложение, выберите Предоставление согласия администратора.

Вы можете предоставить согласие администратора на уровне клиента из Регистрация приложений в Центре администрирования Microsoft Entra для приложений, которые ваша организация разработала и зарегистрировала непосредственно в клиенте Microsoft Entra.

Для предоставления согласия администратора на уровне клиента при регистрации приложений:

  1. В Центре администрирования Microsoft Entra перейдите к приложениям Identity>Application> Регистрация приложений> All.
  2. Введите имя существующего приложения в поле поиска и выберите приложение из результатов поиска.
  3. Выберите разрешения API в разделе "Управление".
  4. Внимательно проверьте разрешения, необходимые для работы приложения. Если вы согласны, щелкните Предоставление согласия администратора.

При предоставлении согласия администратора на уровне клиента с помощью любого метода, описанного в предыдущем разделе, откроется окно из Центра администрирования Microsoft Entra, чтобы получить согласие администратора на уровне клиента. Если вам известен идентификатор клиента (также известный как идентификатор приложения) приложения, вы можете создать тот же URL-адрес, чтобы предоставить согласие администратора на уровне клиента.

URL-адрес согласия администратора на уровне клиента имеет следующий формат:

https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}

где:

  • {client-id} представляет собой идентификатор клиента приложения (также известный как идентификатор приложения).
  • {organization} — это идентификатор клиента или любое проверенное доменное имя клиента, в который вы хотите предоставить согласие приложению. Вы можете использовать значение organizations, которое приводит к тому, что согласие произойдет в домашнем клиенте пользователя, с которым вы входите.

Как всегда, внимательно просматривайте разрешения, запрашиваемые приложением, перед предоставлением согласия.

Дополнительные сведения о создании URL-адреса согласия администратора на уровне клиента см. в разделе "Согласие администратора" на платформа удостоверений Майкрософт.

В этом разделе описано, как предоставить делегированные разрешения приложению. Делегированные разрешения — это разрешения, необходимые приложению для доступа к API от имени пользователя, вошедшего в систему. Разрешения определяются API ресурсов и предоставляются корпоративному приложению, который является клиентским приложением. Это согласие предоставляется от имени всех пользователей.

В следующем примере API ресурсов — Microsoft Graph идентификатора aaaaaaaa-0000-1111-2222-bbbbbbbbbbbbобъекта. API Microsoft Graph определяет делегированные разрешения User.Read.All и Group.Read.All. Тип согласия AllPrincipalsуказывает, что вы даете согласие от имени всех пользователей в клиенте. Идентификатор объекта клиентского корпоративного приложения aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb.

Внимание

Будьте осторожны! Разрешения, предоставленные программным способом, не подлежат проверке или подтверждению. Они вступают в силу немедленно.

  1. Подключитесь к Microsoft Graph PowerShell и войдите по крайней мере администратор облачных приложений.

    Connect-MgGraph -Scopes "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"
    
  2. Получение всех делегированных разрешений, определенных Microsoft Graph (приложением ресурсов) в вашем клиенте. Определите делегированные разрешения, которые необходимо предоставить клиентскому приложению. В этом примере разрешения делегирования имеют и User.Read.AllGroup.Read.All

    Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property Oauth2PermissionScopes | Select -ExpandProperty Oauth2PermissionScopes | fl
    
  3. Предоставьте делегированные разрешения клиентскому корпоративному приложению, выполнив следующий запрос.

    $params = @{
    
    "ClientId" = "00001111-aaaa-2222-bbbb-3333cccc4444"
    "ConsentType" = "AllPrincipals"
    "ResourceId" = "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
    "Scope" = "User.Read.All Group.Read.All"
    }
    
    New-MgOauth2PermissionGrant -BodyParameter $params | 
    Format-List Id, ClientId, ConsentType, ResourceId, Scope
    
  4. Убедитесь, что вы предоставили согласие администратора на уровне клиента, выполнив следующий запрос.

 Get-MgOauth2PermissionGrant -Filter "clientId eq '00001111-aaaa-2222-bbbb-3333cccc4444' and consentType eq 'AllPrincipals'" 

В этом разделе описано, как предоставить приложениям разрешения для корпоративного приложения. Разрешения приложения — это разрешения, необходимые приложению для доступа к API ресурсов. Разрешения определяются API ресурсов и предоставляются корпоративному приложению, которое является основным приложением. После предоставления приложению доступа к API ресурсов он запускается как фоновая служба или управляющая программа без входа пользователя. Разрешения приложения также называются ролями приложения.

В следующем примере вы предоставляете приложению Microsoft Graph (субъекту идентификатора aaaaaaaa-bbbb-cccc-1111-222222222222) роль приложения (разрешение приложения) идентификатора df021288-bdef-4463-88db-98f22de89214 , который предоставляется API ресурсов идентификатора 11112222-bbbb-3333-cccc-4444dddd5555.

  1. Подключитесь к Microsoft Graph PowerShell и войдите как минимум администратор привилегированных ролей.

    Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    
  2. Получение ролей приложения, определенных Microsoft Graph в клиенте. Определите роль приложения, которую необходимо предоставить клиентскому корпоративному приложению. В этом примере идентификатор роли приложения — df021288-bdef-4463-88db-98f22de89214.

    Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property AppRoles | Select -ExpandProperty appRoles |fl
    
  3. Предоставьте приложению разрешение (роль приложения) основному приложению, выполнив следующий запрос.

 $params = @{
  "PrincipalId" ="aaaaaaaa-bbbb-cccc-1111-222222222222"
  "ResourceId" = "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
  "AppRoleId" = "df021288-bdef-4463-88db-98f22de89214"
}

New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId 'aaaaaaaa-bbbb-cccc-1111-222222222222' -BodyParameter $params | 
  Format-List Id, AppRoleId, CreatedDateTime, PrincipalDisplayName, PrincipalId, PrincipalType, ResourceDisplayName

Используйте Обозреватель Graph для предоставления делегированных и приложений разрешений.

В этом разделе описано, как предоставить делегированные разрешения приложению. Делегированные разрешения — это разрешения, необходимые приложению для доступа к API от имени пользователя, вошедшего в систему. Разрешения определяются API ресурсов и предоставляются корпоративному приложению, который является клиентским приложением. Это согласие предоставляется от имени всех пользователей.

Вам нужно войти по крайней мере администратором облачных приложений.

В следующем примере API ресурсов — Microsoft Graph идентификатора aaaaaaaa-0000-1111-2222-bbbbbbbbbbbbобъекта. API Microsoft Graph определяет делегированные разрешения User.Read.All и Group.Read.All. Тип согласия AllPrincipalsуказывает, что вы даете согласие от имени всех пользователей в клиенте. Идентификатор объекта клиентского корпоративного приложения aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb.

Внимание

Будьте осторожны! Разрешения, предоставленные программным способом, не подлежат проверке или подтверждению. Они вступают в силу немедленно.

  1. Получение всех делегированных разрешений, определенных Microsoft Graph (приложением ресурсов) в вашем клиенте. Определите делегированные разрешения, которые необходимо предоставить клиентскому приложению. В этом примере разрешения делегирования имеют и User.Read.AllGroup.Read.All

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,oauth2PermissionScopes
    
  2. Предоставьте делегированные разрешения клиентскому корпоративному приложению, выполнив следующий запрос.

    POST https://graph.microsoft.com/v1.0/oauth2PermissionGrants
    
    Request body
    {
       "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
       "consentType": "AllPrincipals",
       "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
       "scope": "User.Read.All Group.Read.All"
    }
    
  3. Убедитесь, что вы предоставили согласие администратора на уровне клиента, выполнив следующий запрос.

    GET https://graph.microsoft.com/v1.0/oauth2PermissionGrants?$filter=clientId eq '00001111-aaaa-2222-bbbb-3333cccc4444' and consentType eq 'AllPrincipals'
    

В этом разделе описано, как предоставить приложениям разрешения для корпоративного приложения. Разрешения приложения — это разрешения, необходимые приложению для доступа к API ресурсов. Разрешения определяются API ресурсов и предоставляются корпоративному приложению, которое является основным приложением. После предоставления приложению доступа к API ресурсов он запускается как фоновая служба или управляющая программа без входа пользователя. Разрешения приложения также называются ролями приложения.

В следующем примере вы предоставляете приложению Microsoft Graph (субъект идентификатора00001111-aaaa-2222-bbbb-3333cccc4444df021288-bdef-4463-88db-98f22de89214) роль приложения (разрешение приложения), который предоставляется корпоративным приложением ресурса id11112222-bbbb-3333-cccc-4444dddd5555.

Необходимо подписать как минимум администратора привилегированных ролей.

  1. Получение ролей приложения, определенных Microsoft Graph в клиенте. Определите роль приложения, которую необходимо предоставить клиентскому корпоративному приложению. В этом примере идентификатор роли приложения — df021288-bdef-4463-88db-98f22de89214

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,appRoles
    
  2. Предоставьте приложению разрешение (роль приложения) основному приложению, выполнив следующий запрос.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/11112222-bbbb-3333-cccc-4444dddd5555/appRoleAssignedTo
    
    Request body
    
    {
       "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
       "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
       "appRoleId": "df021288-bdef-4463-88db-98f22de89214"
    }
    

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