Microsoft Graph を使用して Azure AD B2C を管理するManage Azure AD B2C with Microsoft Graph

Microsoft Graph を使用すると、顧客のユーザー アカウントやカスタム ポリシーなど、Azure AD B2C テナント内の多くのリソースを管理できます。Microsoft Graph allows you to manage many of the resources within your Azure AD B2C tenant, including customer user accounts and custom policies. Microsoft Graph API を呼び出すスクリプトまたはアプリケーションを作成することによって、次のようなテナント管理タスクを自動化できます。By writing scripts or applications that call the Microsoft Graph API, you can automate tenant management tasks like:

  • 既存のユーザー ストアを Azure AD B2C テナントに移行するMigrate an existing user store to an Azure AD B2C tenant
  • Azure DevOps で Azure Pipelines を使用してカスタム ポリシーをデプロイし、カスタム ポリシー キーを管理するDeploy custom policies with an Azure Pipeline in Azure DevOps, and manage custom policy keys
  • 自分のページでユーザー登録をホストし、バックグラウンドで Azure AD B2C ディレクトリにユーザー アカウントを作成するHost user registration on your own page, and create user accounts in your Azure AD B2C directory behind the scenes
  • アプリケーションの登録を自動化するAutomate application registration
  • 監査ログを取得するObtain audit logs

次のセクションでは、Microsoft Graph API を使用して Azure AD B2C ディレクトリ内のリソースの管理を自動化するための準備について説明します。The following sections help you prepare for using the Microsoft Graph API to automate the management of resources in your Azure AD B2C directory.

Microsoft Graph API の相互作用モードMicrosoft Graph API interaction modes

Microsoft Graph API を使用して Azure AD B2C テナントのリソースを管理する際は、次の 2 つの通信モードを使用できます。There are two modes of communication you can use when working with the Microsoft Graph API to manage resources in your Azure AD B2C tenant:

  • 対話型 - 一度だけ実行されるタスクに適切です。B2C テナントの管理者アカウントを使用して管理タスクを実行します。Interactive - Appropriate for run-once tasks, you use an administrator account in the B2C tenant to perform the management tasks. このモードでは、Microsoft Graph API を呼び出す前に、管理者は自分の資格情報を使用してサインインする必要があります。This mode requires an administrator to sign in using their credentials before calling the Microsoft Graph API.

  • 自動 - スケジュールされた、または継続的に実行されるタスクの場合、この方法では、管理タスクを実行するために必要なアクセス許可で構成したサービス アカウントが使用されます。Automated - For scheduled or continuously run tasks, this method uses a service account that you configure with the permissions required to perform management tasks. Azure AD B2C に "サービスアカウント" を作成するには、アプリケーションとスクリプトが "アプリケーション (クライアント) ID" と "OAuth 2.0 のクライアント資格情報" 付与を使用した認証に使用するアプリケーションを登録します。You create the "service account" in Azure AD B2C by registering an application that your applications and scripts use for authenticating using its Application (Client) ID and the OAuth 2.0 client credentials grant. この場合、アプリケーションは、前に説明した対話型の方法のように管理者ユーザーとしてではなく、それ自体として Microsoft Graph API を呼び出します。In this case, the application acts as itself to call the Microsoft Graph API, not the administrator user as in the previously described interactive method.

自動の相互作用シナリオを有効にするには、次のセクションで示すアプリケーション登録を作成します。You enable the Automated interaction scenario by creating an application registration shown in the following sections.

OAuth 2.0 クライアント資格情報付与フローは現在 Azure AD B2C 認証サービスによって直接サポートされていませんが、Azure AD B2C テナント内のアプリケーション向けに Azure AD と Microsoft ID プラットフォーム/トークンエンド ポイントを使用して、クライアント資格情報フローを設定できます。Although the OAuth 2.0 client credentials grant flow is not currently directly supported by the Azure AD B2C authentication service, you can set up client credential flow using Azure AD and the Microsoft identity platform /token endpoint for an application in your Azure AD B2C tenant. Azure AD B2C テナントは、Azure AD のエンタープライズ テナントと同じいくつかの機能を持っています。An Azure AD B2C tenant shares some functionality with Azure AD enterprise tenants.

