サードパーティからのユーザ属性値の取得(SAML 2.0)

目次
sm1252sp1jjp
目次
2
SAML 2.0 フェデレーション環境では、サービス プロバイダがアサーションで提供されていないユーザに関する情報を必要とする場合があります。サービス プロバイダは、事前定義されたユーザ属性の値をリクエストできます。ID プロバイダにこれらの値がない場合は、サードパーティから値をリクエストできます。環境では、この機能はプロキシ化された属性クエリと呼ばれています。
プロキシ化された属性クエリの概要
プロキシ化された属性クエリ機能は、SAML 2.0 アサーション クエリ/リクエスト プロファイルに基づいており、ユーザ属性の検索を拡張します。属性機関は、まずユーザ ディレクトリおよびセッション ストアで属性を検索します。属性が見つからず、ユーザが最初サードパーティ IdP で認証されている場合、リクエストはサードパーティ IdP に転送できます。
プロキシ化された属性クエリを実装する場合、単一の システムは 2 つのリモート システム間の中継点として機能します。1 つのリモート システムから別のリモート システムにリクエストを中継する場合、単一のシステムが 2 つの役割を果たします。システムは、まず元の属性リクエスタの属性機関として機能します。システムは、サードパーティ IdP に対して属性リクエスタとしても機能します。属性リクエスタとして、システムは元の IdP に対して属性クエリをプロキシ化します。
以下の図は、単一のシステムがプロキシ化されたクエリを処理する方法を示しています。
proxied attribute query
以下の手順では、プロキシ化された属性クエリのフローについて説明します。
  1. ユーザは、始めにシステム C で、サードパーティ IdP を認証します。システム C はアサーションを生成し、それをシステム B へ渡します。
  2. システム B はシステム A にアサーションを送信し、システム A、B 、C 間で初期シングル サインオン トランザクションを完了します。このシングル サインオン トランザクションは、プロキシ化された属性クエリを処理するために必要です。
  3. システム A がアサーションを受信した後、システム A はそれがアサーション内にない他の属性を必要とするかどうかを決定します。属性リクエスタとして、システム A は属性クエリをその属性機関/IdP、システム B に送信します。
  4. システム B は、システム A がそのユーザ ディレクトリまたはセッション ストアにない属性を必要とするかどうかを決定します。属性を取得するために、システム B は新しいクエリ リクエストを生成します。システム B は、ユーザが最初に認証を行った、システム C(サードパーティ IdP)に新規クエリを送信します。この新規クエリは、プロキシ化されたクエリです。
  5. システム C は、属性についてのレスポンスをシステム B に返します。システム B は属性をそのセッション ストアに保存します。
  6. システム B は、属性機関として、システム A に属性を含む自身のレスポンスを返します。
重要:
システム A で設定された属性名および名前形式(未指定、URI、または基本)は、システム C でのこれらの属性名と一致する必要があります。この情報は、トランザクションが発生する前に伝達されます。
属性機関として機能するシステムの有効化(IdP->SP)
プロキシ化されたクエリ トランザクションを実装するには、同じ システム上に 2 つのパートナーシップを設定します。
  • IdP から SP へのパートナーシップ
  • SP から IdP へのパートナーシップ
が属性機関として機能するには、既存の IdP から SP へのパートナーシップを変更するか、パートナーシップを作成します。このパートナーシップで、はローカル IdP/属性機関であり、リモート パートナーは SP/属性リクエスタです。
注:
このシステムは、SP から IdP へのパートナーシップで属性リクエスタとしても役立ちます。
以下の手順に従います。
  1. 管理 UI にログインします。
  2. [フェデレーション]-[パートナーシップ フェデレーション]-[パートナーシップ]を選択します。
  3. 変更または新しく作成する IdP から SP へのパートナーシップを選択します。
  4. パートナーシップ ウィザードの[SSO と SLO]手順に移動します。
  5. ダイアログ ボックスの[属性サービス]セクションの[有効]を選択します。
  6. [有効期間]に秒数を入力します。
  7. (オプション)属性クエリの署名、および属性アサーションおよびレスポンスの署名を要求するかどうかを指定します。
  8. [プロキシ化されたクエリの有効化]を選択します。
  9. [ユーザの検索]セクションで、適切なユーザ ディレクトリ ネームスペースの検索指定を入力します。属性機関は、この検索指定を使用してユーザを特定します。
    LDAP ユーザ ディレクトリに対する例には、uid=%s などがあります。少なくとも 1 つの検索条件が必要です。
  10. (オプション)[バック チャネル]セクションで[保護タイプ]に[パートナーシップ]を指定します。認証方法を選択します。バック チャネルの詳細については、[ヘルプ]をクリックしてください。
  11. パートナーシップを保存してアクティブにします。
システムが、元の属性リクエスタに対する属性機関として機能できるようになります。
属性リクエスタとして機能するシステムの有効化(SP->IdP)
プロキシ化されたクエリ トランザクションを実装するには、同じ システム上に 2 つのパートナーシップを設定します。
  • IdP から SP へのパートナーシップ
  • SP から IdP へのパートナーシップ
注:
パートナーシップ フェデレーションは、プロキシ化された属性クエリ機能に対する属性リクエスタとしてのみ、SP をサポートします。
が属性リクエスタとして機能するには、既存の SP から IdP へのパートナーシップを変更するか、新しいパートナーシップを作成します。このパートナーシップで、はローカル SP/属性リクエスタであり、リモート サードパーティはリモート IdP/属性機関です。
注:
このシステムは、IdP から SP へのパートナーシップにおける属性機関としても機能します。
以下の手順に従います。
  1. 管理 UI にログインします。
  2. [フェデレーション]-[パートナーシップ フェデレーション]-[パートナーシップ]を選択します。
  3. 変更する SP から IdP へのパートナーシップを選択するか、新しく作成します。
  4. パートナーシップ ウィザードの[SSO と SLO]手順に移動します。
  5. [属性リクエスタ サービス]セクションで、[有効]および[プロキシ化されたクエリの有効化]を選択します。
  6. [属性サービス]セクションで、リモート IdP の URL を指定します。
  7. 名前 ID の形式、タイプ、および値を指定します。
  8. (オプション)バック チャネルの認証タイプを選択します。バック チャネルについては、[ヘルプ]をクリックしてください。
  9. パートナーシップを保存してアクティブにします。
これでサービス プロバイダは属性リクエスタとして機能できます。