チュートリアル: SCIM エンドポイントを検証する

このチュートリアルでは、Microsoft Entra SCIM Validator を使って、プロビジョニング サーバーが Azure SCIM クライアントと互換性があることを検証する方法について説明します。 このチュートリアルは、SCIM 互換サーバーを構築して、Microsoft Entra プロビジョニング サービスで ID を管理する必要がある開発者を対象としています。

このチュートリアルでは、次の作業を行う方法について説明します。

  • テスト方法を選択する
  • テスト方法を構成する
  • SCIM エンドポイントを検証する

前提条件

テスト方法を選択する

最初の手順では、SCIM エンドポイントを検証するテスト方法を選択します。

  1. Web ブラウザーを開き、SCIM Validator https://scimvalidator.microsoft.com/ に移動します。

  2. 3 つのテスト オプションのいずれかを選択します。 既定の属性を使用する、スキーマを自動的に検出する、またはスキーマをアップロードすることができます。

    SCIM Validator のメイン ページのスクリーンショット。

既定の属性を使用する - システムでは既定の属性が用意されており、ニーズに合わせてこれを変更します。

スキーマを検出する - エンドポイントで /Schemas がサポートされている場合、このオプションによって、サポートされている属性をツールで検出できます。 このオプションを使用すると、アプリのビルド時にアプリを更新するオーバーヘッドが軽減されるため、このオプションをお勧めします。

Upload Microsoft Entra Schema (Microsoft Entra スキーマのアップロード) - Microsoft Entra ID 上のサンプル アプリからダウンロードしたスキーマをアップロードします。

テスト方法を構成する

テスト方法を選択したら、次の手順ではこれを構成します。

SCIM Validator 属性ページのスクリーンショット。

  1. 既定の属性オプションを使用している場合は、指定されたすべてのフィールドに入力します。
  2. スキーマの検出オプションを使用している場合は、SCIM エンドポイントの URL とトークンを入力します。
  3. スキーマをアップロードする場合は、アップロードする .json ファイルを選択します。 このオプションには、Microsoft Entra 管理センター上のサンプル アプリからエクスポートした .json ファイルを指定できます。 スキーマをエクスポートする方法については、「方法: プロビジョニング構成をエクスポートし、既知の良好な状態にロールバックする」を参照してください。

注意

"グループ属性" をテストするには、[Enable Group Tests] (グループ テストを有効にする) を選択してください。

  1. 属性リストの末尾にある [属性の追加] オプションと、ページの右側にあるマイナス (-) 記号を使用して、ユーザーとグループの両方の種類のリスト属性を必要に応じて編集します。
  2. ユーザー属性とグループ属性の両方の一覧から結合プロパティを選択します。

注意

結合プロパティ (一致属性とも呼ばれます) は、ソースでユーザーとグループのリソースを一意に照会し、ターゲット システムで照合できる属性です。

SCIM エンドポイントを検証する

最後に、エンドポイントをテストして検証する必要があります。

  1. [Test Schema] (スキーマのテスト) を選択してテストを開始します。

  2. 合格したテストと失敗したテストの概要を含む結果を確認します。

  3. [詳細の表示] タブを選択し、問題を確認して修正します。

  4. すべてのテストに合格するまで、スキーマのテストを続行します。

    SCIM Validator の結果ページのスクリーンショット。

SCIM Validator での式の使用

SCIM Validator では、式を使用して属性に必要な値を生成できます。

式を使用する方法

  1. [属性] ページに移動します。
  2. カスタマイズする属性の値のに希望の式を入力します。
  3. テストの実行

Note

これらの式は、User 属性と Group 属性の両方で機能します。

使用可能な式

次の表は、使用可能な式の一覧を示しています。

Expression 意味 結果
generateRandomString {Count of String Characters} 指定したアルファベット文字の数でランダムな文字列を生成する {%generateRandomString 6%}@contoso.com CXJHYP@contoso.com
generateRandomNumber {Count of Numbers} 指定した桁数の乱数を生成する {%generateRandomNumber 4%} 8821
generateAlphaNumeric {Count of Characters} 指定した文字数のアルファベットと数字の組み合わせでランダムな文字列を生成する {%generateAlphaNumeric 7%} 59Q2M9W
generateAlphaNumericWithSpecialCharacters {Count of Characters} 指定した文字数に基づいて、アルファベット、数字、特殊文字が混在するランダム文字列を生成する {%generateAlphaNumericWithSpecialCharacters 8%}TEST D385N05’TEST

式の前または後に値を追加して目的の結果を得ることができます。たとえば、{% generateRandomString 6 %}@contoso.com を userName 属性の値フィールドに追加すると、contoso.com ドメインを保持しながらすべてのテストで新しい userName 値が生成されます。

Postman を使用してエンドポイントをテストする (オプション)

SCIM Validator ツールを使用するだけでなく、Postman を使用してエンドポイントを検証することもできます。 この例では、Postman で一連のテストを提供します。 この例では、作成、読み取り、更新、削除 (CRUD) 操作を検証します。 操作は、ユーザーとグループ、フィルター処理、グループ メンバーシップの更新、およびユーザーの無効化に対して検証されます。

エンドポイントは {host}/scim/ ディレクトリに配置され、標準の HTTP 要求を使用して、それらとやりとりすることができます。 /scim/ ルートを変更するには、AzureADProvisioningSCIMreference>ScimReferenceApi>Controllers 内の ControllerConstant.cs を参照してください。

注意

HTTP エンドポイントはローカル テストにのみ使用できます。 Microsoft Entra プロビジョニング サービスを利用するには、エンドポイントで HTTPS がサポートされている必要があります。

  1. Postman をダウンロードしてアプリケーションを起動します。

  2. リンク https://aka.ms/ProvisioningPostmanをコピーし、Postman に貼り付けて、テスト コレクションをインポートします。

    テスト コレクションを Postman にインポートする方法を示すスクリーンショット。

  3. 次の変数を使用するテスト環境を作成します。

    環境 変数
    IIS Express を使用してローカルでプロジェクトを実行する
    サーバー localhost
    ポート :44359 "(: を忘れないでください)"
    Api scim
    Kestrel を使用してローカルでプロジェクトを実行する
    サーバー localhost
    ポート :5001 "(: を忘れないでください)"
    Api scim
    Azure でエンドポイントをホストする
    サーバー (SCIM URL を入力)
    [ポート] (空白のまま)
    Api scim
  4. Postman コレクションから Get Key を使用して、GET 要求をトークン エンドポイントに送信し、後続の要求のために token 変数に保存されるセキュリティ トークンを取得します。

    Postman Get Key フォルダーを示すスクリーンショット。

    注意

    SCIM エンドポイントを安全にするには、接続する前にセキュリティ トークンが必要です。 チュートリアルでは、{host}/scim/token エンドポイントを使用して自己署名トークンを生成します。

これで完了です。 Postman コレクションを実行して SCIM エンドポイント機能をテストできるようになりました。

リソースをクリーンアップする

テストで作成した Azure リソースが不要になった場合は、必ず削除してください。

Microsoft Entra SCIM Validator に関する既知の問題

  • 論理的な削除 (無効化) はまだサポートされていません。
  • タイム ゾーン形式がランダムに生成されるため、この検証を試みるシステムではエラーが発生します。
  • パッチ ユーザーの削除属性によって、特定のシステムの必須属性の削除が試行される場合があります。 このようなエラーは無視する必要があります。

次のステップ