Azure AD ユーザー プロビジョニング サービスの SCIM 2.0 プロトコルへのコンプライアンスに関する既知の問題と解決策Known issues and resolutions with SCIM 2.0 protocol compliance of the Azure AD User Provisioning service

Azure Active Directory (Azure AD) では、Cross-Domain Identity Management (SCIM) 2.0 プロトコル仕様のインターフェイスを持つ Web サービスによってアクセスされる任意のアプリケーションまたはシステムに、ユーザーやグループを自動的にプロビジョニングできます。Azure Active Directory (Azure AD) can automatically provision users and groups to any application or system that is fronted by a web service with the interface defined in the System for Cross-Domain Identity Management (SCIM) 2.0 protocol specification.

Azure AD による SCIM 2.0 プロトコルのサポートについては、「System for Cross-Domain Identity Management (SCIM) を使用して Azure Active Directory からユーザーとグループをアプリケーションに自動的にプロビジョニングする」を参照してください。この記事では、Azure AD から、SCIM 2.0 をサポートするアプリケーションに、ユーザーとグループを自動的にプロビジョニングするために実装するプロトコルの特定の部分がリストされています。Azure AD's support for the SCIM 2.0 protocol is described in Using System for Cross-Domain Identity Management (SCIM) to automatically provision users and groups from Azure Active Directory to applications, which lists the specific parts of the protocol that it implements in order to automatically provision users and groups from Azure AD to applications that support SCIM 2.0.

この記事では、Azure AD ユーザー プロビジョニング サービスの SCIM 2.0 プロトコルへの準拠に関する現在および過去の問題と、これらの問題を回避する方法について説明されています。This article describes current and past issues with the Azure AD user provisioning service's adherence to the SCIM 2.0 protocol, and how to work around these issues.

重要

Azure AD ユーザー プロビジョニング サービス SCIM クライアントへの最新の更新は、2018 年 12 月 18 日に実行されました。The latest update to the Azure AD user provisioning service SCIM client was made on December 18, 2018. この更新では、次の表に示す既知の互換性問題に対処しました。This update addressed the known compatibility issues listed in the table below. この更新の詳細については、以下のよく寄せられる質問を参照してください。See the frequently asked questions below for more information about this update.

SCIM 2.0 へのコンプライアンスに関する問題と状態SCIM 2.0 compliance issues and status

SCIM 2.0 へのコンプライアンスに関する問題SCIM 2.0 compliance issue 修正済みであるFixed? 修正日付Fix date
Azure AD で、"/scim" がアプリケーションの SCIM エンドポイント URL のルート内にある必要があるAzure AD requires "/scim" to be in the root of the application's SCIM endpoint URL はいYes 2018 年 12 月 18 日December 18, 2018
拡張属性で、属性名の前にコロン ":" 表記ではなくドット "." 表記が使用されているExtension attributes use dot "." notation before attribute names instead of colon ":" notation はいYes 2018 年 12 月 18 日December 18, 2018
複数値属性のパッチ要求に無効なパス フィルター構文が含まれているPatch requests for multi-value attributes contain invalid path filter syntax はいYes 2018 年 12 月 18 日December 18, 2018
グループの作成要求に無効なスキーマ URI が含まれているGroup creation requests contain an invalid schema URI はいYes 2018 年 12 月 18 日December 18, 2018

説明されているサービス修正プログラムは、既存の SCIM アプリに自動的に適用されていますか。Were the services fixes described automatically applied to my pre-existing SCIM app?

No.No. これらの変更は、以前の動作を使用するようコード化された SCIM アプリに重大な変更をもたらすため、既存のアプリに自動的に適用されることはありません。As it would have constituted a breaking change to SCIM apps that were coded to work with the older behavior, the changes were not automatically applied to existing apps.

これらの変更は、修正日付後に、Azure portal で構成されたすべての新しいギャラリー以外の SCIM アプリに適用されます。The changes are applied to all new non-gallery SCIM apps configured in the Azure portal, after the date of the fix.

