カスタム認証拡張機能 (プレビュー)
この記事では、Microsoft Entra ID のカスタム認証拡張機能の概要を示します。 カスタム認証拡張機能を使用すると、外部システムと統合することで、Microsoft Entra 認証エクスペリエンスをカスタマイズできます。
次の図は、カスタム拡張機能と統合されたサインイン フローを示しています。
- ユーザーがアプリにサインインしようとすると、Microsoft Entra サインイン ページにリダイレクトされます。
- ユーザーが認証で特定の手順を完了すると、イベント リスナーがトリガーされます。
- カスタム認証拡張機能を使うと、REST API エンドポイントに HTTP 要求が送信されます。 要求には、イベント、ユーザー プロファイル、セッション データ、およびその他のコンテキスト情報に関する情報が含まれています。
- REST API はカスタム ワークフローを実行します。
- REST API は Microsoft Entra ID に HTTP 応答を返します。
- Microsoft Entra カスタム認証拡張機能 は応答を処理し、イベントの種類と HTTP 応答ペイロードに基づいて認証をカスタマイズします。
- アプリにトークンが返されます。
カスタム認証拡張 REST API エンドポイント
イベントが発生すると、Microsoft Entra ID は、所有している REST API エンドポイントを呼び出します。 REST API への要求には、イベント、ユーザー プロファイル、認証要求データ、およびその他のコンテキスト情報に関する情報が含まれています。
任意のプログラミング言語、フレームワーク、ホスティング環境を使用して、カスタム拡張機能 REST API を作成してホストできます。 手っ取り早く始めるには、C# Azure 関数を使用します。 Azure Functions を使用すると、最初に仮想マシン (VM) を作成したり、Web アプリケーションを発行したりしなくても、サーバーレス環境でコードを実行できます。
REST API で次の処理を行う必要があります。
- REST API 呼び出しをセキュリティで保護するためのトークン検証。
- ビジネス ロジック
- HTTP 要求スキーマと応答スキーマの受信と送信の検証。
- 監査とログ記録。
- 可用性、パフォーマンス、およびセキュリティの制御。
REST API を保護する
カスタム拡張機能と REST API 間の通信を適切にセキュリティで保護するには、複数のセキュリティ制御を適用する必要があります。
- カスタム認証拡張機能が REST API を呼び出すと、Microsoft Entra ID によって発行されたベアラー トークンを含む HTTP
Authorization
ヘッダーが送信されます。 - ベアラー トークンには、
appid
またはazp
要求が含まれています。 それぞれの要求に99045fe1-7639-4a75-9d4a-577b6ca3810f
値が含まれていることを検証します。 この値により、REST API を呼び出すのが Microsoft Entra ID であることが保証されます。- V1 アプリケーションの場合は、
appid
要求を検証します。 - V2 アプリケーションの場合は、
azp
要求を検証します。
- V1 アプリケーションの場合は、
- ベアラー トークン
aud
対象ユーザー要求には、関連付けられているアプリケーション登録の ID が含まれています。 REST API エンドポイントでは、その特定の対象ユーザーに対してベアラー トークンが発行されていることを検証する必要があります。
カスタム クレーム プロバイダー
カスタム クレーム プロバイダーは、外部システムから要求をフェッチするために REST API を呼び出すカスタム拡張機能の一種です。 カスタム クレーム プロバイダーは、ディレクトリ内の 1 つまたは複数のアプリケーションに割り当てることができ、外部システムからの要求をトークンにマップできます。
カスタム クレーム プロバイダーの詳細について学習します。
属性コレクションの開始イベントと送信イベント
属性コレクションの開始イベントと送信イベントは、ユーザーから属性を収集する前後に、ロジックを追加するためのカスタム認証拡張機能と併せて使うことができます。 たとえば、サインアップ時にユーザーが入力した属性を検証するワークフローを追加することができます。 OnAttributeCollectionStart イベントは、属性コレクション ステップの開始時、かつ属性コレクション ページがレンダリングされる前に発生します。 これにより、値の事前入力やブロック エラーの表示などのアクションを追加できます。 OnAttributeCollectionSubmit イベントは、ユーザーが属性を入力して送信した後にトリガーします。これにより、入力の検証や属性の変更などのアクションを追加できます。
Note
属性コレクションの開始イベントと送信イベントは、現在、顧客向けの Microsoft Entra 外部 ID のユーザー フローでのみ使うことができます。 詳細については、独自のビジネス ロジックの追加に関する記事を参照してください。
次のステップ
- OpenID Connect のサンプル アプリケーションを使用して属性コレクションの開始イベントと終了イベントのカスタム認証拡張機能を作成する方法について説明します。
フィードバック
フィードバックの送信と表示