チュートリアル: Microsoft Entra ID でサンプル SCIM エンドポイントを開発する

このチュートリアルでは、Azure App Service を使用して SCIM 参照コードをデプロイする方法について説明します。 次に、Postman を使用するか、Microsoft Entra プロビジョニング サービスと統合してコードをテストします。 このチュートリアルは、SCIM の使用を開始したい開発者、または SCIM エンドポイントのテストに関心のある方を対象としています。

このチュートリアルでは、以下の内容を学習します。

  • SCIM エンドポイントを Azure にデプロイする。
  • SCIM エンドポイントをテストする。

SCIM エンドポイントを Azure にデプロイする

ここで説明する手順では、Visual Studio 2019 および Visual Studio CodeAzure App Service と使用して SCIM エンドポイントをサービスにデプロイします。 SCIM リファレンス コードは、ローカルで実行したり、オンプレミス サーバーでホストしたり、別の外部サービスにデプロイしたりできます。 SCIM エンドポイントのプロビジョニングについては、SCIM エンドポイントのプロビジョニングの開発と計画に関するチュートリアルを参照してください。

サンプル アプリを取得してデプロイする

GitHub からリファレンス コードにアクセスし、 [クローンまたはダウンロード] を選択します。 [デスクトップで開く] を選択します。または、リンクをコピーし、Visual Studio を開き、 [Clone or check out code](コードをクローンまたはチェックアウトする) を選択し、コピーしたリンクを入力してローカル コピーを作成します。 パスの全文字列の長さが 260 文字以下となるフォルダーにファイルを保存します。

  1. Visual Studio では、必ず、ホスティング リソースにアクセスできるアカウントにサインインしてください。

  2. ソリューション エクスプローラーで、Microsoft.SCIM.sln を開き、Microsoft.SCIM.WebHostSample ファイルを右クリックします。 [発行] を選びます。

    Screenshot that shows the sample file.

    Note

    このソリューションをローカルで実行するには、プロジェクトをダブルクリックし、 [IIS Express] を選択し、ローカル ホストの URL を使用する Web ページとしてプロジェクトを起動します。 詳細については、「IIS Express の概要」を参照してください。

  3. [プロファイルの作成] を選択し、 [App Service][新規作成] が選択されていることを確認します。

    Screenshot that shows the Publish window.

  4. ダイアログ オプションをステップ実行し、アプリの名前を任意の名前に変更します。 この名前は、アプリと SCIM エンドポイント URL の両方で使用されます。

    Screenshot that shows creating a new app service.

  5. 使用するリソース グループを選択し、 [発行] を選択します。

    Screenshot that shows publishing a new app service.

App Service を構成する

[Azure App Service]>[構成] でアプリケーションに移動し、 [新しいアプリケーション設定] を選択して、Token__TokenIssuer 設定を https://sts.windows.net/<tenant_id>/ の値で追加します。 <tenant_id> を Microsoft Entra テナント ID に置き換えます。 Postmanを使用して SCIM エンドポイントをテストする場合、ASPNETCORE_ENVIRONMENT 設定を値 Developmentで追加します。

Screenshot that shows the Application settings window.

Microsoft Entra 管理センターでエンタープライズ アプリケーションを使用してエンドポイントをテストする場合、2 つのオプションがあります。 環境を Development のままにして、トークンは /scim/token エンドポイントからテスト用に生成したものを指定するか、環境を Production に変更してトークン フィールドは空のままにすることができます。

これで完了です。 SCIM エンドポイントが発行されたので、Azure App Service の URL を使用して SCIM エンドポイントをテストできるようになりました。

SCIM エンドポイントをテストする

SCIM エンドポイントへの要求には認可が必要です。 SCIM 標準には、複数のオプションがあります。 要求では、Cookie、基本認証、TLS クライアント認証、または RFC 7644 に規定されているメソッドのいずれかを使用できます。

ユーザー名とパスワードなどの安全でない方法は避けて、OAuth などのより安全な方法を優先してください。 Microsoft Entra ID では、有効期間が長いベアラー トークン (ギャラリーおよび非ギャラリー アプリケーション用) と、OAuth 認可付与 (ギャラリー アプリケーション用) がサポートされています。

Note

リポジトリで提供される認可方法はテスト専用です。 Microsoft Entra ID と統合する場合は、認可のガイダンスを参照できます。 SCIM エンドポイントのプロビジョニングの計画に関する記事を参照してください。

開発環境では、セキュリティ トークン検証の動作を制御するためのリファレンス コードなど、運用環境では安全でない機能が有効になります。 トークン検証コードでは自己署名セキュリティ トークンが使用され、署名キーは構成ファイルに保存されます。 appsettings.Development.json ファイルの Token:IssuerSigningKey パラメーターを参照してください。

"Token": {
    "TokenAudience": "Microsoft.Security.Bearer",
    "TokenIssuer": "Microsoft.Security.Bearer",
    "IssuerSigningKey": "A1B2C3D4E5F6A1B2C3D4E5F6",
    "TokenLifetimeInMins": "120"
}

注意

/scim/token エンドポイントに GET 要求を送信すると、構成されたキーを使用してトークンが発行されます。 そのトークンを、後続の認可用のベアラー トークンとして使用できます。

既定のトークン検証コードは、Microsoft Entra トークンを使用するように構成されており、発行元のテナントは、appsettings.json ファイルの Token:TokenIssuer パラメーターを使用して構成する必要があります。

"Token": {
    "TokenAudience": "8adf8e6e-67b2-4cf2-a259-e3dc5476c621",
    "TokenIssuer": "https://sts.windows.net/<tenant_id>/"
}

次のステップ