※ この機能はアドバンスト版以上のライセンスをご購入の場合のみご利用可能です
LDAP 認証を利用すると、PowerCMS アドバンスト版 で、LDAP v3 に対応しているディレクトリサービスと連携した「ユーザー認証」、および「ユーザー管理」をおこないます。
PowerCMS で LDAP エンタープライズ認証を利用するためには Net::LDAP モジュールのインストールされている環境が必要です。Net::LDAP のインストールについては、Net::LDAP のインストールを参照ください。
ユーザー認証の連携
LDAP を利用すると、外部のディレクトリサービスの認証で PowerCMS にサインインします。ユーザー認証を連携する場合、ユーザーのアカウント情報はディレクトリサービスと PowerCMS の双方に存在します。ただし、パスワード情報はディレクトリサービス側に保存されます。このディレクトリサービス側のパスワードでユーザー認証をおこないます。
ユーザー管理の連携
ユーザー認証に加えて、ユーザー管理自体を、ディレクトリサービスと連携します。ユーザーと所属グループの情報を、外部のディレクトリサービスで一元管理できます (PowerCMS 側では、ロール、関連付けといった、PowerCMS 固有の情報のみを管理します)。標準の設定では、ユーザー認証とユーザー管理を連携しますが、ユーザー認証だけを連携することも可能です。
PowerCMS の LDAP 設定
PowerCMS アドバンスト版をインストールする場合には、PowerCMS のインストール ウィザードで、必要な LDAP 情報を入力します。
以下の各設定項目を入力した後に、LDAP への接続をテストするボタンをクリックして、PowerCMS と LDAP ディレクトリの接続を確認してください。
- "LDAP を利用する" チェックボックス
-
LDAP を利用する場合にチェックしてください。
- 認証URL (LDAPAuthURL)
-
ディレクトリサービス側で、ユーザー認証に用いる情報の検索ベースを指定します。
ldap://ldap.example.com/dc=example,dc=com?attribute_name
attribute_name の部分は、PowerCMS のユーザー名にマッチさせたい LDAP のアトリビュートになります。
- 認証に利用するDN(Authentication Distinguished Name)
-
ディレクトリサービスにバインドする際に利用する DN (Distinguished Name) を指定します。指定がない場合は、匿名バインド (anonymous bind) で接続します。
cn=Manager,dc=example,dc=com
- 認証に利用するDNのパスワード
-
DNのパスワードを指定します。
- SASL メカニズム
-
ディレクトリサービスが SASL (Simple Authentication and Security Layer) をサポートしている場合、SASL の認証方法を指定します。PLAIN、DIGEST-MD5、CRAM-MD5、ANONYMOUS などが指定できます。項目が存在しない場合は PLAIN として扱われます。
- テストユーザー名
-
テストをするための LDAP のユーザー名
- パスワード
-
テストユーザーのパスワード
LDAP を手動で設定する
すでにインストール済みの PowerCMS に Advanced ソリューションを追加する場合には、LDAP を手動で設定 (リンク) する必要があります。
ディレクトリサービスとの連携を使用するために、環境設定ファイル mt-config.cgi に新しい項目を追加します。使用中のディレクトリサービスの環境にあわせて設定してください。
ユーザー認証の連携のための設定
ユーザー認証を連携するためには、以下の設定が必須となります。
- AuthenticationModule
-
AuthenticationModuleに MT を指定した場合、通常の PowerCMS のユーザー認証を行います。AuthenticationModule に LDAP を指定した場合、LDAP サーバーへアクセスして外部認証を行います。項目が存在しない場合は MT と設定したとして扱われます。
- LDAPAuthURL
-
ディレクトリサービス側で、ユーザー認証に用いる情報の検索ベースを指定します。指定するURLに日本語を含む場合には、URLエスケープした文字を指定してください。下記が設定例となります。
ldap://ldap.example.com/dc=example,dc=com
ユーザー管理連携のための環境変数の設定
ユーザー認証に加えて、ユーザー管理を連携するためには、以下の環境変数の設定が必要です。
- LDAPUserIdAttribute
-
ディレクトリサービス側のユーザーエントリーで、ユーザーの識別子を定義する属性 (例: entryUUID) を指定します。システム上は必須項目ではありませんが、確実に連携するために、設定することを強く推奨します。
以下の項目は、グループ情報を連携させる場合に必要です。
- LDAPGroupNameAttribute
-
ディレクトリサービス側のグループエントリーにおいて、グループの名称を定義する属性 (例: cn) を指定します。PowerCMS でグループ情報を識別するために用いられます。
- LDAPGroupMemberAttribute
-
ディレクトリサービス側のグループエントリーにおいてグループに関連するユーザーを定義する属性 (例: memberUid) を指定します。PowerCMS で各グループに所属するユーザーの情報を同期するために用いられます。
- LDAPGroupIdAttribute
-
ディレクトリサービス側のグループエントリーにおいてグループの識別子を定義する属性 (例: entryUUID) を指定します。PowerCMS でグループ情報を識別するために用いられます。必須項目ではありませんが、設定を強く推奨します。
- LDAPGroupFilter
-
ディレクトリサービス側でグループ情報の検索時に利用するフィルターを指定します (例: objectClass=posixGroup)。必須項目ではありませんが、設定を強く推奨します。
ユーザー認証、管理の連携のためのオプション設定
以下の項目は必須ではありません。必要に応じて追加してください。
- ExternalUserManagement
-
ディレクトリサービス側と連携する際に、ユーザー認証とユーザー管理の双方を連携させるか (設定値: 1)、ユーザー認証のみ (設定値: 0) を設定する事ができます。デフォルトでは、ユーザー認証とユーザー管理の双方を利用する設定となります。
- ExternalGroupManagement
-
ディレクトリサービス側と連携する際に、グループ認証とグループ管理の双方を連携させるか (設定値: 1)、グループ認証のみ (設定値: 0) を設定する事ができます。デフォルトでは、グループ認証とグループ管理の双方を利用する設定となります。
- LDAPAuthBindDN
-
ディレクトリサービスにバインドする際に利用する DN (Distinguished Name) を指定します。指定がない場合は、匿名バインド (anonymous bind) で接続します。
- LDAPAuthPassword
-
LDAPAuthBindDN で指定した DN のパスワードを指定します。
- LDAPAuthSASLMechanism
-
ディレクトリサービスが SASL (Simple Authentication and Security Layer) をサポートしている場合、SASL の認証方法を指定します。
PLAIN、DIGEST-MD5、CRAM-MD5、ANONYMOUS などが指定できます。項目が存在しない場合は 初期値の PLAIN として扱われます。
- ExternalUserSyncFrequency
-
ディレクトリサービスとユーザー情報、グループ情報を同期する頻度を分単位で指定します。デフォルトは 60 分です。
- LDAPGroupFullNameAttribute
-
ディレクトリサービス側のグループエントリーにおいてグループの表示名を定義する属性を指定します。デフォルトでは displayname がセットされています。
- LDAPUserEmailAttribute
-
ディレクトリサービス側のユーザーエントリーにおいてユーザーのメールアドレスを定義する属性を指定します。デフォルトでは (email) がセットされています。
- LDAPUserFullNameAttribute
-
ディレクトリサービス側のユーザーエントリーにおいてユーザーの名前を定義する属性を指定します。デフォルトでは displayname がセットされています。
- LDAPGroupSearchBase
-
ディレクトリサービス側のグループ情報を検索する際の検索ベース (例: ou=Groups,dc=example,dc=com) を指定できます。この設定により、LDAPAuthURL とは異なる検索ベースを設定することができます。
- LDAPUserGroupMemberAttribute
-
ディレクトリサービス側のユーザーエントリーにおいて、グループエントリー内のユーザー情報と一致する属性 (例: uid) を指定します。グループエントリー内のユーザー情報は、LDAPGroupMemberAttribute で定義する属性 (例: memberUid) で定義しますが、この属性はユーザーの識別子の集合となっており、各ユーザー情報が紐付けられていません。LDAPUserGroupMemberAttribute は、各ユーザーの識別子にユーザーエントリーの情報を紐付けるために利用します。
設定例
様々なディレクトリサービスに対応した環境設定方法のサンプルを下記に示します。
Active Directory
LDAPAuthURL ldap://domaincontroller.domain.local/cn=Users,dc=domain,dc=local?sAMAccountName
LDAPAuthBindDN cn=BindUser,cn=Users,dc=domain,dc=local
LDAPAuthPassword SeCrEt.PaSsWoRd
LDAPAuthSASLMechanism PLAIN
LDAPGroupNameAttribute sAMAccountName
LDAPGroupIdAttribute objectGUID
LDAPGroupFullNameAttribute cn
LDAPGroupMemberAttribute member
LDAPGroupSearchBase cn=Users,dc=domain,dc=local
LDAPGroupFilter (objectCategory=group)
LDAPUserIdAttribute objectGUID
LDAPUserEmailAttribute mail
LDAPUserFullNameAttribute cn
LDAPUserGroupMemberAttribute dn
OpenLDAP
LDAPAuthURL ldap://ldap.example.com/ou=People,dc=example,dc=com?uid
LDAPAuthBindDN cn=Manager,dc=example,dc=com
LDAPAuthPassword SeCrEt.PaSsWoRd
LDAPAuthSASLMechanism PLAIN
LDAPGroupNameAttribute cn
LDAPGroupIdAttribute entryUUID
LDAPGroupFullNameAttribute displayName
LDAPGroupMemberAttribute memberUid
LDAPGroupSearchBase ou=Groups,dc=example,dc=com
LDAPGroupFilter (objectClass=posixGroup)
LDAPUserIdAttribute entryUUID
LDAPUserEmailAttribute email
LDAPUserFullNameAttribute cn
LDAPUserGroupMemberAttribute uid
PowerCMS エンタープライズ版 1.5 からの変更点
PowerCMS エンタープライズ版 1.5 で利用されていたの環境変数は、それぞれ下記のように変更になりました。 設定の際にご注意ください。
- AuthLDAPURL から LDAPAuthURL に変更
- AuthLDAPBindDN から LDAPAuthBindDN に変更
- AuthLDAPPassword から LDAPAuthPassword に変更
- AuthLDAPSASLMechanism から LDAPAuthSASLMechanism に変更
初期設定時の注意点
PowerCMS 独自のユーザー管理から、ディレクトリサービスと連携したユーザー管理に移行する場合、移行前に PowerCMS 内のユーザー情報とディレクトリサービス側のユーザー情報の同期をとることを推奨します。理由は、ディレクトリサービスとの連携モードに移行すると、PowerCMS のみに存在するユーザー情報は無効化され、ログインできない状況になるためです。
PowerCMS と、ディレクトリサービスのユーザー情報を同期させる一番簡単な方法は、ユーザー情報の一括修正機能を使う方法です。ユーザー情報の同期がとれた状態で、ユーザー認証の設定を追加する事で、全ユーザーのユーザー認証をディレクトリサービスに切り替えることができます。 更に、ユーザー認証の連携が正常に動作し、かつユーザー情報の同期がとれた状態から、ユーザー管理の連携を追加することができます。ユーザー情報の一括修正については、マニュアル「ユーザー管理(一括編集モード)」をご覧ください。
- 次は
- 一覧へ