アサーション属性のアプリケーション属性へのマッピング(SAML のみ)

目次
casso11jp
目次
2
SAML 1.1 コンシューマまたは SAML 2.0 SP では、アサーション属性のセットを送信アプリケーション属性のセットにマップできます。その後、アプリケーション属性がターゲット アプリケーションに渡されます。属性マッピングでは、ターゲット アプリケーションを変更せずに、カスタマイズされたユーザ操作を提供できます。属性はパートナーシップ単位でマッピングされるので、依存パーティのアプリケーションを複数のアサーティング パーティに対して使用できます。
使用可能なマッピングのタイプは、以下のとおりです。
  • アサーション属性名をアプリケーション属性名に変換します。
    受信アサーション属性は Region=US です。この属性を送信アプリケーション属性 ServiceLocation=US に変換できます。
  • 個々の属性およびそれらの値を単一の属性に変換します。
    Name=Bob および LastName=Smith の 2 つの属性がアサーションに含まれています。これらの 2 つの属性を FullName =Bob Smith に変換できます。
アプリケーション属性定義テーブルを使用する
[アプリケーション統合]ダイアログ ボックスのアプリケーション属性定義テーブルで属性マッピング ルールを定義します。このテーブルを以下の図に示します。
Application Attribute Definitions Table
[アプリケーション属性]列および[アサーション属性]列はリモートのプロデューサまたは IdP エンティティのアサーション属性を使用して入力します。このローカル依存パーティこれらの属性を設定します。アサーション属性名は[アプリケーション属性]列に入力します。相当する統一表現言語(UEL)文字列は[アサーション属性]列に入力します。
依存パーティの管理者またはアプリケーション インテグレータには、属性マッピングを設定するために以下の情報が必要です。
  • ターゲット アプリケーション属性の名前。
  • アサーション内の属性の名前。
  • アサーション属性とターゲット アプリケーション属性のマッピング関係。マッピング関係を理解するということは、使用できるアサーション属性を必要なアプリケーション属性に変換する方法を知っているということです。
属性マッピングをセットアップする前に、必要なパーティからアプリケーション属性およびアサーション属性の名前を収集します。
アプリケーション属性はターゲット アプリケーションが使用する属性を反映する必要があるので、アプリケーションに適するようにデフォルト値を変更することが必要です。アプリケーション管理者との帯域外通信によってアプリケーション属性を取得します。
式ビルダ使用によるマッピング ルールの作成
UI は、マッピング ルールの作成に使用できる式ビルダを提供します。[アサーション属性]フィールドの右側のスライダ ボタン(<<)を選択して式ビルダにアクセスします。スライダ ボタンにより空白のフィールドおよびプルダウン矢印が表示されます。矢印を選択してマッピングの構成に使用できるアサーション属性および特殊文字のリストを表示します。スライダ ボタン(>>)をクリックして式ビルダを非表示にします。
以下の図に[式ビルダ]メニューを示します。
Special Characters Menu for Attribute Mapping
式ビルダの[アサーション属性]リストは、リモートのプロデューサまたは IdP エンティティのアサーション属性から作成されます。このローカル依存パーティこれらの属性を設定します。属性がアサーション内にあることを知っていれば、エントリを手動で指定できます。式ビルダ メニューのオプションのみを使用する必要はありません。
[特殊文字]リストには、マッピング ルールの構築に使用できるカンマおよびパーセント記号などの文字が含まれます。リストから文字を選択する、または文字を手動で入力することができます。
重要:
このテーブルにアサーション属性を入力すると、リモート アサーティング パーティで指定されたアサーション属性に関連して大文字と小文字が区別されます。大文字と小文字の区別が一致する必要があります。
Single Sign-On
がパートナーシップの両側にある場合、リモート IdP のパートナーシップ ウィザードの[名前 ID と属性]手順で属性が指定されます。パートナーとの帯域外通信、またはメタデータのインポートによってアサーション属性を取得します。
マッピング ルールの定義後に、
Single Sign-On
は、レガシー Cookie、オープン形式の Cookie または HTTP ヘッダにデータを配置します。その後、
Single Sign-On
はアプリケーションにデータを送信します。[アプリケーション統合]ダイアログ ボックスの[ターゲット アプリケーション]セクションで配信方法を指定します。
マッピングの変更および削除
[アプリケーション属性定義]テーブルでいつでも属性マッピングを変更または削除できます。
マッピングを変更する方法
  1. 変更する行内のいずれかのフィールドにカーソルを置いて、新しいテキストを入力します。式ビルダを使用して現在の式の最後に値を追加することもできます。
  2. [次へ]をクリックして変更を保存し、ウィザードを終了します。
マッピングを削除する方法
  1. 削除するエントリの[削除]列でごみ箱をクリックします。
  2. [次へ]をクリックして変更を保存し、ウィザードを終了します。