最新の修正プログラムを含めるように既存ユーザー プロビジョニング ジョブを移行する方法については、次のセクションを参照してください。For information on how to migrate a pre-existing user provisioning job to include the latest fixes, see the next section.

最新のサービス修正プログラムを含めるように既存の SCIM ベースのユーザー プロビジョニング ジョブを移行できますか。Can I migrate an existing SCIM-based user provisioning job to include the latest service fixes?

はい。Yes. シングル サインオンにこのアプリケーション インスタンスを既に使用していて、最新の修正プログラムを含めるように既存のプロビジョニング ジョブを移行する必要がある場合は、次の手順に従います。If you are already using this application instance for single sign-on, and need to migrate the existing provisioning job to include the latest fixes, follow the procedure below. この手順では、Microsoft Graph API および Microsoft Graph API エクスプローラーを使用して、既存の SCIM のアプリから古いプロビジョニング ジョブを削除し、新しい動作を使用する新しいジョブを作成する方法について説明します。This procedure describes how to use the Microsoft Graph API and the Microsoft Graph API explorer to remove your old provisioning job from your existing SCIM app, and create a new one that exhibits the new behavior.

注意

アプリケーションがまだ開発段階で、シングル サインオンまたはユーザー プロビジョニングのどちらかにまだデプロイされていない場合、最も簡単なソリューションは、Azure portal の [Azure Active Directory] > [エンタープライズ アプリケーション] セクションでアプリケーション エントリを削除し、 [アプリケーションの作成] > [Non-gallery](ギャラリー以外) オプションを使用して、アプリケーションの新しいエントリを単に追加します。If your application is still in development and has not yet been deployed for either single sign-on or user provisioning, the easiest solution is to delete the application entry in the Azure Active Directory > Enterprise Applications section of the Azure portal, and simply add a new entry for the application using the Create application > Non-gallery option. これは、次に示す手順を行う代わりになるものです。This is an alternative to running the procedure below.

  1. Azure portal (https://portal.azure.com ) にサインインします。Sign into the Azure portal at https://portal.azure.com.

  2. Azure portal の [Azure Active Directory] > [エンタープライズ アプリケーション] セクションで、既存の SCIM アプリケーションを検索して選択します。In the Azure Active Directory > Enterprise Applications section of the Azure portal, locate and select your existing SCIM application.

  3. 既存 SCIM アプリの [プロパティ] セクションで、 [オブジェクト ID] をコピーします。In the Properties section of your existing SCIM app, copy the Object ID.

  4. 新しい Web ブラウザー ウィンドウで https://developer.microsoft.com/graph/graph-explorer に移動し、アプリの追加先の Azure AD テナントの管理者としてサインインします。In a new web browser window, go to https://developer.microsoft.com/graph/graph-explorer and sign in as the administrator for the Azure AD tenant where your app is added.

  5. Graph エクスプローラーで次のコマンドを実行して、プロビジョニング ジョブの ID を確認します。In the Graph Explorer, run the command below to locate the ID of your provisioning job. "[object-id]" を、手順 3 でコピーしたサービス プリンシパル ID (オブジェクト ID) に置き換えます。Replace "[object-id]" with the service principal ID (object ID) copied from the third step.

    GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs

    ジョブを取得するGet Jobs

  6. 結果内で、"customappsso" または "scim" のいずれかで始まる完全な "ID" 文字列をコピーします。In the results, copy the full "ID" string that begins with either "customappsso" or "scim".

  7. バックアップを作成するために、次のコマンドを実行して属性マッピング構成を取得します。Run the command below to retrieve the attribute-mapping configuration, so you can make a backup. 前と同じ [object-id] を使用し、[job-id] を、最後の手順でコピーしたプロビジョニング ジョブ ID に置き換えます。Use the same [object-id] as before, and replace [job-id] with the provisioning job ID copied from the last step.

    GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[job-id]/schema

    スキーマを取得するGet Schema

  8. 最後の手順から JSON 出力をコピーし、テキスト ファイルに保存します。Copy the JSON output from the last step, and save it to a text file. これには、古いアプリに追加したすべてのカスタム属性マッピングが含まれており、およそ数千行の JSON となります。This contains any custom attribute-mappings that you added to your old app, and should be approximately a few thousand lines of JSON.

  9. 次のコマンドを実行して、プロビジョニング ジョブを削除します。Run the command below to delete the provisioning job:

    DELETE https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[job-id]

  10. 次のコマンドを実行して、最新のサービス修正プログラムを含む新しいプロビジョニング ジョブを作成します。Run the command below to create a new provisioning job that has the latest service fixes.

POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs { templateId: "scim" }

  1. 最後の手順の結果内で、"scim" で始まる完全な "ID" 文字列をコピーします。In the results of the last step, copy the full "ID" string that begins with "scim". 必要に応じて、[new-job-id] を、先ほどコピーした新しいジョブ ID に置き換え、要求本文として手順 7 の JSON 出力を入力して、次のコマンドを実行して、古い属性マッピングを再適用します。Optionally, re-apply your old attribute-mappings by running the command below, replacing [new-job-id] with the new job ID you just copied, and entering the JSON output from step #7 as the request body.

POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[new-job-id]/schema { <your-schema-json-here> }

  1. 最初の Web ブラウザー ウィンドウに戻り、アプリケーション用の [プロビジョニング] タブを選択します。Return to the first web browser window, and select the Provisioning tab for your application.
  2. 構成を確認し、プロビジョニング ジョブを開始します。Verify your configuration, and then start the provisioning job.

はい。Yes. 修正よりも前に存在していた古い動作用にアプリケーションをコード化していて、その新しいインスタンスをデプロイする必要がある場合は、次の手順に従います。If you had coded an application to the old behavior that existed prior to the fixes, and need to deploy a new instance of it, follow the procedure below. この手順では、Microsoft Graph API および Microsoft Graph API エクスプローラーを使用して、古い動作を使用する SCIM プロビジョニング ジョブを作成する方法について説明します。This procedure describes how to use the Microsoft Graph API and the Microsoft Graph API explorer to create a SCIM provisioning job that exhibits the old behavior.

  1. Azure portal (https://portal.azure.com ) にサインインします。Sign into the Azure portal at https://portal.azure.com.

  2. Azure portal の [Azure Active Directory] > [エンタープライズ アプリケーション] > [アプリケーションの作成] セクションで、ギャラリー以外の新しいアプリケーションを作成します。in the Azure Active Directory > Enterprise Applications > Create application section of the Azure portal, create a new Non-gallery application.

  3. 新しいカスタム アプリの [プロパティ] セクションで、 [オブジェクト ID] をコピーします。In the Properties section of your new custom app, copy the Object ID.

  4. 新しい Web ブラウザー ウィンドウで https://developer.microsoft.com/graph/graph-explorer に移動し、アプリの追加先の Azure AD テナントの管理者としてサインインします。In a new web browser window, go to https://developer.microsoft.com/graph/graph-explorer and sign in as the administrator for the Azure AD tenant where your app is added.

  5. Graph エクスプローラーで次のコマンドを実行して、アプリのプロビジョニング構成を初期化します。In the Graph Explorer, run the command below to initialize the provisioning configuration for your app. "[object-id]" を、手順 3 でコピーしたサービス プリンシパル ID (オブジェクト ID) に置き換えます。Replace "[object-id]" with the service principal ID (object ID) copied from the third step.

    POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs { templateId: "customappsso" }

  6. 最初の Web ブラウザー ウィンドウに戻り、アプリケーション用の [プロビジョニング] タブを選択します。Return to the first web browser window, and select the Provisioning tab for your application.

  7. 通常どおりにユーザー プロビジョニング構成を完了します。Complete the user provisioning configuration as you normally would.

次の手順Next steps

SaaS アプリケーションへのプロビジョニングとプロビジョニング解除の詳細Learn more about provisioning and de-provisioning to SaaS applications