サービス プロバイダでの IDP ディスカバリ設定
目次
casso126jjp
目次
2
casso126jjp
アイデンティティ プロバイダ ディスカバリ(IPD)プロファイルは、共通の検出サービスを提供し、これを使用して、サービス プロバイダが認証用の固有の IdP を選択できます。パートナー間では前もって業務提携契約が確立され、ネットワーク内のすべてのサイトがアイデンティティ プロバイダ ディスカバリ サービスとやり取りできるようになります。
このプロファイルは、複数のパートナーがアサーションを提供するフェデレーション ネットワークで役立ちます。サービス プロバイダは、特定のユーザの認証リクエストを送信する ID プロバイダの決定ができます。
IdP ディスカバリ プロファイルは、2 つのフェデレーション パートナーに共通の Cookie ドメインを使用して実装されます。合意されたドメインの Cookie には、そのユーザがアクセスしたことがある IdP のリストが含まれています。
SP は、共通のドメイン Cookie を取得するために、ユーザを IDP ディスカバリ サービスにリダイレクトする必要があります。この Cookie には、そのユーザがすでにアクセスしたこのがある IdP のリストが含まれています。このリストから、SP は正しいアイデンティティ プロバイダを選択し、認証リクエストを送信します。
注:
認証を要求するユーザは、以前にアイデンティティ プロバイダにアクセスし、認証を受けていることが必要です。IDP ディスカバリは、以下のように行われます。
- ブラウザは SP のサイト選択ページを要求します。このサイト選択ページでは IDP ディスカバリ サービス URL が認識されます。
- サイト選択ページが共通のドメインの IDP ディスカバリ サービス URL にユーザをリダイレクトします。リダイレクト URL には、共通ドメイン Cookie を必要とすることを示すクエリ パラメータが含まれます。
- IDP ディスカバリ サービスは、共通ドメイン Cookie の値を取得し、これをクエリ パラメータとして設定します。その後、IDP ディスカバリ サービスは、SP のサイト選択ページにユーザをリダイレクトして戻します。
- SP は、サイト選択ページに IdP ID を入力します。これらは、そのユーザが以前に認証を受けた URI です。
- ユーザは IdP を選択してユーザ認証を実行します。
SP でのアイデンティティ プロバイダ ディスカバリの設定
サービス プロバイダでのアイデンティティ プロバイダ ディスカバリ プロファイルの設定では、管理 UI を使用しません。このプロファイルは、アイデンティティ プロバイダの管理 UI で有効化されます。
プロセスの最初の手順は、サイト選択ページを作成することです。ポリシー サーバには、SP で使用可能な IdPDiscovery.jsp という名前のサンプル サイト選択ページが付属しています。
サイト選択ページの最初のリンクは、任意のドメインから共通ドメイン内の IdP ディスカバリ サービスにブラウザをリダイレクトします。サービスは、_
saml_idp
という名前の共通ドメイン Cookie を取得します。SP の IdP ディスカバリ サービスは、リクエストを受信すると、共通ドメイン Cookie を取得します。このサービスは、共通ドメイン Cookie をクエリ パラメータとしてリンクに追加します。その後、サービスは、通常ドメインの IdPDiscovery.jsp サイト選択ページにユーザをリダイレクトして戻します。デフォルトでは、IdPDiscovery.jsp ページには、共通 Cookie から抽出した IdP の ID のリストのみが表示されます。リストは静的ものであり、リストに関連付けられた HTML リンクはないため、リンクから関連する IdP との通信を開始するようにはなっていません。
SP で IdP ディスカバリを設定する方法
- SP の IdP ディスカバリ サービスに共通ドメイン Cookie を要求するサイト選択ページを作成します。ポリシー サーバには、IdPDiscovery.jsp という名前のサンプル サイト選択ページが付属しています。このページを使用して IdP ディスカバリを実装できます。このページは、以下のディレクトリにあります。web_agent_home/affwebservices/public
- SP サイトのサンプル ページで以下のリンクを編集します。リンクの最初の部分は、saml2idp Cookie が配置された共通ドメインを指定します。リンクの 2 番目の部分は、IdPDiscovery.jsp が配置された通常ドメインを指定します。例:<a href="http://myspsystem.commondomain.com/affwebservices/public/saml2ipd/?IPDTarget=/http://myspsystem.spdomain.com/affwebservices/public/IdpDiscovery.jsp&SAMLRequest=getIPDCookie">Retrieve idp discovery cookie from IPD Service</a>ターゲット サイト選択ページのある通常ドメインにユーザがリダイレクトされて戻ると、このページには共通 Cookie が取得されています。
- (オプション)IdPDiscovery.jsp サイト選択ページに各 IdP の HTML リンクが表示されるように、このページを編集します。それぞれのリンクが認証リクエストをトリガして、IdP がシングル サインオンを開始します。デフォルトでは、IdPDiscovery.jsp ページには、共通 Cookie から抽出した IdP の ID のリストのみが表示されます。
- 編集したサイト選択ページを使用して、IdP ディスカバリをテストします。
IdP ディスカバリが動作すると、サイト選択ページには、選択対象の IdP のリストが表示されます。
IdP ディスカバリ ターゲットの攻撃からの保護
casso126jjp
Single Sign-On
アイデンティティ プロバイダ ディスカバリ サービスが共通ドメイン Cookie のリクエストを受け取る場合、リクエストには IPDTarget という名前のクエリ パラメータが含まれています。このクエリ パラメータは、Discovery サービスでリクエストを処理した後にリダイレクトする URL をリスト表示します。IdP の場合、IPDTarget は SAML 2.0 シングル サインオン サービスです。SP の場合、ターゲットは共通ドメイン Cookie を使用するリクエスト アプリケーションです。
PDTarget クエリ パラメータをセキュリティ攻撃から保護することが推奨されます。不正なユーザは、このクエリ パラメータに任意の URL を配置することができます。この URL により、悪意のあるサイトにリダイレクトされる可能性があります。
クエリ パラメータを攻撃から保護するには、エージェント設定オブジェクトの設定項目である
ValidFedTargetDomain
を設定します。ValidFedTargetDomain パラメータ は、フェデレーション環境の有効なドメインのすべてをリストします。注:
ValidFedTargetDomain 設定は、Web エージェントが使用する ValidTargetDomain 設定に類似していますが、この設定は特に連携に対して定義されます。IPD サービスは、IPDTarget クエリ パラメータを検査します。このサービスは、クエリ パラメータによって指定される URL のドメインを取得します。IPD サービスでは、このドメインを、ValidFedTargetDomain パラメータで指定されるドメインのリストと比較します。URL ドメインが ValidFedTargetDomain に設定されたドメインの 1 つと一致する場合、IPD サービスは指定された URL にユーザをリダイレクトします。
ドメインが一致しない場合、IPD サービスはユーザ リクエストを拒否し、ブラウザに 403 Forbidden が返されます。また、FWS トレース ログおよび affwebservices ログにエラーが報告されます。これらのメッセージは、IPDTarget のドメインが有効なフェデレーション ターゲット ドメインとして定義されないことを示します。
ValidFedTargetDomain を設定しない場合、サービスは検証を一切実行せずに、ユーザをターゲット URL にリダイレクトします。