ユーザ用ツール

サイト用ツール


ubuntu-server-10-04:ldap_server

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ubuntu-server-10-04:ldap_server [2011/05/22 16:15] – [phpLDAPadmin をインストール] adminubuntu-server-10-04:ldap_server [2011/05/22 22:41] (現在) – [Apache2 で LDAP 認証] admin
行 328: 行 328:
  
  
-===== アクセス権を変更 =====+==== アクセス権を変更 ====
  
 phpLDAPadmin に uid でログイン可能にするには認証前にツリーを read できるようにしておかなければいけないらしい。ということで、特定IPからであれば認証前に read できるようにアクセス権を変更。 phpLDAPadmin に uid でログイン可能にするには認証前にツリーを read できるようにしておかなければいけないらしい。ということで、特定IPからであれば認証前に read できるようにアクセス権を変更。
  
  
 +  * cn=admin,dc=example,dc=com は全てに書き込み許可
 +  * anonymous で認証はできる
 +  * IPアドレスが 127.0.0.1 の端末からは認証前に read 可能 
 +  * 認証後にユーザは ou=people,dc=example,dc=com 以下を閲覧可能
 +  * ログイン後に自身のパスワードを変更可能
  
 +以下の内容でファイルを作成。
 +
 +<file - change_access_control.ldif>
 +dn: olcDatabase={1}hdb,cn=config
 +changetype: modify
 +replace: olcAccess
 +olcAccess: to attrs=userPassword by dn.exact="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
 +olcAccess: to attrs=shadowLastChange by self write
 +olcAccess: to dn.subtree="ou=people,dc=example,dc=com" by dn.regex="uid=([^,]+),ou=people,dc=example,dc=com$" read by peername.ip=127.0.0.1 read
 +olcAccess: to * by dn.exact="cn=admin,dc=example,dc=com" write by * none
 +
 +</file>
 +
 +作成したファイルを設定する。
 +
 +<code>
 +$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f change_access_control.ldif
 +</code>
 +<code>
 +SASL/EXTERNAL authentication started
 +SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
 +SASL SSF: 0
 +modifying entry "olcDatabase={1}hdb,cn=config"
 +</code>
 +
 +で完了。
 +
 +
 +===== Apache2 で LDAP 認証 =====
 +
 +構築した LDAP を使って Apache2 で認証してみる。
 +
 +まず Apache2 で LDAP 関連のモジュールを有効にする。
 +
 +<code>
 +$ sudo a2enmod ldap authnz_ldap
 +</code>
 +
 +<code>
 +Enabling module ldap.
 +Considering dependency ldap for authnz_ldap:
 +Module ldap already enabled
 +Enabling module authnz_ldap.
 +Run '/etc/init.d/apache2 restart' to activate new configuration!
 +</code>
 +
 +<note>逆に無効にするには\\
 +$ sudo a2dismod authnz_ldap ldap \\
 +authnz_ldap が ldap に依存しているため</note>
 +
 +Apache2 の再起動を促されるので、再起動する。
 +
 +<code>
 +$ sudo /etc/init.d/apache2 restart
 +</code>
 +
 +LDAP で認証したいディレクトリの Apache2 設定ファイルへ以下を追加。
 +
 +<code>
 +<Location /foobar>
 +    SSLRequireSSL
 +    SSLOptions +StrictRequire
 +    AuthType        Basic
 +    AuthBasicProvider ldap
 +    AuthName        "RedTiger Server"
 +    AuthLDAPURL     "ldap://127.0.0.1:389/ou=people,dc=redtiger,dc=selfip,dc=com?uid"
 +    AuthzLDAPAuthoritative off
 +
 +    require valid-user
 +#    order deny,allow
 +#    deny from all
 +#    Satisfy Any
 +</Location>
 +</code>
 +
 +  * SSLRequireSSL
 +    * SSLでの接続を強制
 +  * SSLOptions +StrictRequire
 +    * Satisfy Any よりも SSL 接続の優先度を高くし必ず SSL を使わせる
 +  * AuthType        Basic
 +    * 認証タイプ
 +  * AuthBasicProvider ldap
 +    * 認証に LDAP を使用
 +  * AuthName        "RedTiger Server"
 +    * ダイアログに表示されるのでわかりやすい名前をつける
 +  * AuthLDAPURL     "ldap://127.0.0.1:389/ou=people,dc=example,dc=com?uid"
 +    * LDAP 認証に使用する URI を指定
 +  * AuthzLDAPAuthoritative off
 +    * LDAP 以外の認証を使用できなくする
 +  * require valid-user
 +    * 認証済みのユーザのみアクセス可能
 +  * #    order deny,allow
 +    * #    deny from all
 +    * 個別に IP による制限等が必要な場合はここに記述
 +    * 必要ない場合は必ず order 部分からコメントアウト(しないと SSLOptions +StrictRequire が無効になる)
 +  * Satisfy Any
 +    * require か order を満たせばアクセス可能
 +    * 必要ない場合は必ずコメントアウト
 +
 +Apache2 を再起動する。
 +
 +<code>
 +$ sudo /etc/init.d/apache2 restart
 +</code>
 +
 +で完了。
  
 +ブラウザでアクセスして動作を確認する。
  
 ===== DB操作コマンド ===== ===== DB操作コマンド =====
行 410: 行 522:
  
  
-==== アクセス権の変更 ==== 
  
-現状の設定だと、 anonymous で閲覧は可能になっているので、以下のように変更する。 
- 
-  * cn=admin, は全てに書き込み許可 
-  * anonymous で認証はできる 
-  * 認証後は一般ユーザは自分の項目のみ閲覧可能 
-  * ただし自分のパスワードは変更可能 
- 
-以下の内容でファイルを作成。 
- 
-<file - change_access_control.ldif> 
-dn: olcDatabase={1}hdb,cn=config 
-changetype: modify 
-replace: olcAccess 
-olcAccess: to attrs=userPassword by dn.exact="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none 
-olcAccess: to attrs=shadowLastChange by self write 
-olcAccess: to dn.subtree="ou=people,dc=example,dc=com" by dn.regex="uid=([^,]+),ou=people,dc=example,dc=com$" read 
-olcAccess: to * by dn.exact="cn=admin,dc=example,dc=com" write by * none 
- 
-</file> 
- 
-作成したファイルを設定する。 
- 
-<code> 
-$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f change_access_control.ldif 
-</code> 
-<code> 
-SASL/EXTERNAL authentication started 
-SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth 
-SASL SSF: 0 
-modifying entry "olcDatabase={1}hdb,cn=config" 
-</code> 
- 
-で完了。 
 ===== 参考 ===== ===== 参考 =====
  
ubuntu-server-10-04/ldap_server.1306048549.txt.gz · 最終更新: 2011/05/22 16:15 by admin