本日、Apache HTTPDでmod_ldapおよびSVNを介して管理者の承認を設定する計画があります。
4.管理者の承認-Apache HTTPD mod_ldap
すでにapache2がインストールされていると考えており、authnz_ldapとmod_ldapを有効にするだけで済みます:
a2enmod authnz_ldap
デバッグ時には、mod_ldapキャッシュを無効にすることをお勧めします。
echo "LDAPCacheEntries 0" >> /etc/apache2/mods-avalible/ldap.load
Apache構成を再起動します:
/etc/init.d/apache2 reload
次に、vhost構成を変更するか、.htaccessファイルを作成します(動作が遅くなります)。
たとえば、次のように:
cat > /var/www/adminka/.htaccess << "EOF"
AuthName "restricted"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL "ldap://ldap.habr.ru/ou=users,dc=habr,dc=ru"
AuthLDAPGroupAttribute uniqueMember
Require ldap-group cn=habr-adminka,ou=group,dc=habr,dc=ru
EOF
ldap-groupを必要とする場合は、連続して複数登録することができます-検証はそれぞれに対して順番に実行されます。
私たちが持っているユーザーはou = usersに保存されているため、cn = habr-adminkaグループが作成され、ユーザー(uniqueMember)が登録されていることを思い出してください。
たとえば、次のように:
dn: cn=habr-adminka,ou=group,dc=habr,dc=ru
cn: habr-adminka
objectClass: groupOfUniqueNames
objectClass: top
description: habr.ru/adminka
uniqueMember: uid=habradmin,ou=users,dc=habr,dc=ru
uniqueMember: uid=habradmin2,ou=users,dc=habr,dc=ru
mod_ldapログは、Apacheのログレベルをdebugに設定することで確認できます。
5. svnの承認
svnserveについての少し叙情的な余談:
ソースのサブバージョンとcyrus-sasl(ldapdbプラグイン)を選択した後に判明したように、ldapはほとんどサポートされていません-グループをチェックできず、フィルターがありません...一般に、すべてが悪いです。
同時に、オプション-a ldap -O /etc/saslauthd.confを使用したシステムsaslauthdは、グループを完全に承認します。
testsaslauthd -u user -p pass
0: OK "Success."
興味のある方は、作業用の構成/etc/saslauthd.conf:
cat > /etc/saslauthd.conf << "EOF"
ldap_servers: ldap://ldap.habr.ru
ldap_bind_dn: cn=auth,dc=habr,dc=ru
ldap_bind_pw: secret
ldap_cache_ttl: 0
ldap_scope: sub
ldap_search_base: ou=users,dc=habr,dc=ru
ldap_auth_method: bind
ldap_basedn: dc=habr,dc=ru
ldap_group_dn: cn=code,ou=svn,dc=habr,dc=ru
ldap_group_attr: uniqueMember
EOF
したがって、Apache httpdを介してsvnにアクセスする必要があります。
apt-get install libapache2-svn
リポジトリをapache configに追加します。 手順4で既に承認を検討しているため、新しいものはありません。
<Location "/habr">
DAV svn
SVNPath /var/svn/habr
AuthName "restricted"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL "ldap://ldap.habr.ru/ou=users,dc=habr,dc=ru"
AuthLDAPGroupAttribute uniqueMember
Require ldap-group cn=habr,ou=svn,dc=habr,dc=ru
Apacheを再起動し、動作を確認します。
今日は以上です。見てくれてありがとう。