アプリの登録に対する Azure AD Graph のアクセス許可を構成する

Azure Active Directory (Azure AD) Graph は非推奨であり、廃止パスにありますアプリ移行計画チェックリストに従って、アプリを Microsoft Graph に移行することをお勧めします。

アプリでは、リソースにアクセスするために Azure AD Graph のアクセス許可が引き続き一時的に必要になる場合があります。 この記事で説明されている 4 つの方法のいずれかに従って、アプリの登録に対する Azure AD Graph のアクセス許可を構成できます。

  1. Microsoft Entra 管理センターを使用して、organizationで使用する API を見つけます
  2. Microsoft Entra 管理センターでアプリケーション マニフェストを更新する
  3. Microsoft Graph アプリケーション API を使用する

注意

API が廃止された後も、Azure AD Graph を使用しているアプリは機能しなくなります。 詳細については、「 Azure AD Graph アプリを Microsoft Graph に移行する」を参照してください。

前提条件

この記事の手順では、次の 2 つの特権セットが必要です。

  • アプリの登録にアクセス許可を追加するための特権
  • これらのアクセス許可をアプリの登録に付与する権限。

グローバル管理者ロールを持つユーザーは両方を実行できますが、アプリケーション管理者ロールまたはクラウド アプリケーション管理者ロールを持つユーザーはアクセス許可のみを追加できます。 職務の分離と最小限の特権アクセスを強制するには、アクセス許可を追加し、さまざまなユーザーにアクセス許可を付与するタスクを分離します。 これらのロールでサポートされるアクションの詳細については、「Microsoft Entra組み込みロール」を参照してください。

さらに、次のリソースと特権が必要です。

  • Graph エクスプローラー などの API クライアントにサインインして、HTTP 要求を実行します。
  • これらの変更を行うために使用するアプリには、アクセス許可が Application.ReadWrite.All 付与されている必要があります。

Microsoft Graph アプリケーション API を使用する

Microsoft Graph アプリケーション オブジェクト には、リソース API とアクセス許可に関する情報を持つオブジェクトのコレクションである requiredResourceAccess プロパティが含まれています。 このプロパティを使用して、次の手順で説明するように Azure AD Graph のアクセス許可を構成します。

手順 1: アプリで必要な Azure AD Graph アクセス許可のアクセス許可 ID を特定する

アプリに必要な Azure AD Graph のアクセス許可、アクセス許可 ID、アプリ ロール (アプリケーションのアクセス許可) または oauth2PermissionScopes (委任されたアクセス許可) を特定します。 詳細については、「 Azure AD Graph のアクセス許可リファレンス」を参照してください

Azure AD Graph は、グローバルに一意の appIdWindows Azure Active Directory として、00000002-0000-0000-c000-000000000000displayNameappDisplayName として servicePrincipal オブジェクトとして識別されます。 次の要求を実行して、テナント内の 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"
                }
            ]
        }
    ]
}

前の切り捨てられた出力から、 311a71cc-e848-46a1-bdf8-97ff7156d8e6User.Read 委任されたアクセス許可のアクセス許可 ID は、 3afa6a7d-9b1a-42eb-948e-1650a849e176 Azure AD Graph の Application.Read.All アプリケーションアクセス許可のアクセス許可 ID です。

手順 2: Azure AD Graph のアクセス許可をアプリに追加する

次の例では、 Update アプリケーション API を呼び出して、Azure AD Graph User.ReadApplication.Read.All の委任されたアクセス許可とアプリケーションアクセス許可を、オブジェクト ID 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 のアクセス許可がアプリに追加されたことを確認する

アプリの登録に、手順 2 で追加した Azure AD Graph API アクセス許可があることを確認します。

  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 管理センターを使用して、organizationで使用する API を見つけます

  1. Microsoft Entra 管理センターにサインインします。

  2. [Identity>Applications]\(ID アプリケーション\>) を展開し、[アプリの登録] を選択します。

  3. [アプリの登録] ウィンドウの [すべてのアプリケーション] タブで、Azure AD Graph のアクセス許可を追加するアプリを選択します。

  4. ウィンドウの左側のウィンドウの [ 管理 ] メニュー グループで、[ API のアクセス許可] を選択します。 [ 構成されたアクセス許可 ] ウィンドウで、[ アクセス許可の追加] を選択します。

  5. [API のアクセス許可の要求] ウィンドウで、organizationがタブを使用して または 00000002-0000-0000-c000-000000000000を検索Windows Azure Active Directoryする API に切り替えます。 フィルター処理された結果セットからを選択して、[ Azure Active Directory Graph のアクセス許可] ウィンドウを表示します。

    Azure AD Graph APIは Windows Azure Active Directory という名前で、clientID 00000002-0000-0000-c000-00000000000 を持ちます。

  6. 委任されたアクセス許可または [アプリケーションのアクセス許可] タブを選択して、委任されたアクセス許可とアプリケーションのアクセス許可の一覧からそれぞれ選択します。 [ アクセス許可の追加] を選択して、アプリの登録にアクセス許可を追加します。

  7. 必要なアクセス許可を追加したら、[ 構成済みのアクセス許可 ] ウィンドウに戻り、[ 管理者の同意の付与 ] を選択して、アプリの登録に Azure AD Graph のアクセス許可を付与します。

Microsoft Entra 管理センターでアプリケーション マニフェストを更新する

  1. Microsoft Entra 管理センターにサインインします。

  2. [ID] メニュー [アプリケーション>] の [アプリの登録] を展開します>。

  3. [アプリの登録] ウィンドウの [すべてのアプリケーション] タブで、Azure AD Graph のアクセス許可を追加するアプリを選択します。

  4. ウィンドウの左側のウィンドウの [ 管理 ] メニュー グループで、[ マニフェスト ] を選択して、アプリ登録オブジェクトの属性を直接編集できるエディターを開きます。

    アプリ登録マニフェスト ファイルを使用すると、アプリケーションの属性を編集できます。

  5. アプリのマニフェストで requiredResourceAccess プロパティを慎重に編集して、次の詳細を追加します。

    ヒント

    A. Microsoft Entra 管理センターでアプリ マニフェストを編集するか、[ダウンロード] を選択してマニフェストをローカルで編集し、[アップロード] を使用してアプリケーションに再適用できます。

    B. requiredResourceAccess プロパティを構成する方法の詳細については、「requiredResourceAccess リソースの種類」を参照してください。

    C. Azure AD Graph のアクセス許可名、ID、および種類の詳細については、Azure AD Graph のアクセス許可リファレンスを参照してください。

    5.1. アプリに Azure AD Graph のアクセス許可が割り当てられない場合は、 resourceAppId プロパティを追加し、Azure AD Graph を表す値 00000002-0000-0000-c000-000000000000 を割り当てます。

    5.2. resourceAccess プロパティを追加し、アクセス許可を構成します。

    次の JSON スニペットは、Azure AD Graph をリソースとして使用し、User.Read と Application.Read.All oauth2PermissionScope (委任されたアクセス許可) と appRole (アプリケーションのアクセス許可) をそれぞれ割り当てた requiredResourceAccess プロパティを示しています。

    "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 のアクセス許可を付与します。