Настройка разрешений Azure AD Graph для регистрации приложения
Azure Active Directory (Azure AD) Graph не рекомендуется использовать и находится в пути прекращения использования. Рекомендуется следовать контрольным списком планирования миграции приложений , чтобы помочь перенести приложения в Microsoft Graph.
Приложению по-прежнему могут временно потребоваться разрешения Azure AD Graph для доступа к ресурсам. Вы можете воспользоваться одним из трех методов, описанных в этой статье, чтобы настроить разрешения Azure AD Graph для регистрации приложения:
- Используйте Центр администрирования Microsoft Entra для поиска API, используемых вашей организацией.
- Обновление манифеста приложения в Центре администрирования Microsoft Entra
- Использование API приложений Microsoft Graph
Предостережение
Любое приложение, использующего Azure AD Graph, по-прежнему перестанет работать после прекращения работы API. Дополнительные сведения см. в статье Перенос приложений Azure AD Graph в Microsoft Graph.
Предварительные условия
Действия, описанные в этой статье, требуют двух наборов привилегий:
- Привилегии для добавления разрешений для регистрации приложения
- Привилегии для предоставления этих разрешений для регистрации приложения
Пользователь с ролью администратора привилегированных ролей может выполнять и то, и другое, а пользователь с ролью "Администратор приложений" или "Администратор облачных приложений" может только добавлять разрешения. Чтобы обеспечить разделение обязанностей и минимальный доступ, разделяйте задачи добавления разрешений и предоставления разрешений разным пользователям. Дополнительные сведения о действиях, поддерживаемых этими ролями, см. в статье Встроенные роли Microsoft Entra.
Кроме того, вам потребуются следующие ресурсы и привилегии:
- Войдите в клиент API, например Graph Explorer , для выполнения HTTP-запросов.
- Приложению, используемому для внесения этих изменений, должно быть предоставлено
Application.ReadWrite.All
разрешение.
Использование API приложений Microsoft Graph
Объект приложения Microsoft Graph содержит свойство requiredResourceAccess, которое представляет собой коллекцию объектов с информацией об API ресурса и разрешениях. Используйте это свойство для настройки разрешений Azure AD Graph, как описано в следующих шагах.
Шаг 1. Определение идентификаторов разрешений для разрешений Azure AD Graph, необходимых приложению
Определите разрешения Azure AD Graph, необходимые приложению, идентификаторы разрешений и роли приложения (разрешения приложения) или oauth2PermissionScopes (делегированные разрешения). Дополнительные сведения см. в справочнике по разрешениям Azure AD Graph.
Azure AD Graph идентифицируется как объект servicePrincipal с 00000002-0000-0000-c000-000000000000
глобально уникальным идентификатором appId , Windows Azure Active Directory
а также как displayName и appDisplayName. Выполните следующий запрос, чтобы получить объект субъекта-службы для Azure AD Graph в клиенте.
Запрос
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '00000002-0000-0000-c000-000000000000'
Отклик
В объекте ответа сведения о разрешениях приложения Azure AD Graph перечислены в объекте appRoles , а сведения о делегированных разрешениях — в объекте oauth2PermissionScopes .
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals",
"value": [
{
"id": "1804a6f8-e623-4520-8f40-ba1b0c11c42d",
"accountEnabled": true,
"appDisplayName": "Windows Azure Active Directory",
"appDescription": null,
"appId": "00000002-0000-0000-c000-000000000000",
"appOwnerOrganizationId": "f8cdef31-a31e-4b4a-93e4-5f571e91255a",
"appRoleAssignmentRequired": false,
"displayName": "Windows Azure Active Directory",
"servicePrincipalNames": [
"https://graph.windows.net",
"00000002-0000-0000-c000-000000000000/graph.microsoftazure.us",
"00000002-0000-0000-c000-000000000000/graph.windows.net",
"00000002-0000-0000-c000-000000000000/directory.windows.net",
"00000002-0000-0000-c000-000000000000",
"https://graph.windows.net/",
"https://graph.microsoftazure.us"
],
"servicePrincipalType": "Application",
"signInAudience": "AzureADMultipleOrgs",
"appRoles": [
{
"allowedMemberTypes": [
"Application"
],
"description": "Allows the app to read applications and service principals without a signed-in user",
"displayName": "Read all applications",
"id": "3afa6a7d-9b1a-42eb-948e-1650a849e176",
"isEnabled": true,
"origin": "Application",
"value": "Application.Read.All"
}
],
"oauth2PermissionScopes": [
{
"adminConsentDescription": "Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allow the app to read basic company information of signed-in users.",
"adminConsentDisplayName": "Sign in and read user profile",
"id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6",
"isEnabled": true,
"type": "User",
"userConsentDescription": "Allows you to sign in to the app with your work account and let the app read your profile. It also allows the app to read basic company information.",
"userConsentDisplayName": "Sign you in and read your profile",
"value": "User.Read"
}
]
}
]
}
Из предыдущих усеченных выходных данных — это идентификатор разрешения для делегированного разрешения User.Read, 311a71cc-e848-46a1-bdf8-97ff7156d8e6
а 3afa6a7d-9b1a-42eb-948e-1650a849e176
— идентификатор разрешения приложения Application.Read.All в Azure AD Graph.
Шаг 2. Добавление разрешений Azure AD Graph в приложение
В следующем примере вызывается API приложения Update для добавления делегированных разрешений и разрешений приложения Azure AD Graph User.Read и Application.Read.All в регистрацию приложения, определяемую идентификатором 581088ba-83c5-4975-b8af-11d2d7a76e98
объекта .
Важно!
Чтобы обновить свойство requiredResourceAccess , необходимо передать существующие и новые разрешения. Передача только новых разрешений перезаписывает и удаляет существующие разрешения.
Запрос
PATCH https://graph.microsoft.com/v1.0/applications/581088ba-83c5-4975-b8af-11d2d7a76e98
Content-Type: application/json
{
"requiredResourceAccess": [
{
"resourceAppId": "00000002-0000-0000-c000-000000000000",
"resourceAccess": [
{
"id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6",
"type": "Scope"
},
{
"id": "3afa6a7d-9b1a-42eb-948e-1650a849e176",
"type": "Role"
}
]
}
]
}
Отклик
HTTP/1.1 204 No Content
Шаг 3. Проверка добавления разрешений Azure AD Graph в приложение
Убедитесь, что у регистрации приложения есть разрешения API Azure AD Graph, которые вы добавили на шаге 2, выполнив следующие действия:
Вызов конечной точки Microsoft Graph GET /application/{id} и чтение свойства requiredResourceAccess следующим образом:
GET https://graph.microsoft.com/v1.0/applications/581088ba-83c5-4975-b8af-11d2d7a76e98?$select=id,requiredResourceAccess
Проверка страницы Регистрация приложений в Центре администрирования Microsoft Entra.
Шаг 4. Предоставление согласия администратора
Хотя вы добавили разрешения Azure AD Graph, вы не предоставили эти разрешения приложению. Для доступа к данным организации для многих разрешений требуется согласие администратора. Войдите в Центр администрирования Microsoft Entra в качестве администратора привилегированных ролей и предоставьте согласие администратора для разрешений на регистрацию приложения.
Предоставление разрешений API без использования запроса на согласие
При использовании Microsoft Graph и любых связанных пакетов SDK вы можете предоставить разрешения для регистрации приложения без необходимости использования Центра администрирования Microsoft Entra и нажатия кнопки Предоставить согласие администратора для [компании] на странице разрешений API. Дополнительные сведения см. в статье Предоставление или отзыв разрешений API программным способом.
Используйте Центр администрирования Microsoft Entra для поиска API, используемых вашей организацией.
Войдите в центр администрирования Microsoft Entra .
Разверните узел Удостоверения>Приложения> выберите Регистрация приложений.
В окне Регистрация приложений на вкладке Все приложения выберите приложение, к которому нужно добавить разрешения Azure AD Graph.
В левой области окна в группе меню Управление выберите Разрешения API. В окне Настроенные разрешения выберите Добавить разрешение.
В окне Запрос разрешений API перейдите на вкладку API, которые использует моя организация , и найдите
Windows Azure Active Directory
или00000002-0000-0000-c000-000000000000
. Выберите из отфильтрованного результированного набора, чтобы открыть окно разрешений Azure Active Directory Graph .Выберите вкладку Делегированные разрешения или Разрешения приложения , чтобы выбрать из списка делегированных разрешений и разрешений приложений соответственно. Выберите Добавить разрешения , чтобы добавить разрешение на регистрацию приложения.
После добавления необходимых разрешений снова в окне Настроенные разрешения выберите Предоставить согласие администратора , чтобы предоставить разрешения Azure AD Graph для регистрации приложения.
Обновление манифеста приложения в Центре администрирования Microsoft Entra
Войдите в центр администрирования Microsoft Entra .
Разверните меню >УдостоверенияПриложения> выберите Регистрация приложений.
В окне Регистрация приложений на вкладке Все приложения выберите приложение, к которому нужно добавить разрешения Azure AD Graph.
В левой области окна в группе меню Управление выберите Манифест , чтобы открыть редактор, позволяющий напрямую изменять атрибуты объекта регистрации приложения.
Тщательно измените свойство requiredResourceAccess в манифесте приложения, чтобы добавить следующие сведения:
Совет
О. Вы можете изменить манифест приложения в Центре администрирования Microsoft Entra или выбрать Скачать , чтобы изменить манифест локально, а затем использовать команду Отправить , чтобы повторно применить его к приложению.
Б. Дополнительные сведения о настройке свойства requiredResourceAccess см. в разделе Тип ресурса requiredResourceAccess.
C. Дополнительные сведения об именах, идентификаторах и типах разрешений Azure AD Graph см. в справочнике по разрешениям Azure AD Graph .
5.1. Если приложению не назначены разрешения Azure AD Graph, добавьте свойство resourceAppId и назначьте значение
00000002-0000-0000-c000-000000000000
, представляющее Azure AD Graph.5.2. Добавьте свойство resourceAccess и настройте разрешения.
В следующем фрагменте КОДА JSON показано свойство requiredResourceAccess с Azure AD Graph в качестве ресурса, которому назначены user.Read и Application.Read.All oauth2PermissionScope (делегированное разрешение) и appRole (разрешение приложения) соответственно.
"requiredResourceAccess": [ { "resourceAppId": "00000002-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6", "type": "Scope" }, { "id": "3afa6a7d-9b1a-42eb-948e-1650a849e176", "type": "Role" } ] } ],
Сохраните изменения.
В группе меню Управление выберите Разрешения API и в разделе Настроенные разрешения для регистрации приложения выберите Предоставить согласие администратора , чтобы предоставить разрешения Azure AD Graph для регистрации приложения.