<Context docBase="fusionplace.war" path="/fusionplace">
<Environment name="fusionplace/dbms" value="H2" type="java.lang.String"/>
<Environment name="fusionplace/pivot_time_out" value="60000" type="java.lang.Integer"/>
・・・
<!-- ここより、シングルサインオン機能のための記述項目 -->
<Environment name="fusionplace/authentication_scheme" type="java.lang.String" value="basic_authentication"/>
<Environment name="fusionplace/identity_asserter" type="java.lang.String" value="ldap"/>
<Environment name="fusionplace/identity_asserter_ldap/host" type="java.lang.String" value="directory.example.com"/>
<Environment name="fusionplace/identity_asserter_ldap/username_format" type="java.lang.String" value="uid=${USERNAME},dc=example,dc=com"/>
<!-- ここまで、シングルサインオン機能のための記述項目
-->
・・・
</Context>
シングルサインオン利用のための設定
fusion_place でシングルサインオンを有効にするには、fusion_place サーバが動作する Tomcat の設定ファイルにエントリを追加します。設定に際して以下の項目を確認・検討する必要があります。
-
LDAP サーバのホスト名・ポート番号
-
LDAP サーバへの接続に SSL/TLS, SASL (Simple Authentication and Security Layer)(※1), STARTTLS といったセキュリティ機構を使用するかどうか
-
LDAP サーバへのバインドで使用するユーザの識別名(Distinguished Name: DN)の形式
(※1)現在利用可能な SASL 機構は、Digest-MD5(設定値: digest_md5 )のみです。その他の SASL 機構や GSSAPI(Kerberos v5), その他の機構は現在のところサポートしておりません。
設定方法
Tomcat の設定ファイル server.xml を、シングルサインオンに対応するよう修正して下さい。server.xml の所在は「 インストール時指定情報の記録場所 」をご参照ください。
server.xml の内容は XML 形式の文書となっていますが、その中の Context 要素(ひとつしかありません)の配下に、いくつかの Environment 要素(環境変数)を付け加えることで、シングルサインオン機能を利用できるようになります。以下に記述例を挙げます:
設定項目一覧
シングルサインオンのための設定項目(すなわち、sever.xml 中に指定する Environment 要素)は以下の通りです。
name (環境変数名) |
type (環境変数の型) |
設定すべき値の意味 | value (設定可能な値) |
設定値の例 |
---|---|---|---|---|
fusionplace/authentication_scheme (シングルサインオン利用時必須) |
java.lang.String |
fusion_place クライアントと fusion_place サーバの間の通信に適用される HTTP 認証方式。 シングルサインオン利用時には、「Basic 認証」とする必要がある。 |
basic_authentication digest_authentication デフォルト: digest_authentication |
basic_authentication |
fusionplace/identity_asserter (シングルサインオン利用時必須) |
java.lang.String |
fusion_place サーバが、バックエンドでの認証に適用する認証方式。 シングルサインオン利用時には、「LDAP 認証」とする必要がある。 |
ldap: LDAP 認証 LDAP 認証以外の場合、当項目は省略。その場合、バックエンドでの認証方式は HTTP 認証方式と同じとなる。 |
ldap |
fusionplace/identity_asserter_ldap/host (シングルサインオン利用時必須) |
java.lang.String |
認証依頼先とする LDAP サーバのホスト名または IP アドレス。 |
ホスト名または IP アドレスとして適切な文字列。 |
directory.example.com |
fusionplace/identity_asserter_ldap/port (デフォルトポート以外利用時は必須) |
java.lang.Integer |
LDAP サーバのポート番号。 |
ポート番号として適切な整数。 デフォルト: |
8389 |
fusionplace/identity_asserter_ldap/ssl |
java.lang.Boolean |
LDAP over SSL/TLS(LDAPS)の使用/不使用を指定。
|
true : 使用する false : 使用しない デフォルト : false |
true |
fusionplace/identity_asserter_ldap/username_format (シングルサインオン利用時必須) |
java.lang.String |
LDAP バインドで使用するユーザ名のフォーマット。 フォーマット文字列中、fusion_place ユーザアカウント名部分を ${USERNAME} にて指定してください。実行時にユーザアカウント名で置換されます。 |
文字列 |
uid=${USERNAME},dc=example,dc=com |
fusionplace/authentication/ |
java.lang.String |
HTTP 認証方式に適した認証情報照合方法が強制されるユーザアカウント名(カンマ区切り)。 ここで指定されたユーザアカウントは LDAP バインドによる認証の対象外として、fusion_place にと登録されたパスワードを用いて認証される。 |
文字列 |
admin,sysadmin |
fusionplace/identity_asserter_ldap_sasl |
java.lang.Boolean |
SASL の使用/不使用を指定。 |
true :使用する false :使用しない デフォルト : false |
false |
fusionplace/identity_asserter_ldap/sasl/mechanism |
java.lang.String |
使用する SASL 機構を指定。 |
digest_md5 : Digest-MD5 を使用 デフォルト : digest_md5 |
digest_md5 |
fusionplace/identity_asserter_ldap/starttls |
java.lang.Boolean |
STARTTLS の使用/不使用を指定。 |
true :使用する false :使用しない デフォルト : false |
true |
セキュリティ関係の設定項目について
fusion_place サーバと LDAP サーバとの間の通信の一部または全体を暗号化し認証情報を保護することができます。fusion_place で利用可能なセキュリティ機構とその組み合わせは以下のとおりです。
セキュリティ機構の使用パターン | セキュリティ実現内容 | ||||
---|---|---|---|---|---|
ケース |
SSL / TLS (LDAPS)(※1) |
SASL (SASL 機構) |
STARTTLS (※1) |
暗号化の範囲 |
必要な LDAP バージョン (※2) |
(1) |
なし |
>= LDAPv2 |
|||
(2) |
使用 |
通信全体 |
>= LDAPv2 |
||
(3) |
使用(Digest-MD5) |
認証情報 |
>= LDAPv3 |
||
(4) |
使用 |
使用(Digest-MD5) |
通信全体 |
>= LDAPv3 |
|
(5) |
使用 |
TLS セッション開始以降の通信 |
>= LDAPv3 |
(※1) TLS/SSL または STARTTLS を使用する場合、fusion_place サーバが動作する Java 実行環境のキーストアに、LDAP サーバの証明書を発行した CA の証明書が存在する必要があります。
ここで、fusion_place cloud をお使いの場合、弊社クラウドから貴社 LDAP サーバにアクセスするためには貴社の LDAP サーバが LDAPS で通信できるよう構成されている必要がありますので、外向け DNS で解決可能なパブリックホスト名のご提供、および当該ホスト名を対象とする 信頼されたルート証明機関 に紐付けられた証明書をご用意ください。
(※2) LDAP サーバの LDAP バージョンです。
設定例
上表の各ケースに対応した設定例です。
(1)暗号化なし
<Environment name="fusionplace/authentication_scheme" type="java.lang.String" value="basic_authentication"/>
<Environment name="fusionplace/identity_asserter" type="java.lang.String" value="ldap"/>
<Environment name="fusionplace/identity_asserter_ldap/host" type="java.lang.String" value="directory.example.com"/>
<Environment name="fusionplace/identity_asserter_ldap/username_format" type="java.lang.String" value="uid=${USERNAME},dc=example,dc=com"/>
(2)SSL/TLS(LDAPS)
<Environment name="fusionplace/authentication_scheme" type="java.lang.String" value="basic_authentication"/>
<Environment name="fusionplace/identity_asserter" type="java.lang.String" value="ldap"/>
<Environment name="fusionplace/identity_asserter_ldap/host" type="java.lang.String" value="directory.example.com"/>
<Environment name="fusionplace/identity_asserter_ldap/ssl" type="java.lang.Boolean" value="true"/>
<Environment name="fusionplace/identity_asserter_ldap/username_format" type="java.lang.String" value="uid=${USERNAME},dc=example,dc=com"/>
(3)SASL + Digest-MD5
<Environment name="fusionplace/authentication_scheme" type="java.lang.String" value="basic_authentication"/>
<Environment name="fusionplace/identity_asserter" type="java.lang.String" value="ldap"/>
<Environment name="fusionplace/identity_asserter_ldap/host" type="java.lang.String" value="directory.example.com"/>
<Environment name="fusionplace/identity_asserter_ldap/username_format" type="java.lang.String" value="${USERNAME}"/>
<Environment name="fusionplace/identity_asserter_ldap_sasl" type="java.lang.Boolean" value="true"/>
(4)SASL + Digest-MD5 + SSL/TLS(LDAPS)
<Environment name="fusionplace/authentication_scheme" type="java.lang.String" value="basic_authentication"/>
<Environment name="fusionplace/identity_asserter" type="java.lang.String" value="ldap"/>
<Environment name="fusionplace/identity_asserter_ldap/host" type="java.lang.String" value="directory.example.com"/>
<Environment name="fusionplace/identity_asserter_ldap/ssl" type="java.lang.Boolean" value="true"/>
<Environment name="fusionplace/identity_asserter_ldap/username_format" type="java.lang.String" value="${USERNAME}"/>
<Environment name="fusionplace/identity_asserter_ldap_sasl" type="java.lang.Boolean" value="true"/>
(5)STARTTLS
<Environment name="fusionplace/authentication_scheme" type="java.lang.String" value="basic_authentication"/>
<Environment name="fusionplace/identity_asserter" type="java.lang.String" value="ldap"/>
<Environment name="fusionplace/identity_asserter_ldap/host" type="java.lang.String" value="directory.example.com"/>
<Environment name="fusionplace/identity_asserter_ldap/username_format" type="java.lang.String" value="uid=${USERNAME},dc=example,dc=com"/>
<Environment name="fusionplace/identity_asserter_ldap/starttls" type="java.lang.Boolean" value="true"/>