HTTP ヘッダとしての SAML 2.0 属性の供給

目次
casso11jp
目次
2
casso11jp
アサーション レスポンスには、アサーションの属性を含めることができます。これらの属性は HTTP ヘッダ変数として提供できるため、クライアント アプリケーションでは、これらを使用して、より細かい粒度のアクセス制御を実行できます。
属性を HTTP ヘッダに含める場合には、以下のような利点があります。
  • HTTP ヘッダは永続的ではありません。これらのヘッダは、それらが含まれるリクエストまたはレスポンス内のみに存在します。
  • HTTP ヘッダは、
    Single Sign-On
    Web エージェントによって提供される場合と同様に、ブラウザ内で非表示であるため、セキュリティ上の心配が軽減されます。
注:
HTTP ヘッダにはサイズの制限があり、属性はその制限を超えることができません。
Single Sign-On
では、Web サーバのヘッダに関するサイズ制限までの属性をヘッダで送信できます。1 つのヘッダごとに 1 つのアサーション属性のみが許可されます。ヘッダ サイズの制限を調べるには、使用している Web サーバのドキュメントを参照してください。
HTTP ヘッダとしての SAML 属性のユース ケース
casso11jp
認証時、一連の SAML 属性がアサーションから抽出され、HTTP ヘッダとして提供されます。認可プロセス時、これらのヘッダはカスタマ アプリケーションに返されます。
次のフロー図は、ランタイムのイベントのシーケンスを表します。
Processing SAML Headers as Attributes
CA Access Gateway は、Web エージェントおよび Web エージェント オプション パックを置き換えて、フェデレーション Web サービス アプリケーション機能を提供できます。フロー図では、Web エージェント ブロックは CA Access Gateway に組み込まれた Web エージェントになります。
属性を HTTP ヘッダとして処理する場合のイベントのシーケンスは以下のとおりです。
  1. アサーションがアサーティング パーティで生成された後、アサーションが依存パーティの適切なコンシューマサービスに送信されます。配信方法(POST または Artifact または WS フェデレーション)には無関係です。
    注:
    コンシューマ サービスは、SAML 認証情報コレクタ(SAML 1.x の場合)、アサーション コンシューマ サービス(SAML 2.0 の場合)、またはセキュリティ トークン コンシューマ サービス(WS フェデレーションの場合)です。
  2. コンシューマサービスは、そのローカル ポリシー サーバをコールし、設定済みの認証方式を使用してアサーションによるユーザ認証を実行します。
  3. 認証方式のリダイレクト モード パラメータが PersistAttributes に設定されている場合、ポリシー サーバはセッション変数として属性をセッション ストアにキャッシュします。
  4. 認証の結果はコンシューマ サービスに返されます。
  5. コンシューマ サービスは、保護されたターゲット リソースにブラウザをリダイレクトします。
  6. ブラウザは、ターゲット リソースへのアクセスを試みます。
  7. Web エージェントは、ポリシー サーバをコールして、ユーザ セッションを検証すると共に、ユーザのターゲット リソースへのアクセスが許可されていることを確認します。
  8. ポリシー サーバは、設定済みのレスポンスによって属性を取得します。
  9. ポリシー サーバは、レスポンスを処理し、属性を Web エージェントに送信します。
  10. Web エージェントは、必要に応じて HTTP ヘッダを設定します。
属性を HTTP ヘッダとして提供するための設定の概要
casso11jp
セッション ストアにキャッシュされた SAML 属性を取得し、それらを HTTP ヘッダとして提供するには、複数の設定手順が必要となります。
以下の手順に従います。
  1. SAML 認証方式のリダイレクト モードとして PersistAttributes を選択します。これにより、SAML 属性が HTTP ヘッダとして返されるようになります。
  2. ターゲット リソースが含まれるレルムに対する認可ルールを設定します。
  3. ターゲット リソースを保護するレルムで PersistentRealm を設定します。
  4. ヘッダとして提供される SAML 属性ごとに、アクティブなレスポンス タイプを使用するレスポンスを設定します。
  5. 認可ルールとアクティブなレスポンスをバインドして属性のユーザを HTTP ヘッダとして実装するポリシーを作成します。
SAML 属性を保存するためのリダイレクト モードの設定
casso11jp
依存パーティが SAML アサーションでユーザを認証した後、SAML 属性はセッション ストアに書き込まれます。その後、ブラウザはターゲット リソースにリダイレクトされます。
属性データを持つブラウザをリダイレクトする方法
  1. 管理 UI にログインします。
  2. SAML 認証方式の設定ページに移動します。
  3. [リダイレクト モード]パラメータを[属性を保持する]に設定します。[リダイレクト モード]フィールドの場所は以下のように特定されます。
    • SAML 1.x
      [リダイレクト モード]は、設定のメイン ページの[方式のセットアップ]セクションにあります。
    • SAML 2.0
      [SAML 2.0 設定]-[SSO]を選択します。[リダイレクト モード]は、ページの[SSO]セクションにあります。
    • WS-フェデレーション
      [WS-Federation の設定]-[SAML プロファイル]をクリックします。[リダイレクト モード]は、ページの[SSO]セクションにあります。
  4. [サブミット]をクリックして、変更を保存します。
