SAML/WS-フェデレーション認証方式の拡張

目次
casso127jpjp
目次
CA Single Sign-on
SAML (1.x および 2.0)と WS-フェデレーション認証方式は、レスポンス メッセージを処理します。ビジネス上の理由で、たとえばレスポンスをさらに処理するために追加の手順が必要となる場合があります。メッセージ コンシューマ拡張 API は、認証処理中に SAML または WS-フェデレーション レスポンスを 2 つの方法を使用して詳細に作成することを可能にするインターフェースを定義します。
  • ユーザの特定中に失敗理由の詳細をレポートする方法
  • ユーザ認証情報の検証をカスタマイズする方法
CA Single Sign-on
Java MessageConsumerPlugin API は、メッセージ コンシューマ拡張(MCE)インターフェースを実装します。自分の要件に基づいてコードを書き、カスタム プラグインを
CA Single Sign-on
に統合することができます
Method
説明
init()
プラグインが必要とするあらゆる初期化手順を実行します。
CA Single Sign-on
は、プラグインがロードされると、各プラグイン インスタンスに対してこのメソッドを 1 回コールします。
release()
プラグインが必要とするあらゆる要約手順を実行します。
CA Single Sign-on
がシャットダウンしているとき、
CA Single Sign-on
は各プラグイン インスタンスに対してこのメソッドを 1 度コールします。
postDisambiguateUser()
認証方式によって実行できない場合に、ユーザの特定を実行する処理を提供します。または、新規フェデレーション ユーザに対するデータをユーザ ストアに追加するための処理を提供します。このメソッドが復号されたアサーションを受け取ることに注目してください。復号されたアサーションは、キー「_DecryptedAssertion」の下の MCP に渡されるプロパティ マップに追加されます。
postAuthenticateUser()
ポリシー サーバ処理結果が成功または失敗に関係なく、アサーション処理の最終結果を決定する任意の追加のコードを提供します。
CA Single Sign-on
は、Message Consumer プラグイン クラスの以下のサンプルを提供します。
  • MessageConsumerPluginSample.java (<install-path>\sdk\samples\messageconsumerplugin 内)
  • MessageConsumerSAML20.java (<install-path>\sdk\samples\authextensionsaml20 内)
 
MessageConsumerPlugin のロール
以下のリストは、ユーザ認証の詳細な過程における MessageConsumerPlugin について説明しています。
  1. フェデレーション Web サービス(FWS)アプリケーションは、ユーザ認証に対する要求をポリシー サーバに転送します。
  2. ポリシー サーバは、ユーザの特定を実行するために認証方式を起動します。
  3. 認証方式は、ユーザの特定を以下のように実行します。
    1. 認証方式メタデータは、ポリシー ストアから取得されます。
    2. 認証方式は、LoginID の取得を試みます。LoginID が見つからない場合、認証方式は手順 4 で説明される MessageConsumerPlugin を起動します。
    3. LoginID が正常に取得されたら、認証方式は現在のユーザ ディレクトリを事前定義された SearchSpec で検索します。ユーザが見つからない場合、postDisambiguate() メソッドが手順 4 で説明されるように呼び出されます。ユーザが見つかった場合、手順 6 以降で説明されているように、ポリシー サーバは認証情報の検証を実行します。
    4. 認証方式がユーザ ストア SearchSpec を提供しない場合、ポリシー サーバ コアはユーザ ディレクトリ オブジェクトで定義される検索文字列でユーザを検索します。MessageConsumerPlugin は呼び出されません。
  4. postDisambiguateUser() メソッドは、特定の LoginID が存在するかどうか判断するためにユーザ ディレクトリを検索します。結果は認証方式に返されます。複数のユーザ ディレクトリが設定される場合、メソッドは数回呼び出される場合があります。このメソッドは、アサーションからユーザ ストアに新規フェデレーション ユーザに対するデータを追加するために使用することもできます。
  5. ポリシー サーバ、認証方式、またはプラグインによってユーザが正常に特定された場合、ポリシー サーバはユーザ DN をポリシー サーバに返し、認証情報の検証に進みます(手順 8 以降)。
  6. ポリシー サーバ、認証方式、または MessageConsumerPlugin によってユーザがこのユーザ ディレクトリに対して正常に特定されない場合、FWS アプリケーションは次のユーザ ディレクトリを確認し、認証情報の検証に進む前に手順 2 から 6 を繰り返します。
  7. ユーザが特定された場合、ポリシー サーバは認証方式を再度呼び出して、認証要求に対する適切な認証情報がユーザに存在するかどうかを判断します。認証方式は、レスポンス メッセージを受け入れることができるかどうかを判断します。
  8. 認証方式が、レスポンス メッセージで特定されたユーザの認証を試行した場合、ポリシー サーバは MessageConsumerPlugin から postAuthenticateUser() メソッドを呼び出します。ポリシー サーバ コアがユーザの特定を実行するときでも、ユーザが特定されるとポリシー サーバは常にこのメソッドを呼び出します。
  9. 実装に必要なフェデレーション認証情報の検証に対する他の手順を追加するために postAuthenticateUser() を使用できます。
  10. 最終結果は、認証方式によってポリシー サーバへ再度渡されます。
  11. 必要に応じて、FWS アプリケーションはどんな失敗も処理し、ユーザを適切な URL にリダイレクトすることができます。