【第1回】Azure AD B2Cカスタムポリシーについて の続き
はじめに
この記事に興味を持っていただきありがとうございます。Azure AD B2C のカスタムポリシーを探っていくシリーズ第 2 回です。今回はカスタムポリシーを構成するコンポーネント「テクニカルプロファイル」について調べていきます。
テクニカルプロファイルの役割
テクニカルプロファイルは関数のようなものと考えられます。クレームを渡すと、なんらかの処理を施し、クレームを返してくれます。
担う処理内容によって、テクニカルプロファイルは次のような種別に分かれます。
- 認証プロバイダ - OAuth1、OAuth2、OpenIC Connect、SAML、Ws-Fed プロトコルを使います。
- REST API ― 外部の API を呼び出します。
- セルフアサート ― ユーザーへなんらかの画面を出力します。
- Azure MFA ― Azure の多要素認証画面を利用します。
- Azure AD ― Azure Active Directory を読み書きします。
- Application Insights ― Application Insights へイベントを送ります。
- トークン発行 ― 認証処理が完了したときにトークンを発行できます。
テクニカルプロファイルの中身
テクニカルプロファイルは、セッション作成までに7つのステップを踏みます。
図の中にいきなり出てきた「クレームバッグ」というのは、クレームを一時的に保存しているメモリ領域です。
ステップをひとつずつ見ていきます。
① 入力クレームを変換
テクニカルプロファイルの処理に入る前に、必要に応じてクレームを変換します。例えば、2つのクレームを連結してひとつにしたりします。
② クレームの入力
実行するテクニカルプロファイルの種別に応じて、それぞれ異なる動作になります。
- 認証プロバイダ(OpenID) ― 認証リクエストの一部としてクエリパラメータを追加します。
- REST API ― クレームを API エンドポイントへ送信する JSON のキー値ペアとして動作します。
- セルフアサート ― 画面表示する項目を事前用意します。
- Azure MFA ― 登録ユーザーの電話番号を事前用意します。
- Azure AD ― ディレクトリを検索します。
③ メイン
- 認証プロバイダ ― ユーザーを外部の認証プロバイダへリダイレクトします。
- REST API ― クレームを交換するために REST API エンドポイントを呼び出します。
- セルフアサート ― ユーザーと対話するための画面を表示します。追加の情報を入力したり編集したりします。
- Azure MFA ― Azure MFA を実行するための画面を提供します。
- Azure AD ― ディレクトリを読み書きします。
④ 検証
セルフアサートの場合、提供されたデータを検証(例えば、ある値が正しいものかどうか等)して処理を継続するかどうか決定します。
ここでユーザー名とパスワードを検証することもできます。
⑤ クレームの出力
クレームバックへクレームを出力するにあたり、テクニカルプロファイルの種別に応じてそれぞれ異なる動作をします。
- 認証プロバイダ ― 期待するキー値ペアが JWT 内にあるかどうか。
- REST API ― 期待するキー値ペアが API からの返信にあるかどうか。
- セルフアサート ― 検証に成功するまで、ユーザーへ画面を表示します。
- Azure MFA ― MFA が完了したかどうか。
- Azure AD ― ユーザーへの読み書き後のクレームを発行します。
⑥ 出力クレームの変換
クレームバッグへ出力する前に、必要に応じてクレームを変換します。
⑦ セッション管理
テクニカルプロファイルは、セッション管理への参照を含むことができます。セッション管理は、シングルサインオンできているかに応じてポリシー内のステップをスキップさせます。
まとめ
ここまでご購読ありがとうございました。今回はテクニカルプロファイルがどんなものであるかということについて書きました。
次回はユーザージャーニーについて探っていきます。
【第3回】ユーザージャーニーとは に続く
~~~~~ ”Azure AD B2Cカスタムポリシーについて”【全5回】シリーズ ~~~~~
☆【第1回】Azure AD B2C カスタムポリシーについて
☆【第2回】テクニカルプロファイルとは
☆【第3回】ユーザージャーニーとは
☆【第4回】カスタムポリシーを作成してみる
☆【最終回】カスタムポリシーを作成してみる(2)