Предоставление приложению согласия администратора на уровне арендатора
Из этой статьи вы узнаете, как предоставить приложению согласие администратора на уровне клиента в идентификаторе Microsoft Entra. Сведения о настройке параметров согласия отдельных пользователей см. в статье "Настройка согласия конечных пользователей для приложений".
При предоставлении согласия администратора на уровне клиента приложению вы предоставляете приложению доступ к разрешениям, запрошенным от имени всей организации. Предоставление согласия администратора от имени организации — это конфиденциальная операция, позволяющая издателю приложения получать доступ к значительной части данных организации или разрешение на выполнение операций с высоким уровнем привилегий. Примерами таких операций могут быть управление ролями, полный доступ ко всем почтовым ящикам или всем сайтам, а также полное олицетворение пользователя. Поэтому перед предоставлением согласия необходимо тщательно проверить разрешения, запрашиваемые приложением.
По умолчанию предоставление согласия администратора на уровне клиента приложению позволяет всем пользователям получать доступ к приложению, если иное не ограничено. Чтобы ограничить круг пользователей, которые могут входить в приложение, настройте это приложение таким образом, чтобы требовать назначения пользователей, а затем назначьте пользователей или группы приложению.
Внимание
Предоставление согласия администратора на уровне клиента может отозвать разрешения, которые уже были предоставлены для этого приложения. Разрешения, которые пользователи уже предоставили от собственного имени, не затрагиваются.
Предварительные условия
Для предоставления согласия администратора на уровне клиента необходимо войти в систему как пользователь, имеющий право давать согласие от имени организации.
Чтобы предоставить согласие администратора на уровне арендатора, требуется следующее:
Учетная запись пользователя Microsoft Entra с одной из следующих ролей:
- Администратор привилегированных ролей для предоставления согласия для приложений, запрашивающих любое разрешение для любого API.
- Администратор облачных приложений или администратор приложений для предоставления согласия для приложений, запрашивающих любое разрешение для любого API, кроме ролей приложения Microsoft Graph (разрешения приложения).
- Настраиваемая роль каталога, которая включает разрешение на предоставление приложениям разрешений для разрешений, необходимых приложению.
Предоставление согласия администратора для всего арендатора на панели приложений Enterprise
Вы можете предоставить согласие администратора на уровне клиента с помощью корпоративных приложений области, если приложение уже подготовлено в клиенте. Например, приложение может быть предоставлено в вашей организации, если по крайней мере один пользователь дает на него согласие. Дополнительные сведения см. в статье о том, как и почему приложения добавляются в идентификатор Microsoft Entra.
Чтобы предоставить общее согласие администратора для клиента приложению, указанному в панели Корпоративные приложения:
- Войдите в Центр Администрирования Microsoft Entra как минимум Администратор облачных приложений.
- Перейдите к Идентификация>Приложения>Корпоративные приложения>Все приложения.
- Введите имя существующего приложения в поле поиска и выберите приложение из результатов поиска.
- Выберите разрешения в разделе "Безопасность".
- Внимательно проверьте разрешения, необходимые для работы приложения. Если вы согласны с разрешениями, которые требует приложение, выберите Предоставление согласия администратора.
Предоставление согласия администратора на панели Регистрация приложений
Вы можете предоставить согласие администратора на уровне тенанта в Центре администрирования Microsoft Entra, используя регистрацию приложений для приложений, которые ваша организация разрабатывает и регистрирует прямо в вашем тенанте Microsoft Entra.
Для предоставления согласия администратора на уровне клиента при регистрации приложений:
- В Центре администрирования Microsoft Entra перейдите к Идентификация>Приложения>Регистрация приложений>Все приложения.
- Введите имя существующего приложения в поле поиска и выберите приложение из результатов поиска.
- Выберите разрешения API в разделе "Управление".
- Внимательно проверьте разрешения, необходимые для работы приложения. Если вы согласны, щелкните Предоставление согласия администратора.
Создание URL-адреса для предоставления согласия администратора на уровне клиента
При предоставлении согласия администратора на уровне клиента с помощью любого метода, описанного в предыдущем разделе, откроется окно из Центра администрирования Microsoft Entra, чтобы получить согласие администратора на уровне клиента. Если вам известен идентификатор клиента (также известный как идентификатор приложения) приложения, вы можете создать тот же URL-адрес, чтобы предоставить согласие администратора на уровне клиента.
URL-адрес согласия администратора на уровне клиента имеет следующий формат:
https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}
Где:
-
{client-id}
представляет собой идентификатор клиента приложения (также известный как идентификатор приложения). -
{organization}
— это идентификатор арендатора или любое проверенное доменное имя арендатора, которому вы хотите предоставить согласие приложению. Вы можете использовать значениеorganizations
, которое приводит к тому, что согласие произойдет в домашнем клиенте пользователя, с которым вы входите.
Как всегда, внимательно просматривайте разрешения, запрашиваемые приложением, перед предоставлением согласия.
Дополнительные сведения о создании URL-адреса согласия администратора для арендатора см. в разделе Admin consent on the Microsoft identity platform.
Предоставление согласия администратора для делегированных разрешений с помощью Microsoft Graph PowerShell
В этом разделе описано, как предоставить делегированные разрешения приложению. Делегированные разрешения — это разрешения, необходимые приложению для доступа к 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
.
Внимание
Будьте осторожны! Разрешения, предоставленные программным способом, не подлежат проверке или подтверждению. Они вступают в силу немедленно.
Подключитесь к Microsoft Graph PowerShell и войдите как администратор облачных приложений или выше.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"
Получение всех делегированных разрешений, определенных ресурсным приложением Microsoft Graph в вашем приложении арендатора. Определите делегированные разрешения, которые необходимо предоставить клиентскому приложению. В этом примере разрешения делегирования:
User.Read.All
иGroup.Read.All
Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property Oauth2PermissionScopes | Select -ExpandProperty Oauth2PermissionScopes | fl
Предоставьте делегированные разрешения клиентскому корпоративному приложению, выполнив следующий запрос.
$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
Убедитесь, что вы предоставили согласие администратора на уровне клиента, выполнив следующий запрос.
Get-MgOauth2PermissionGrant -Filter "clientId eq '00001111-aaaa-2222-bbbb-3333cccc4444' and consentType eq 'AllPrincipals'"
Предоставление согласия администратора для разрешений приложений с помощью Microsoft Graph PowerShell
В этом разделе вы предоставляете разрешения для вашего корпоративного приложения. Разрешения приложения — это разрешения, необходимые приложению для доступа к API ресурсов. Разрешения определяются API ресурсов и предоставляются корпоративному приложению, которое является основным приложением. После предоставления приложению доступа к API ресурсов он запускается как фоновая служба или управляющая программа без вошедшего пользователя. Разрешения приложения также называются ролями приложения.
В следующем примере вы предоставляете приложению Microsoft Graph (главному субъекту идентификатора aaaaaaaa-bbbb-cccc-1111-222222222222
) роль приложения (разрешение приложения) с идентификатором df021288-bdef-4463-88db-98f22de89214
, которое предоставляется API ресурса с идентификатором 11112222-bbbb-3333-cccc-4444dddd5555
.
Подключитесь к Microsoft Graph PowerShell и войдите как минимум в качестве администратора привилегированных ролей.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
Извлечь роли приложений, определенные в Microsoft Graph для вашего клиента. Определите роль приложения, которую необходимо предоставить клиентскому корпоративному приложению. В этом примере идентификатор роли приложения —
df021288-bdef-4463-88db-98f22de89214
.Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property AppRoles | Select -ExpandProperty appRoles |fl
Предоставьте основной приложению разрешение на роль приложения, выполнив следующий запрос.
$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 Explorer для предоставления делегированных и приложений полномочий.
Предоставление согласия администратора для делегированных разрешений с помощью API Microsoft 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
.
Внимание
Будьте осторожны! Разрешения, предоставленные программным способом, не подлежат проверке или подтверждению. Они вступают в силу немедленно.
Извлеките все делегированные разрешения, определенные Microsoft Graph (приложением ресурсов) в вашем приложении арендатора. Определите делегированные разрешения, которые необходимо предоставить клиентскому приложению. В этом примере права делегирования следующие:
User.Read.All
иGroup.Read.All
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,oauth2PermissionScopes
Предоставьте делегированные разрешения клиентскому корпоративному приложению, выполнив следующий запрос.
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" }
Убедитесь, что вы предоставили согласие администратора на уровне клиента, выполнив следующий запрос.
GET https://graph.microsoft.com/v1.0/oauth2PermissionGrants?$filter=clientId eq '00001111-aaaa-2222-bbbb-3333cccc4444' and consentType eq 'AllPrincipals'
Предоставление согласия администратора для разрешений приложений с помощью API Microsoft Graph
В этом разделе описано, как предоставить приложениям разрешения для корпоративного приложения. Разрешения приложения — это разрешения, необходимые приложению для доступа к API ресурсов. Разрешения определяются API ресурсов и предоставляются корпоративному приложению, которое является основным приложением. После предоставления приложению доступа к API ресурсов он запускается как фоновая служба или управляющая программа без вошедшего пользователя. Разрешения приложения также называются ролями приложения.
В следующем примере вы предоставляете приложению Microsoft Graph (основной объект с идентификатором 00001111-aaaa-2222-bbbb-3333cccc4444
) роль приложения (разрешение приложения) с идентификатором df021288-bdef-4463-88db-98f22de89214
, которая предоставлена корпоративным приложением-ресурсом с идентификатором 11112222-bbbb-3333-cccc-4444dddd5555
.
Необходимо войти с учетной записью как минимум администратора привилегированных ролей.
Извлеките роли приложения, определенные 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
Предоставьте этому приложению разрешение (роль приложения) для основного приложения, выполнив следующий запрос.
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" }
Следующие шаги
- Настройте способ предоставления конечным пользователям согласия на приложения.
- Настройте рабочий процесс согласия администратора.