Movable Type Enterprise 1.5 マニュアル: ディレクトリ・サービスとの連携

目次

« 前へ | ホーム | 次へ »

ディレクトリ・サービスとの連携

Movable Type Enterpriseでは、LDAP v3に対応しているディレクトリ・サービスと連携してユーザー認証および、ユーザー管理を行う事ができます。

ユーザー認証の連携

Movable Type Enterpriseにログインする際のユーザー認証を、外部のディレクトリ・サービスを用いて実現する事ができます。 ユーザー認証の連携を行う場合、ユーザーアカウント情報はディレクトリ・サービスとMovable Type Enterpriseの双方に存在します。ただし、パスワード情報はディレクトリ・サービス側に保存されます。 ユーザー認証の際には、ディレクトリ・サービス内のパスワード情報が用いられます。

ユーザー管理の連携

Movable Type Enterprise 1.5より、ユーザー認証に加えて、ユーザー管理自体を、ディレクトリ・サービスに 連携させる事ができるようになりました。 ユーザー情報、およびユーザーが所属するグループ情報を外部のディレクトリ・サービス上で管理することが可能です。 システム管理者はユーザー情報・グループ情報をディレクトリ・サービス側で一元管理することができます(MT Enterprise側では、ロール、関連付けといった、MT Enterprise固有の情報のみを管理することになります)。 外部ディレクトリ・サービスとの連携を設定すると、デフォルトでユーザー管理の連携が行われるようになりますが、ユーザー認証の連携のみを用いる事も可能です。

Net::LDAPのインストール

ディレクトリ・サービスとの連携を行う場合は、ウェブ・サーバーに「Net::LDAP」がインストールされている必要があります。Net::LDAPがインストール済みかどうかは、ウェブ・サーバーにtelnetもしくはsshでログインしたあと、以下のコマンドを実行することで確認できます。

$ perl -MNet::LDAP -e 1

何も表示されなければNet::LDAP はインストール済みです。

Can't locate Net/LDAP.pm in @INC(@INC contains: ?).
BEGIN failed--compilation aborted. 

このように表示された場合はNet::LDAPはインストールされていません。以下の手順でインストールしてください。

  1. CPAN shellを起動する。
    $ perl -MCPAN -e shell
    「CPAN shell」を初めて起動する場合は環境設定が始まるので、環境にあわせて適切に設定します。基本的にデフォルトのままで問題ありません。
  2. installコマンドを実行する。
    cpan> install Net::LDAP
    CPAN shellが自動的に不足しているモジュールを補いつつNet::LDAPのインストールを完了してくれます。
  3. CPAN shellを終了させる。
    cpan> quit

ディレクトリ・サービスとの連携の設定方法

ディレクトリ・サービスとの連携を使用するために、「mt-config.cgi」に新しい項目を追加します。使用中のディレクトリ・サービスの環境にあわせて設定してください。

ユーザー認証の連携のための設定

ユーザー認証を連携するためには、以下の設定が必須となります。

AuthenticationModule

AuthenticationModuleに「MT」を指定した場合、通常のMovable Type Enterpriseのユーザー認証を行います。AuthenticationModuleに「LDAP」を指定した場合、LDAPサーバーへアクセスして外部認証を行います。項目が存在しない場合は「MT」として扱われます。

LDAPAuthURL

ディレクトリ・サービス側で、ユーザー認証に用いる情報の検索ベースを指定します。下記が設定例となります。

ldap://ldap.example.com/dc=example,dc=com

ユーザー管理の連携のための設定

ユーザー認証に加えて、ユーザー管理を連携するためには、以下の環境変数の設定が必要です。

LDAPUserIdAttribute

ディレクトリ・サービス側のユーザーエントリーにおいて、ユーザーの識別子を定義する属性(例:entryUUID)を指定します。この環境変数はシステム上は必須設定項目ではありません。しかし、連携を確実に実行させるために、設定する事を強く推奨します。

以下の項目は、グループ情報を連携させる場合に必要です。

LDAPGroupNameAttribute

ディレクトリ・サービス側のグループエントリーにおいて、グループの名称を定義する属性(例:cn)を指定します。この環境変数はMT Enterpriseでグループ情報を識別するために用いられます。

LDAPGroupMemberAttribute

ディレクトリ・サービス側のグループエントリーにおいてグループに関連するユーザーを定義する属性(例:memberUid)を指定します。この環境変数はMT Enterpriseで各グループに所属するユーザーの情報を同期するために用いられます。

LDAPGroupIdAttribute

ディレクトリ・サービス側のグループエントリーにおいてグループの識別子を定義する属性(例:entryUUID)を指定します。この環境変数はMT Enterpriseでグループ情報を識別するために用いられます。この環境変数はシステム上は必須設定項目ではありません。しかし、連携を確実に実行させるために、設定する事を強く推奨します。

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 ou=Groups,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

MT Enterprise1.0からの変更点

MT Enterprise 1.0で利用されていたの環境変数は、それぞれ下記のように変更になりました。 設定の際にご注意ください。

  1. AuthLDAPURL: LDAPAuthURLに変更
  2. AuthLDAPBindDN: LDAPAuthBindDNに変更
  3. AuthLDAPPassword: LDAPAuthPasswordに変更
  4. AuthLDAPSASLMechanism: LDAPAuthSASLMechanismに変更

初期設定時の注意点

Movable Type Enterprise独自のユーザー管理から、ディレクトリ・サービスと連携したユーザー管理に移行する場合、移行前にMovable Type Enterprise内ユーザー情報とディレクトリ・サービス側のユーザー情報の同期をとることを推奨します。理由は、ディレクトリ・サービスとの連携モードに移行すると、Movable Type Enterpriseのみに存在するユーザー情報は無効化され、ログインできない状況になるためです。

Movable Type Enterpriseと、ディレクトリ・サービスのユーザー情報を同期させる一番簡単な方法は、ユーザー情報の一括修正機能を使う方法です。 ユーザー情報の同期がとれた状態で、ユーザー認証の設定を追加する事で、全ユーザーのユーザー認証をディレクトリ・サービスに切り替えることができます。 更に、ユーザー認証の連携が正常に動作し、かつユーザー情報の同期がとれた状態から、ユーザー管理の連携を追加することができます。 ユーザー情報の一括修正については、マニュアル「ユーザー管理(一括編集モード)」をご覧ください。


Copyright © 2001-2006 Six Apart, Ltd. All Rights Reserved.
« 前へ | ホーム | 次へ »