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


Настройка разрешений Azure AD Graph для регистрации приложения

Azure Active Directory (Azure AD) Graph не рекомендуется использовать и находится в пути прекращения использования. Рекомендуется следовать контрольным списком планирования миграции приложений , чтобы помочь перенести приложения в Microsoft Graph.

Приложению по-прежнему могут временно потребоваться разрешения Azure AD Graph для доступа к ресурсам. Вы можете воспользоваться одним из трех методов, описанных в этой статье, чтобы настроить разрешения Azure AD Graph для регистрации приложения:

  1. Используйте Центр администрирования Microsoft Entra для поиска API, используемых вашей организацией.
  2. Обновление манифеста приложения в Центре администрирования Microsoft Entra
  3. Использование 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, выполнив следующие действия:

  1. Вызов конечной точки Microsoft Graph GET /application/{id} и чтение свойства requiredResourceAccess следующим образом:

    GET https://graph.microsoft.com/v1.0/applications/581088ba-83c5-4975-b8af-11d2d7a76e98?$select=id,requiredResourceAccess
    
  2. Проверка страницы Регистрация приложений в Центре администрирования Microsoft Entra.

Хотя вы добавили разрешения Azure AD Graph, вы не предоставили эти разрешения приложению. Для доступа к данным организации для многих разрешений требуется согласие администратора. Войдите в Центр администрирования Microsoft Entra в качестве администратора привилегированных ролей и предоставьте согласие администратора для разрешений на регистрацию приложения.

При использовании Microsoft Graph и любых связанных пакетов SDK вы можете предоставить разрешения для регистрации приложения без необходимости использования Центра администрирования Microsoft Entra и нажатия кнопки Предоставить согласие администратора для [компании] на странице разрешений API. Дополнительные сведения см. в статье Предоставление или отзыв разрешений API программным способом.

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

  1. Войдите в центр администрирования Microsoft Entra .

  2. Разверните узел Удостоверения>Приложения> выберите Регистрация приложений.

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

  4. В левой области окна в группе меню Управление выберите Разрешения API. В окне Настроенные разрешения выберите Добавить разрешение.

  5. В окне Запрос разрешений API перейдите на вкладку API, которые использует моя организация , и найдите Windows Azure Active Directory или 00000002-0000-0000-c000-000000000000. Выберите из отфильтрованного результированного набора, чтобы открыть окно разрешений Azure Active Directory Graph .

    API Azure AD Graph называется Windows Azure Active Directory и имеет clientID 00000002-0000-0000-c000-00000000000000000.

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

  7. После добавления необходимых разрешений снова в окне Настроенные разрешения выберите Предоставить согласие администратора , чтобы предоставить разрешения Azure AD Graph для регистрации приложения.

Обновление манифеста приложения в Центре администрирования Microsoft Entra

  1. Войдите в центр администрирования Microsoft Entra .

  2. Разверните меню >УдостоверенияПриложения> выберите Регистрация приложений.

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

  4. В левой области окна в группе меню Управление выберите Манифест , чтобы открыть редактор, позволяющий напрямую изменять атрибуты объекта регистрации приложения.

    Файл манифеста регистрации приложения позволяет изменять атрибуты приложения.

  5. Тщательно измените свойство 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"
                }
            ]
        }
    ],
    
  6. Сохраните изменения.

  7. В группе меню Управление выберите Разрешения API и в разделе Настроенные разрешения для регистрации приложения выберите Предоставить согласие администратора , чтобы предоставить разрешения Azure AD Graph для регистрации приложения.