次の方法で共有


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

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

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

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

注意

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

前提条件

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

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

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

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

  • Graph Explorer などの 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 は servicePrincipal オブジェクトとして識別され、 00000002-0000-0000-c000-000000000000 はグローバルに一意の appId として、 Windows Azure Active DirectorydisplayNameappDisplayName として識別されます。 次の要求を実行して、テナント内の 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 アクセス許可ページの [Company] ボタンの [管理者の同意を付与する] ボタンを選択しなくても、アプリ登録にアクセス許可を付与できます。 詳細については、「 プログラムによる API アクセス許可の付与または取り消し」を参照してください。

Microsoft Entra 管理センターを使用して、組織が使用する API を見つける

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

  2. [Id>Applications] を展開し>[アプリの登録] を選択します。

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

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

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

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

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