以上で、属性データを渡すようにリダイレクト モードが設定されました。
ユーザを検証するための認可ルールの作成
casso11jp
保護されたターゲット リソースが含まれるレルムの場合、セッション ストアから SAML 属性を取得するルールを作成します。
ルールは、認可イベント(onAccessAccept)に基づきます。ユーザは、FWS アプリケーションによってすでに認証されています。Web エージェントは、ユーザを再認証して HTTP ヘッダを渡すことはできません。属性の取得は、認可の段階で行われます。
レルムの OnAccessAccept ルールを作成する方法
  1. 管理 UI にログオンします。
  2. [ポリシー]-[ドメイン]-[レルム]と順に移動します。
  3. ターゲット リソースが含まれるレルムを選択します。
  4. [ルール]セクションの[作成]をクリックします。
    [ルールの作成]ページが表示されます。
  5. 名前、および必要に応じて説明を入力します。
  6. [リソース]フィールドにアスタリスク(*)を入力します。
  7. [アクション]セッションで[許可イベント]および[OnAccessAccept]を選択します。
  8. [許可/拒否と有効/無効]セクションで[有効]を選択します。
  9. [OK]ボタンをクリックしてルールを保存します。
以上で、保護されたリソースのあるレルムに対して認可ルールが定義されました。
属性を HTTP ヘッダとして送信するレスポンスの設定
casso11jp
SAML 属性を HTTP ヘッダとして Web エージェントに送信するレスポンスを設定します。Web エージェントは、レスポンスを処理して、ヘッダ変数がクライアント アプリケーションに利用可能になるようにします。
以下の手順に従います。
  1. 管理 UI にログオンします。
  2. [ポリシー]-[ドメイン]-[ドメイン]と順に移動します。
  3. ターゲット リソースのドメインを選択し、[変更]をクリックします。
  4. [レスポンス]タブを選択します。
  5. [作成]をクリックします。
    [レスポンス]ダイアログが表示されます。
  6. 名前を入力します。
  7. エージェントのタイプが
    Single Sign-On
    Web エージェントであることを確認します。
  8. [レスポンス属性の作成]をクリックします。
    [レスポンス属性]ダイアログが表示されます。
  9. [属性]フィールドで[WebAgent-HTTP-Header-Variable]を選択します。
  10. [属性の種類]の[アクティブ レスポンス]を選択します。
  11. フィールドには以下のように入力します。
    • 変数名
      ヘッダ変数の名前を指定します。この名前が割り当てられます。
    • [Library Name]
      smfedattrresponse
      この値がこのフィールドに入力される必要があります。
    • 関数名
      getAttributeValue
      この値がこのフィールドに入力される必要があります。
    • [Parameters]
      アサーションに表示される属性名を指定します。
      アサーション内の属性は、フェデレーション パートナーとの合意に基づいて決定してください。
  12. [OK]をクリックして属性を保存します。
  13. HTTP ヘッダ変数の各属性について手順を繰り返します。1 つのレスポンスに対して複数の属性を設定できます。
    [レスポンス]タブに戻ります。作成して属性は、[属性リスト]セクションに一覧表示されます。
  14. [OK]をクリックしてレスポンスを保存します。
    [レスポンス]タブに戻ります。
  15. [サブミット]をクリックしてドメインを保存します。
レスポンスは、HTTP ヘッダになるように属性を Web エージェント上に送信します。
属性を HTTP ヘッダとして実装するためのポリシーの作成
casso11jp
SAML 属性の使用を HTTP ヘッダとして実装するには、認可イベント ルールおよびアクティブ レスポンスを 1 つのポリシーにまとめます。
以下の手順に従います。
  1. 管理 UI にログオンします。
  2. [ポリシー]-[ドメイン]-[ドメイン]と順に移動します。
  3. ターゲット リソースが含まれるドメインを選択し、[変更]をクリックします。
  4. [ポリシー]タブを選択し、[ポリシー]セクションの[作成]をクリックします。
    [ポリシーの作成]ダイアログが表示されます。
  5. [名前]フィールドにわかりやすい名前を入力します。
  6. 保護されたリソースへのアクセスを許可するユーザを[ユーザ]タブで選択します。
  7. 先に[ルール]タブで作成した認可ルールを追加します。
  8. 認可ルールを選択し、[レスポンスの追加]をクリックします。
    [使用可能なレスポンス]ダイアログ ボックスが表示されます。
  9. 先に作成したアクティブ レスポンスを選択し、[OK]をクリックします。
    [ルール]タブに戻ります。レスポンスが認証ルールと共に表示されます。
  10. [サブミット]をクリックしてポリシーを保存します。
SAML 属性を HTTP ヘッダとして使用できるようにするためのポリシーが作成されました。