SAML 2.0 メッセージ コンシューマ プラグインによるアサーション処理のカスタマイズ

目次
sm1252sp1jjp
目次
2
sm1252sp1jjp
メッセージ コンシューマ プラグインは、メッセージ コンシューマ プラグインを実装する Java プログラムです。プラグインを使用することにより、アサーションを拒否したり、ステータス コードを返したりなど、アサーションを処理するための独自のビジネス ロジックを実装できます。この追加の処理は、アサーションの標準的な処理と連携して動作します。
認証時、はまず、ユーザをそのローカル ユーザ ストアにマップすることによりアサーションの処理を試みます。そのユーザが見つからない場合、はメッセージ コンシューマ プラグインの postDisambiguateUser メソッドをコールします。
プラグインで正常にユーザが検索された場合、は認証の第 2 段階に進みます。プラグインでユーザをローカル ユーザ ストアにマップできない場合、プラグインから UserNotFound エラーが返されます。プラグインでは、オプションでリダイレクト URL 機能を使用できます。コンシューマ プラグインを使用しない場合、リダイレクト URL は、SAML 認証方式によって生成されるエラーに基づきます。
認証の第 2 段階では、はメッセージ コンシューマ プラグインの postAuthenticateUser メソッドをコールします(プラグインが設定されている場合)。メソッドが成功した場合、はユーザをリクエストされたリソースにリダイレクトします。メソッドが失敗する場合、ユーザを失敗ページに移動するようにプラグインを設定できます。失敗ページとして、認証方式設定で指定可能なリダイレクト URL の 1 つを使用できます。
プラグインを設定する方法
  1. SDK をインストールします(未インストールの場合)。
  2. MessageconsumerPlugin.java インターフェースを実装します( SDK に含まれています)。
  3. メッセージ コンシューマ プラグイン実装クラスを展開します。
  4. 管理 UI でメッセージ コンシューマ プラグインを有効にします。
MessageConsumerPlugin インターフェースの実装
sm1252sp1jjp
MessageConsumerPlugin.java インターフェースを実装するにより、カスタム メッセージ コンシューマ プラグインを作成します。実装クラスの最小要件は、以下の手順に示されています。
以下の手順に従います。
  1. パラメータが含まれない公のデフォルト コンストラクタ メソッドを提供します。
  2. 実装がステートレスになるように、コードを提供します。多数のスレッドが 1 つのプラグイン クラスを使用できる必要があります。
  3. 現実の要件に応じて、インターフェース内のメソッドを実装します。
    MessageConsumerPlugin には、以下の 4 つのメソッドが含まれています。
    • init()
      プラグインが必要とするあらゆる初期化手順を実行します。プラグインがロードされると、
      Single Sign-On
      は各プラグイン インスタンスに対してこのメソッドを 1 回コールします。
    • release()
      プラグインが必要とするあらゆる要約手順を実行します。
      Single Sign-On
      がシャットダウンしているとき、
      Single Sign-On
      は各プラグイン インスタンスに対してこのメソッドを 1 度コールします。
    • postDisambiguateUser()
      認証方式がユーザの不明瞭解消処理を実行できない場合に、この処理を提供します。また、このメソッドは、新しいフェデレーション ユーザに関するデータをユーザ ストアに追加できます。このメソッドは、復号されたアサーションを受信します。復号されたアサーションは、キー「_DecryptedAssertion」の下のプラグインに渡されるプロパティに追加されます。
    • postAuthenticateUser()
      ポリシー サーバ処理が成功か失敗かにかかわらず、アサーション処理の最終結果を決定する追加のコードを提供します。
Single Sign-On
は、Message Consumer プラグイン クラスの以下のサンプルを提供します。
MessageConsumerPluginSample.java (
installation_home
\sdk\samples\messageconsumerplugin)
MessageConsumerSAML20.java (
installation_home
\sdk\samples\authextensionsaml20)
メッセージ コンシューマ プラグインの展開
sm1252sp1jjp
MessageConsumerPlugin インターフェースの実装クラスをコード化した後、それをコンパイルし、が実行可能ファイルを認識できることを確認します。
メッセージ コンシューマ プラグインを展開するには、以下の手順を実行します。
  1. MessageConsumerPlugin Java ファイルをコンパイルします。このファイルには、以下の依存ライブラリが必要なります。それらのライブラリは、ポリシー サーバと共にインストールされています。
    installation_home
    \siteminder\bin\jars\SmJavaApi.jar
    SmJavaApi.jar の同一のコピーが SDK と共にインストールされます。このファイルは、
    installation_home
    \sdk\Java\SmJavaApi.jar ディレクトリにあります。
    開発時にそれらのいずれも使用できます。
  2. フォルダまたは jar ファイルで、プラグイン クラスが利用可能な場合には、JVMOptions.txt ファイル内の -Djava.class.path 値を変更します。この手順により、変更したクラスパスを使用してプラグイン クラスがロードできるようになります。
    installation_home
    \siteminder\config ディレクトリの JVMOptions.txt ファイルの場所を特定します。
    : 既存の xerces.jar、xalan.jar、SmJavaApi.jar のクラスパスを変更しないでください。
  3. MessageConsumerPlugin の最新のバージョンを取得するためのポリシー サーバの再起動 この手順は、プラグイン Java ファイルが再コンパイルされるごとに必要です。
  4. プラグインを有効化します。
SAML 2.0 におけるメッセージ コンシューマ プラグインの有効化
メッセージ コンシューマ プラグインを作成してコンパイルした後に、管理 UI 内で設定することにより、このプラグインを有効にします。UI 設定により、がプラグインの場所を認識できます。
プラグインを展開するまで、プラグイン設定を実行しないでください。
メッセージ コンシューマ プラグインを有効にする方法
  1. 管理 UI にログオンします。
  2. [SAML 2.0 認証方法]ダイアログ ボックスに移動します。
  3. [詳細]をクリックします。
  4. [メッセージ コンシューマ プラグイン]セクションで、以下のフィールドに入力します。
    • 完全 Java クラス名
      プラグインの Java クラス名を指定します。たとえば、
      Single Sign-On
      SDK に含まれるサンプル クラスは次のとおりです。
      com.ca.messageconsumerplugin.MessageConsumerPluginSample
    • パラメータ
      [完全 Java クラス名]フィールドで指定されたプラグインに渡されるパラメータ文字列を指定します。
    管理 UI でプラグインを設定する代わりに、ポリシー管理 API (C または Perl)を使用して、IdpPluginClass および IdpPluginParameters を設定します。
  5. ポリシー サーバを再起動します。