皆さんこんにちは。国井です。
ADFSトレーニングテキスト全文公開チャレンジの13回目は、いよいよクレームルール言語の話です。クレームルール言語について基本的な仕組みについて解説します。
■ ■ ■
第 4 章では、ADFS サーバーでトークンに含まれるクレームをカスタマイズしたり、認可を行う条件をカスタマイズしたり、する方法について解説します。このようなカスタマイズはクレームルール言語と呼ばれる言語を直接編集して行います。そのため、第 4 章ではクレーム ルール言語の書き方と具体的なサンプルを紹介します。
ADFS サーバーを経由して、Office 365 またはその他のクラウド サービスへアクセスする場合、Azure ADも経由するため、私たちは Office 365 またはその他のクラウド サービスへのアクセス制御を行うときにはActive Directory、ADFS サーバー、Azure AD、クラウドサービス (Office 365) の 4 か所でアクセス制御のための設定を行うことができます。
■Active Directory ドメイン サービス
Active Directory ではユーザー名とパスワードをベースにした認証を行い、その結果に基づいてADFS サーバーではトークンを発行するため、資格情報による認証というアクセス制御が行えます。
■ADFS サーバー
ADFS サーバーではトークンの中に含まれる情報に基づいてアクセス可否を判定するクレームルールの他、多要素認証による本人確認や、あらかじめ登録されたデバイスからのアクセスのみを許可するデバイス認証によるアクセス制御が行えます。
クレーム ルールには主な規則として、受け付け変換規則、発行承認規則、発行変換規則があります。
受け付け変換規則では発行承認規則で使用するクレームを発行するための規則、
発行承認承認規則ではアクセス許可を定義するための規則、
発行変換規則ではユーザーに対して発行するトークンに格納するクレームを定義するための規則をそれぞれ定義しています。
受け付け変換規則、発行承認規則、発行変換規則では、クレームルール自体を作成しなくても利用可能なルールの作成方法が用意されています。次のページから、それぞれの規則で作成可能なクレームルールの種類について解説します。
要求規則を利用してセットするクレームを定義する場合、これまで要求規則テンプレートから、あらかじめ決められたテンプレートを選択して定義していました。要求規則テンプレートから作成した規則 (ルール) は ADFS の中で解釈するためにクレームルール言語と呼ばれる言語に置き換えて処理しています。
要求規則テンプレートから作成したルールは、すべてクレームルール言語として格納されており、[規則の編集] 画面から [規則言語の表示] をクリックして、その内容を確認できます。
クレーム ルール言語はテンプレートから作成したルールを参照するだけでなく、自分で直接作成・編集することができます。クレームルール言語を作成するときは、要求規則テンプレートから [カスタム規則を使用して要求を送信] を選択して作成します。
クレームルール言語の作成には、あらかじめ用意された言語体系があるので、それに従ってルールを記述します。また、他のルールからクレームルール言語の内容をコピーして新しいルールを作成することも可能です。
クレーム ルールは CP または RP の受け付け変換規則、発行承認規則、発行変換規則の 3つの規則でトークンの中に実装するクレームを定義します。3つの規則は、受け付け変換規則→発行承認規則→発行変換規則の順で処理され、それぞれの規則で作成または承認されたトークンを Output Claim Set、次の規則が受け取るトークンを Input Claim Set と呼びます。そのため、発行承認規則の Output Claim Set と発行変換規則の Input Claim Set は同じ内容といえます。
また、それぞれの規則の中で複数のルールが定義されている場合、個々のルールは順序 1 から順番に処理され、処理結果はトークン内のクレームとして加算されていきます。
編集後記
先週は仕事が忙しくて2日間公開できないタイミングがありました。そのおかげで年内にすべて公開することはほとんど無理な状況になりましたが、公開しておけば今じゃなくても、いつか誰かの役に立つのではないかと思い、地道にやっていくことにしました。今週も毎日更新でいきますので、よろしくお願いします。