管理アプリケーションを登録するRegister management application

スクリプトとアプリケーションが Microsoft Graph API と対話して Azure AD B2C リソースを管理できるようにするには、必要な API アクセス許可を付与するアプリケーション登録を Azure AD B2C テナントに作成する必要があります。Before your scripts and applications can interact with the Microsoft Graph API to manage Azure AD B2C resources, you need to create an application registration in your Azure AD B2C tenant that grants the required API permissions.

  1. Azure portal にサインインします。Sign in to the Azure portal.
  2. ポータル ツール バーにある [ディレクトリ + サブスクリプション] アイコンを選択し、Azure AD B2C テナントを含むディレクトリを選択します。Select the Directory + Subscription icon in the portal toolbar, and then select the directory that contains your Azure AD B2C tenant.
  3. Azure portal で、 [Azure AD B2C] を検索して選択します。In the Azure portal, search for and select Azure AD B2C.
  4. [アプリの登録] を選択し、 [新規登録] を選択します。Select App registrations, and then select New registration.
  5. アプリケーションの名前を入力します。Enter a Name for the application. たとえば、managementapp1 と入力します。For example, managementapp1.
  6. [この組織のディレクトリ内のアカウントのみ] を選択します。Select Accounts in this organizational directory only.
  7. [アクセス許可] で、 [openid と offline_access アクセス許可に対して管理者の同意を付与します] チェック ボックスをオフにします。Under Permissions, clear the Grant admin consent to openid and offline_access permissions check box.
  8. [登録] を選択します。Select Register.
  9. アプリケーションの概要ページに表示されている [アプリケーション (クライアント) ID] を記録します。Record the Application (client) ID that appears on the application overview page. この値は、後の手順で使用します。You use this value in a later step.

API アクセスの許可Grant API access

