ユース ケース 12: Web アプリケーションの属性を使用した SAML 2.0 SSO
86 ユーザのエンタープライズでのフェデレーション
ユース ケース 12: Web アプリケーションの属性を使用した SAML 2.0 SSO
第 6 章:レガシーフェデレーションのユースケースおよびソリューション 87 IdP が開始するシングル サインオンの場合、イベント シーケンスは次のとおり です。
1. IdP で、ユーザが Web ページのリンクをクリックし、以下のいずれか のアクションが発生します。
■ ユーザは IdPA.com からシングルサインオンサービス(SSO)にリ
ダイレクトされます。このサービスは、ユーザがセッションをし ていないことを認識します。ユーザは IdP にリダイレクトされ、
ログインするように促されます。 ログイン成功の後、ユーザは再
度 SSO サービスにリダイレクトされます。 SSO サービスに対して
定義されたアプリケーション URL は、カスタム Web アプリケー ションにユーザを送るよう、SSO サービスに命じます。
重要: ユーザが最初に SSO サービスに移動する際、いくつかのク エリパラメータ(SPID、ProtocolBinding、RelayState)は元の SSO 要 求に含まれています。 SSO サービスはこのクエリデータを
SMPORTALSTATE という名前の 1 つのクエリパラメータへグループ
化し、次にユーザを(GET により) Web アプリケーションへリダ イレクトします。
■ ユーザがログインし、Web アプリケーションに直接移動します。
注: ユーザは IdP でローカルに認証された後、セッションが有効な場合
は、認証 URL にリダイレクトされることはありません。
2. Web アプリケーションがユーザに必須情報の入力を促します。これら
の属性は SSO サービスにポストされます。
重要: Web アプリケーションは、SMPORTALSTATE クエリパラメータを
メンテナンスしてポストし、また、収集された属性を再度 SSO サービ スに戻す必要があります。
3. SSO サービスは SAML 要求を処理し、SMPORTALSTATE パラメータの データをアンパックします。サービスは、属性を持つこのデータを Web アプリケーションから取り、すべての POST データをアサーショ ン生成プログラムへ渡します。
4. アサーション生成プログラムがアサーションを作成します。
重要: SSO サービスはすべての属性をアサーション生成プログラムが 利用できるようにします。アサーションへ属性を追加するには、ア サーション生成プログラム プラグインを書き込み、設定します。
ユース ケース 12: Web アプリケーションの属性を使用した SAML 2.0 SSO
88 ユーザのエンタープライズでのフェデレーション
5. IdP がアサーションを生成した後、IdP はユーザを サービス プロバイダ
のアサーションコンシューマサービスにリダイレクトします。サー ビスプロバイダがアサーションを処理します。
6. ユーザはサービスプロバイダで、要求されたリソースへのアクセスを 取得します。
SP 開始のシングル サインオンの場合は次のようになります。
1. SP で、ユーザはリンクをクリックします。また、AuthnRequest は ID プ ロバイダのシングルサインオン(SSO)サービスに送信されます。
注: SP で開始されるシングルサインオンでは、要求は SP から SSO サービスに直接到着する必要があります(SAML 指定で必須)。 ユー ザは、Web アプリケーションに直接行くことができません。
2. IdP で、SSO サービスはユーザがセッションをしていないことを認識し ます。ユーザはセッションを認証し、確立するために認証 URL にリダ イレクトされます。ユーザがセッションを確立した後、IdP は SSO サー ビスにユーザを再度リダイレクトします。 SSO サービスに対して定義 されたアプリケーション URL は、カスタム Web アプリケーションに ユーザを戻すよう、SSO サービスに命じます。
重要: ユーザが SSO サービスにリダイレクトされる際に、いくつかの
クエリパラメータ(SPID、ProtocolBinding、RelayState)は元の要求に 含まれています。 SSO サービスはこのクエリデータを SMPORTALSTATE という名前の 1 つのクエリパラメータへグループ化し、次にユーザを
(GET により) Web アプリケーションへリダイレクトします。
3. Web アプリケーションがユーザに必須情報の入力を促します。これら の属性は SSO サービスにポストされます。
重要: Web アプリケーションは、SMPORTALSTATE クエリパラメータを
メンテナンスしてポストし、また、収集された属性を再度 SSO サービ スに戻す必要があります。
4. SSO サービスは SAML 要求を処理し、SMPORTALSTATE パラメータの データをアンパックします。 サービスは、データと属性を Web アプ リケーションから取り、すべての POST データをアサーション生成プロ グラムへ渡します。
ユース ケース 12: Web アプリケーションの属性を使用した SAML 2.0 SSO
第 6 章:レガシーフェデレーションのユースケースおよびソリューション 89
5. IdP はアサーションを生成し、すべての属性を含めます。 IdP はユーザ
をサービスプロバイダのアサーションコンシューマサービスにリダ イレクトし、ここでアサーションが処理されます。
注:アサーションへ属性を追加するには、アサーション生成プログラ ムプラグインを書き込み、設定します。
6. ユーザはサービスプロバイダで、要求されたリソースへのアクセスを 取得します。
Web アプリケーションの属性を使用した SSO の設定
Web アプリケーションの属性に基づくシングルサインオンの設定には、
特定の手順が必要です。
次の手順に従ってください:
1. ネットワークで IdP 用のカスタム Web アプリケーションを作成しま す。このカスタムアプリケーションは、必要な数の属性をユーザに促 す場合があります。また反対に、アプリケーションが標準的な属性を 提供でき、ユーザへ求める情報がないこともあります。 属性がどのよ うに収集されるかは、カスタムアプリケーションがどのように作成さ れているかに完全に依存します。
重要: IdP により開始されるシングルサインオンでは、ユーザが SSO
サービスの前に Web アプリケーションにリダイレクトされた場合、
Web アプリケーションにはパラメータ AllowApplicationPost=yes が含 まれる必要があります。アプリケーションに AllowApplicationPost パラ メータが含まれている限り、SSO サービスは POST を受け入れます。
CA SiteMinderWeb エージェントオプションパックは、カスタム Web
アプリケーションのベースとして使用できるサンプル JSP アプリケー ションに付属しています。サンプル JSP アプリケーションへのパスは 次のとおりです。 web_agent_home/affwebservices/ サンプルアプリ ケーションには次のものがあります。
sample_application.jsp
このサンプルアプリケーションは IdP または SP により開始される シングルサインオンに使用できます。ユーザはまず、SSO サービ スにリダイレクトされ、次に、カスタム Web アプリケーションに 送られます。このアプリケーションは、サービスプロバイダプロ
パティ(SAML 2.0)ダイアログボックスまたはリソースプロバイ
ダプロパティ(WS フェデレーション)ダイアログボックスの[ア プリケーション URL]に入力できます。
ユース ケース 13: SP での動的アカウント リンクによる SSO
90 ユーザのエンタープライズでのフェデレーション unsolicited_application.jsp
このサンプルアプリケーションは IdP により開始されるシングル サインオンに使用できます。ユーザは、SSO サービスではなく Web アプリケーションに直接送られます。 このアプリケーションでは、
ユーザが ID プロバイダですでに認証されていると仮定します。
注:このファイルでは、アプリケーションで AllowApplicationPost パ ラメータを使用する方法について説明します。
2. (オプション)ユーザが最初に IdP SSO サービスにリダイレクトされる 場合
a. SAML 2.0 認証方式で[アプリケーション URL]を指定します。
b. アサーションへ属性を追加するには、アサーション生成プログラ ムプラグインを設定します。
3. (オプション)ユーザが IdP からカスタム Web アプリケーションに直 接送られる場合、[アプリケーション URL]パラメータに対する値を 指定する必要はありません。ただし、CA SiteMinder を操作するには、
アサーション生成プログラム プラグインを書き込み、設定します。 ア サーション生成プログラムプラグインの作成の詳細については、
「Java 用プログラミングガイド」を参照してください。
注:この手順の順番は目安として提供されます。これらの手順は、異なる 順番で実行できます。
ユース ケース 13 : SP での動的アカウント リンクによる SSO
ユースケース 13 では、IdP (discounts.com)に、特定のユーザを識別し、
アサーションに含まれる buyerID という名前の属性が含まれています。ア サーションがサービスプロバイダ(smwidgets.com)に送信されるとき、
同じ属性はサービスプロバイダのユーザレコードに存在しません。保護 されているリソースへのアクセスをユーザが認証し、取得できるように、
サービスプロバイダは適切なユーザレコードに属性を作成する必要があ ります。
discounts.com の社員は、smwidgets.com のウィジェット上の最新の価格表 にアクセスするためにリンクを選択します。 この社員は名前および購入 者 ID でログインします。