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配下に配置します。