適切な構文の使用による属性マッピング ルールの作成
属性マッピングは、アサーション属性をアプリケーション属性に変換するマッピング ルールを使用します。属性マッピングを有効にすると、
Single Sign-On
はデフォルトのマッピング ルールを生成します。このルールは、リモート プロデューサまたは IdP エンティティに対して指定されたアサーション属性に基づいています。このすべての設定はローカル依存パーティで行われます。属性マッピングを無効にすると、アサーション属性は「現状のまま」ターゲット アプリケーションに渡されます。
Single Sign-On
は、JSP および JSF に類似したマッピング用の統一表現言語(UEL)構文を使用します。各アサーション属性はハッシュマップに入れられ、
attr
キーワードを割り当てられます。UEL 式エバリュエータはマッピング ルールのリストを検証して、アサーション属性のハッシュマップに適用します。その後、式エバリュエータは、結果のアプリケーション属性を含む別のハッシュマップを生成します。送信アプリケーション属性のハッシュマップは Cookie コンテンツまたはヘッダ変数に変換され、ターゲット アプリケーションに渡されます。
式を作成するためには、
Single Sign-On
が式に使用する構文を理解することが重要です。
単一属性表記
単一のアサーション属性を表記するには、以下の構文を使用します。
#{attr["
attribute_name
"]}
例:
#{attr["Name"]} は、名前アサーション属性の値を表します。
複合属性表記
複合値(区切り文字を含む場合もある)を形成するために値式を連結できます。複合のアサーション属性を表記するには、以下の構文を使用します。
#{attr["
first_attribute
"]}
optional_character
#{attr["
second_attribute
"]}
マッピングの例
以下は一連のマッピング ルールの例です。これらの例は以下の形式で表されます。
application_attribute=assertion_attributes_expression
名前の例
構文
ID = #{attr["Name"]}
  • サンプル結果
    BobSmith
簡単な連結例
構文
FullName = #{attr["FirstName"]},#{attr["LastName"]}
  • サンプル結果
    Bob,Smith
  • 構文
    FullName = #{attr["LastName"]},#{attr["FirstName"]}
  • サンプル結果
    Smith,Bob
スペースは特殊文字とみなされます。式の属性間にスペースが必要な場合は、スペースを入力します。以下に例を示します。
  • 構文
    FullName = #{attr["LastName"]}, #{attr["FirstName"]}
  • サンプル結果
    Smith, Bob
日付の例
構文
Date = #{attr["month"]}/#{attr["dateOfMonth"]}/#{attr["year"]}
  • サンプル結果
    01/05/2010
  • 構文
    Date = #{attr["monthSymbol"]} #{attr["dateOfMonth"]}, #{attr["year"]}
  • サンプル結果
    2012/01/05
金額の例
構文
Price = #{attr["amount"]}#{attr["currency"]}
  • サンプル結果
    2.50EUR
電子メール アドレスの例
構文
EmailAddress = #{attr["userName"]}@#{attr["domainName"]}
依存パーティでの属性マッピングの設定
Single Sign-On
がアサーション属性に適用できるマッピング ルールのセットを定義します。
Single Sign-On
では、特定のアサーション属性または複数のアプリケーション属性の組み合わせをマッピングできます。マッピングの結果は単一のアプリケーション属性または複数の属性です。
以下の手順に従います。
  1. パートナーシップ ウィザードの[アプリケーション統合]手順に移動します。
  2. [アプリケーション属性へのマップ]セクションで[属性マッピングの有効化]チェック ボックスをオンにします。
    [アプリケーション属性定義]テーブルが表示されます。
  3. テーブル内で既存のアプリケーション属性を変更する、または新しく定義します。すべてのアプリケーション属性はターゲット アプリケーションに渡されます。
    [アサーション属性]列の値の構文は統一表現言語(UEL)に準拠する必要があります。
    スライダ ボタン(<<)を選択して式ビルダを開き、使用できるオプションを表示します。属性値にリストから項目を追加するには、アサーションまたは特殊文字を選択して[追加]をクリックします。
    注:
    アプリケーション属性テーブルで Cookie データおよび特殊文字を指定する場合は、[URL エンコード属性 Cookie データ]オプションを選択します。チェック ボックスはダイアログ ボックスの[ターゲット アプリケーション]セクションにあります。特殊文字は、ドロップダウン リストから追加したり、手動で入力することができます。また、ターゲット アプリケーションでは、受け取ったアプリケーション属性の名前および値を URL デコードする必要があります。
  4. (オプション)デフォルト マッピングが十分でない場合は、必要なだけ行を追加します。
    デフォルトでは、リモート プロデューサまたは IdP エンティティで定義されたすべてのアサーション属性は、デフォルト(ストレート)マッピングによってテーブルに含まれます。元のアサーション属性は変更されません。これらのマッピングを変更できます。
  5. アプリケーション属性をターゲット アプリケーションに送信する方法を設定します。[アプリケーション統合]ダイアログ ボックスの[ターゲット アプリケーション]セクションで方法を設定します。
属性マッピング設定が完了しました。