intra-mart Accel Platform SAML認証プログラミングガイド 第2版 2016-08-01

5. SAML認証時のテナントIDの解決方法をカスタマイズする

5.1. この機能について

対象のIdPでSAML認証を行った後のテナントIDの解決方法をカスタマイズします。

5.2. 実装済みの機能

標準で定義されている機能は以下の通りです。

クラス名
説明
対象のIdPでSAML認証を行った後のテナントIDはデフォルトのテナントIDを利用して解決します。
パラメータ 使用しません。

クラス名
説明
対象のIdPでSAML認証を行った後のテナントIDはパラメータに設定したテナントIDを利用して解決します。
パラメータ テナントIDを設定します。

クラス名
説明
対象のIdPでSAML認証を行った後のテナントIDはログイン画面のURL(コンテキストパスまで)からパラメータの正規表現で抽出した値をテナントIDとして解決します。
パラメータの正規表現で()で囲まれた部分に一致した文字列をテナントIDとします。
マッチしない場合はテナント解決に失敗しますのでパラメータには必ずマッチする正規表現を設定してください。
パラメータ
ログイン画面のURLからテナントIDを抽出する正規表現を設定します。
正規表現の()で囲まれた部分に一致した文字列がテナントIDとなるように設定してください。

【例】
コンテキストパスまでのURLが https://tenant1.sample.com/imart
正規表現が https://(.+)\.sample\.com

上記の場合は tenant1 がテナントIDとして解決されます。

5.3. 実装方法

SAML認証時のテナントIDの解決方法をカスタマイズするクラスの実装は、以下のインタフェースを実装して作成します。


以下の関数に処理を実装します。

getTenantId(final HttpServletRequest request, ProviderConfiguration providerConfig, String tenantResolverParam)

対象のIdPでSAML認証を行った後のテナントIDを戻り値とします。

【関数のパラメータ】
request HTTPリクエストです。
providerConfig プロバイダ設定情報の内容です。
tenantResolverParam 画面で設定したパラメータの内容です。

作成したプログラムはコンパイル後にWEB-INF/classes配下に配置します。

5.4. 設定方法

  1. システム管理者でログインします。
  2. ツールバーの「システム管理」-「SAML認証設定」-「IdP一覧」をクリックします。
  3. ツールバーの「新規登録」または一覧から既存のIdP名のリンクをクリックします。
  4. 「SP設定」タブをクリックします。
  5. 「テナント解決方法」で利用したいクラス名とパラメータを設定します。
  6. 更新または新規登録ボタンをクリックして、保存します。

注意

「テナント解決方法」の項目はテナントが複数ある場合のみ表示されます。