次に、Microsoft Graph API の呼び出しによってテナント リソースを操作するための登録済みアプリケーションのアクセス許可を付与します。Next, grant the registered application permissions to manipulate tenant resources through calls to the Microsoft Graph API.

  1. [管理] の下にある [API のアクセス許可] を選択します。Under Manage, select API permissions.
  2. [構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。Under Configured permissions, select Add a permission.
  3. [Microsoft API] タブを選択し、 [Microsoft Graph] を選択します。Select the Microsoft APIs tab, then select Microsoft Graph.
  4. [アプリケーションのアクセス許可] を選択します。Select Application permissions.
  5. 適切なアクセス許可グループを展開し、管理アプリケーションに付与するアクセス許可のチェック ボックスをオンにします。Expand the appropriate permission group and select the check box of the permission to grant to your management application. 次に例を示します。For example:
    • [AuditLog] > [AuditLog.Read.All] :ディレクトリの監査ログを読み取る場合。AuditLog > AuditLog.Read.All: For reading the directory's audit logs.
    • [Directory](ディレクトリ) > [Directory.ReadWrite.All] :ユーザー移行またはユーザー管理のシナリオの場合。Directory > Directory.ReadWrite.All: For user migration or user management scenarios.
    • [Policy](ポリシー) > [Policy.ReadWrite.TrustFramework] :継続的インテグレーション/継続的デリバリー (CI/CD) のシナリオの場合。Policy > Policy.ReadWrite.TrustFramework: For continuous integration/continuous delivery (CI/CD) scenarios. たとえば、Azure Pipelines を使用したカスタム ポリシーの展開などです。For example, custom policy deployment with Azure Pipelines.
  6. [アクセス許可の追加] を選択します.Select Add permissions. 指示に従って、数分待ってから次の手順に進みます。As directed, wait a few minutes before proceeding to the next step.
  7. [<テナント名> に管理者の同意を与えます] を選択します。Select Grant admin consent for (your tenant name).
  8. 現在グローバル管理者アカウントを使用してサインインしていない場合は、少なくとも "クラウド アプリケーション管理者" ロールが割り当てられている Azure AD B2C テナントのアカウントでサインインしてから、 [<テナント名> に管理者の同意を与えます] を選択します。If you are not currently signed-in with Global Administrator account, sign in with an account in your Azure AD B2C tenant that's been assigned at least the Cloud application administrator role and then select Grant admin consent for (your tenant name).
  9. [更新] を選択し、 [状態] に、"... に付与されました" と表示されていることを確認します。Select Refresh, and then verify that "Granted for ..." appears under Status. アクセス許可が反映されるまでに数分かかる場合があります。It might take a few minutes for the permissions to propagate.

クライアント シークレットを作成するCreate client secret

  1. [管理] で、 [証明書とシークレット] を選択します。Under Manage, select Certificates & secrets.
  2. [新しいクライアント シークレット] を選択します。Select New client secret.
  3. [説明] ボックスにクライアント シークレットの説明を入力します。Enter a description for the client secret in the Description box. たとえば、clientsecret1 のようにします。For example, clientsecret1.
  4. [有効期限] で、シークレットが有効な期間を選択してから、 [追加] を選択します。Under Expires, select a duration for which the secret is valid, and then select Add.
  5. シークレットのを記録します。Record the secret's Value. この値は、後の手順で構成に使用します。You use this value for configuration in a later step.

これで、Azure AD B2C テナントでユーザーの "作成"、"読み取り"、"更新"、および "削除" を実行するアクセス許可を持つアプリケーションが用意されました。You now have an application that has permission to create, read, update, and delete users in your Azure AD B2C tenant. 次のセクションに進み、"パスワードの更新" アクセス許可を追加します。Continue to the next section to add password update permissions.

ユーザーの削除とパスワードの更新を有効にするEnable user delete and password update

[ディレクトリ データの読み取りと書き込み] アクセス許可には、ユーザーを削除したり、ユーザー アカウントのパスワードを更新したりする権限は含まれていませんThe Read and write directory data permission does NOT include the ability delete users or update user account passwords.

アプリケーションまたはスクリプトでユーザーを削除したりパスワードを更新したりする必要がある場合は、"ユーザー管理者" のロールをアプリケーションに割り当ててください。If your application or script needs to delete users or update their passwords, assign the User administrator role to your application:

  1. Azure portal にサインインし、 [ディレクトリ + サブスクリプション] フィルターを使用して Azure AD B2C テナントに切り替えます。Sign in to the Azure portal and use the Directory + Subscription filter to switch to your Azure AD B2C tenant.
  2. Azure AD B2C を検索して選択します。Search for and select Azure AD B2C.
  3. [管理][ロールと管理者] を選択します。Under Manage, select Roles and administrators.
  4. [ユーザー管理者] ロールを選択します。Select the User administrator role.
  5. [割り当ての追加] を選択します。Select Add assignments.
  6. [選択] テキスト ボックスに、前に登録したアプリケーションの名前 (たとえば、managementapp1) を入力します。In the Select text box, enter the name of the application you registered earlier, for example, managementapp1. 検索結果に表示されたらアプリケーションを選択します。Select your application when it appears in the search results.
  7. [追加] を選択します。Select Add. アクセス許可が完全に反映されるまでに数分かかる場合があります。It might take a few minutes to for the permissions to fully propagate.

次のステップNext steps

管理アプリケーションを登録し、必要なアクセス許可を付与したので、お使いのアプリケーションとサービス (たとえば、Azure Pipelines) はその資格情報とアクセス許可を使用して、Microsoft Graph API と対話することができます。Now that you've registered your management application and have granted it the required permissions, your applications and services (for example, Azure Pipelines) can use its credentials and permissions to interact with the Microsoft Graph API.