Apache 資料一覧

LDAPでベーシック認証を使用する(mod_authnz_ldap、util_ldap)

2008/5/17更新

対応バージョン: 2.2.8

LDAPでベーシック認証を使用するにはまず以下のオプションを付けてApacheをconfigure、make、インストールする。

--with-ldap

APR-util組み込み

--enable-authnz-ldap

LDAP認証

--enable-ldap

LDAPコネクションプール、及び問合せ結果のキャッシュ

httpdには以下のモジュールが組み込まれる。

% ./httpd -l|grep ldap
  mod_authnz_ldap.c
  util_ldap.c

関連資料・記事

Apacheの準備ができたらhttpd.confや.htaccessに設定を追加する。

設定パラメータ

まず主な設定パラメータについて説明する。

AuthName

認証時に表示されるダイアログの文字列を指定する。

例)

AuthName "User authentication"
AuthType

認証方法を指定する。ベーシック認証ではBasicを指定する。

AuthType Basic
AuthBasicProvider

ベーシック認証のサービス提供元を指定する。LDAPによる認証の場合はldapを指定する。

AuthBasicProvider ldap
AuthzLDAPAuthoritative {on|off}

LDAP認証で失敗した場合に他の認証サービスに移るかどうかを指定する。

onは移る、offは移らない(LDAP認証のみ)。デフォルトはon。

通常はoffにして他の認証サービスを使用しないが、Requireで指定する許可ユーザの指定が一般的なvalid-user(*)意外の場合はこの設定をonにする必要がある。

(*) 認証サービスの種類に関わらず正当なユーザを許可

AuthLDAPUrl

LDAP認証サーバとベースの識別名(DN:Distinguished Name)、及び検索に用いる属性(*)をURL形式で指定する。

(*) 通常は組織単位People内のuid

例)

AuthLDAPUrl ldap://www.bar.com/ou=People,dc=bar,dc=com?uid
AuthLDAPGroupAttribute

検索時のuidをLDAPグループレコード内のどの属性を一致させるかを指定する。

AuthLDAPGroupAttribute memberUid
Satisfy {Any|All}

Requireによる条件指定が複数あった場合にアクセスを許可するためにすべての条件を満たす必要があるかどうかを指定する。

どれか一つでも条件満たせばよい場合はAny、すべての条件を満たす必要がある場合はAll。デフォルトはAll。

Satisfy Any

使用目的別設定例

次に使用目的による設定の違いをいくつか紹介する。

AuthName、AuthType、AuthBasicProviderはいずれも同じ設定なのでここでは省略する。

LDAPディレクトリ内の(正当な)全ユーザに対してアクセスを許可する
AuthzLDAPAuthoritative off
AuthLDAPUrl ldap://www.bar.com/ou=People,dc=bar,dc=com?uid
Require valid-user
LDAPディレクトリ内のfooとbarユーザにのみアクセスを許可する
AuthzLDAPAuthoritative on
AuthLDAPUrl ldap://www.bar.com/ou=People,dc=bar,dc=com?uid
Require ldap-user foo bar
LDAPディレクトリ内のにdiv1グループに属するユーザにのみアクセスを許可する
AuthzLDAPAuthoritative on
AuthLDAPUrl ldap://www.bar.com/ou=People,dc=bar,dc=com?uid
AuthLDAPGroupAttribute memberUid
Require ldap-group div1
Require ldap-attribute gidNumber=420

関連資料・記事