ADFSを扱うにあたり、理解を難しくしている用語に「要求プロバイダー信頼」と「証明書利用者信頼」があります。今日は、要求プロバイダー信頼とは何か?証明書利用者信頼とは何か?について解説してみたいと思います。
その前に.. 信頼関係とは?
Active Directoryの信頼関係について、おさらいしておきましょう。
Active Directoryにおける信頼関係とは1度のサインインによってアクセスできる範囲を自分のドメインだけでなく、他のドメインにもアクセスできるようにする、いわゆるアクセス範囲拡張機能です。
このケースでは、信頼関係を結ぶ自分も、相手も、Active Directoryだったので、Active Directoryの信頼関係機能が利用できたのです。
では、相手がActive Directoryではなかったら?
そうです、そのときはADFSを使うのです。
ADFSを使えば、1回のサインインでアクセスできる範囲を自分のActive Directoryだけでなく、クラウドの各種サービスにまで広げることができます。このとき、ADFSサーバーは信頼関係の管理を行う役割を担っています。
ADFSの信頼関係の管理
ここからが本題です。
ADFSでは、信頼関係の管理をADFS管理ツールの要求プロバイダー信頼と証明書利用者信頼の項目で設定します。
ADFS管理ツールの[信頼関係]のフォルダーを開くと、要求プロバイダー信頼と証明書利用者信頼がそれぞれ項目として用意されていることがわかります。
要求プロバイダー信頼と証明書利用者には、それぞれ何を登録すればよいか?言葉の定義をした上で実際に登録すべきものについて考えてみましょう。
要求プロバイダー信頼とは…
ADFSがトークンを発行する際に、あなた誰?を事前に確認(認証)しなければなりません。事前に認証を行うために利用する認証機関を登録する場所として、要求プロバイダー信頼は用意されています。
なるほど。既定で要求プロバイダー信頼にはActive Directoryが登録されていることも納得できますね。そして、証明書利用者信頼はこのように考えることができます。
証明書利用者信頼とは…
ADFSが発行したトークンを利用する先(アプリケーションなど)を登録する場所として、証明書利用者信頼を利用します。
ADFSを利用するとき、証明書利用者信頼にはアプリケーションを登録しますが、これはADFSが発行したトークンを利用する先を表しているのですね。
ここまでをまとめると、こんな感じになります。
ところで、ID連携の世界では、認証を行う側をCP(Claim Provider)、発行されたトークンを利用する側をRP(Relying Party)などと表現します。
※CPのことをIdP(Identity Provider)、RPのことをSP(Service Provider)と呼ぶ場合もあります。
一方、ADFSの要求プロバイダー信頼と証明書利用者は、英語版Windowsでは
要求プロバイダー信頼 = Claim Provider Trust
証明書利用者信頼 = Relying Party Trust
と画面には書いてあります。
つまり、要求プロバイダーとはClaim Provider(CP)のことであり、
同時に、証明書利用者とはRelying Party(RP)のことを指します。
英語のADFSの画面を見ると、CPとRPのことなんだな、というのはすぐに理解できるのですが、要求プロバイダー信頼、証明書利用者信頼などと言われると、ちょっと混乱しますよね。
信頼関係の拡張
ここまでADFS1台の環境における、要求プロバイダー信頼と証明書利用者信頼についてみてきました。ADFSを使えば、Active Directoryをベースに様々なアプリケーションやサービスにシングルサインオンしたりすることができるようになることが確認できたかと思います。
では、企業間でADFSによる連携を行いたい場合にはどうすればよいでしょうか?
もし、2つの企業でADFSサーバーを既に保有していて、それぞれのADFSを利用しながら、
様々なアプリケーションにアクセスできる環境を構築したい。
その場合には、要求プロバイダー信頼または証明書利用者信頼にADFSサーバーを登録することも可能です。
このような実装を行えば、A社のActive DirectoryユーザーがB社のADFSを経由して各種クラウドサービスにアクセスするようなことも可能になります。
次回、異なる2つの会社で保有するADFSサーバー間の連携のための設定方法について紹介します。