DokuWiki

It's better when it's simple

ユーザ用ツール

サイト用ツール


サイドバー

この翻訳は元のページよりも更新日が古く、内容が古い可能性があります。 変更点を参照して下さい。
このページの翻訳?:

DokuWiki について知る

開発

法人利用

我々のコミュニティ


FacebookTwitterや他のソーシャル・ネットワークからフォローしてください。

ja:auth:ldap

LDAP 認証バックエンド

このモジュールは、アクセス制御リスト 機能を使用した、LDAP ディレクトリに対する認証バックエンドです。 このバックエンドは、Dokuwiki 本体に同梱されています。

LDAPサーバに登録されたユーザー名とパスワードで wiki にログインし使用することはできますが、 LDAP認証バックエンドを通しての新規ユーザー登録機能はありません。

:!: wiki にバグや問題を報告しないでください! 代わりにバグトラッキングシステムメーリングリストユーザフォーラムを使用してください。

設定

以下はLDAPディレクトリに対して認証を行うための conf/local.protected.php の設定例です。

$conf['useacl']      = 1;
$conf['openregister']= 0;
$conf['authtype']    = 'ldap';
 
#$conf['auth']['ldap']['server']      = 'localhost';
#$conf['auth']['ldap']['port']        = 389;
$conf['auth']['ldap']['server']      = 'ldap://server.tld:389'; #instead of the above two settings
$conf['auth']['ldap']['usertree']    = 'ou=People, dc=server, dc=tld';
$conf['auth']['ldap']['grouptree']   = 'ou=Group, dc=server, dc=tld';
$conf['auth']['ldap']['userfilter']  = '(&(uid=%{user})(objectClass=posixAccount))';
$conf['auth']['ldap']['groupfilter'] = '(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))';
 
# This is optional but may be required for your server:
#$conf['auth']['ldap']['version']    = 3;

# This enables the use of the STARTTLS command
#$conf['auth']['ldap']['starttls']   = 1;

# This is optional and is required to be off when using Active Directory:
#$conf['auth']['ldap']['referrals']  = 0;

# Optional bind user and password if anonymous bind is not allowed
#$conf['auth']['ldap']['binddn']     = 'cn=admin, dc=my, dc=home';
#$conf['auth']['ldap']['bindpw']     = 'secret';

# Mapping can be used to specify where the internal data is coming from. 
#$conf['auth']['ldap']['mapping']['name']  = 'displayname'; # Name of attribute Active Directory stores it's pretty print user name.
#$conf['auth']['ldap']['mapping']['grps']  = array('memberof' => '/CN=(.+?),/i'); # Where groups are defined in Active Directory

# Limit search scope for user and group searches (sub|one|base)
#$conf['auth']['ldap']['userscope']  = 'sub';
#$conf['auth']['ldap']['groupscope'] = 'sub';

# Optional debugging
#$conf['auth']['ldap']['debug']      = 1;

version パラメータは、LDAP プロトコルのバージョン3を使用してサーバーに接続することを PHP に指示できます。デフォルトはバージョン2です。

userfilter は、ユーザー検索に使用する LDAP フィルタを定義します。 groupfilter は、ユーザーが所属しているグループを取得するために使用します。

次の変数は userfilter と groupfilter で使用可能です:

変数 意味
%{user} ユーザーがログインに使用したユーザー名
%{server} $conf['auth']['ldap']['server'] から提供されたサーバ文字列

groupfilter はユーザーオブジェクトから提供される全ての属性にアクセスできます。

変数 意味
%{dn} ユーザーDN。例)uid=user,ou=People,dc=server,dc=dk
%{uid} ユーザーのuid。例)user
%{…}

mapping は “標準的” ではない属性名を採用しているディレクトリのために使います。 mapping は、目的とする変数を置き換える前に正規表現を使ってきれいにすることができます。 For all variables but 'grps' only the first attribute is used to replace the variable if more than one is provided.

変数   mapping 意味
grps array('memberof' => '/CN=(.+?),/i') Replace the content of grps with what is provided in the attribute memberof and apply this regexp /CN=(.+?),/i to every element in it.
name 'displayname' Replace the content of name with first element of 'displayname' attribute.

userscopegroupscope というオプショナルパラメータによって、 検索範囲(深さ)を sub, one, base に限定することができます。 sub がデフォルトです。 より限定された検索範囲に設定することで、効率が向上します。

Authentication is done in these steps:

  1. First see if we need to do an anonymous bind by looking in the usertree for a %{user}:
    • If found: Set usertree as DN.
    • If not: Try to find a DN for the given login doing a search in the usertree with the given userfilter - there have to be exact one result
  2. Try to bind with the found DN and the given password - if this succeeds access is granted
  3. For getting the groups a user is in, the groupfilter is used to search the grouptree.

注釈

  • LDAPアクセスの設定時、LDAPサーバが提供しているエラーメッセージを出力する debug オプションを有効にできます。これは、設定後に再度無効にする必要があります。
  • (Javaで書かれた)LDAPブラウザ フリーウェアは、$conf['auth']['ldap'] の適切な設定を見つけたり、LDAPサーバーの構造を決定したりするのに便利です。
  • LDAPサーバで使用する場合、マッピングとフィールド名は大文字小文字の区別なく小文字とされます。
  • PHPのLDAP拡張モジュールがインストールされていることを確認してください。
  • “Protocol error” メッセージが表示された場合は、次の設定文を有効にしていない可能性があります:$conf['auth']['ldap']['version'] = 3;

実例

様々なユーザーによる、様々な LDAPサーバのための、様々なユーザーによる設定例のリストです。 これらは一例に過ぎません。 自分のサーバの設定に合わせて調整して下さい。

ja/auth/ldap.txt · 最終更新: 2016-09-26 09:17 by 124.39.43.146