2月 192013
 

参考リンク以上のことは特に調べていないけど、覚え書き。

モジュール有効化

LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so

認証設定

    AuthType Basic
    AuthName "auth example"
    AuthBasicProvider ldap
    AuthLDAPUrl "ldap://domaincontroller.domainname.local:3268/DC=domainname,DC=local?sAMAccountName?sub?(objectClass=*)"
    AuthzLDAPAuthoritative Off
    AuthLDAPBindDn "domainuser"
    AuthLDAPBindPassword "password"
    Require valid-user

参考

basedn : 検索の起点となる識別名(DN)を指定します。
attribute : 検索対象の属性です。sAMAccountNameはWindowsのログイン名になります。
scope : 検索する深さを指定します。one(1階層のみ検索)またはsub(下位の階層も検索)です。
filter : 検索のLDAPフィルターです。(objectClass=*)となっているのでツリー上の全てのオブジェクトを検索します。

portをActiveDirectoryのグローバルカタログ(ポート3268)にすれば、basednでOUを指定しなくてもディレクトリ全体が検索範囲になることが分かりました。(グローバルカタログはフォレスト内の全ドメインの全オブジェクトから、ひんぱんに利用する属性のみを抽出したものです。)

Active Directoryでは、標準的な構成の場合認証前に権限のあるユーザで接続をしなければいけません。 そのユーザ名とパスワードをAuthLDAPBindDN、AuthLDAPBindPasswordで指定します。

require valid-user を指定するには、authz_user_moduleのロードとAuthzLDAPAuthoritative Offが必要。
require ldap-userとかならこれらは必要ない。

7月 252012
 

Overrideできないっぽい。

で、ファイルマネージャからは設定可能。

ファイルマネージャ->表示アドレスへの操作->アクセス設定->indexファイル->フォルダが存在しない場合の動作

を「アクセスを拒否する」にし、indexファイルの名前を適当に指定すればOK。
当該ディレクトリの.htaccesに設定が追加される。

7月 132012
 
  • AuthzSVNAccessFileのグループはApacheのグループではなく[groups]を使う。
  • SVNParentPathディレクティブは、リポジトリ直下ではなく、複数リポジトリの親ディレクトリを指定する場合に使う。
  • SVNListParentPathをONにしないと、SVNParentPathで指定したディレクトリは403になる。
  • mod_auth_basic.soの認証とmod_authz_svn.soの認証は分けて考えたほうがわかりやすいかも。
    • mod_auth_basicで該当ロケーション以下のディレクトリをまとめてログイン認証。
    • mod_authz_svnで各リポジトリの各ディレクトリ単位でアクセス許可を設定。
    • つまり、BASIC認証通過後、その認証情報でSVNのアクセス権をチェックするイメージ。
      • アクセス権がなかったら403になる。
      • Eclipseではフォルダはリモートに存在しませんと出る。
  • AuthUserFile、AuthzSVNAccessFileの変更はApache再起動不要。
7月 122012
 

環境:Apache2.2.6@WindowsXP SP2

  1. substコマンドで仮想ドライブを作る
  2. httpd.confでDirectoryディレクティブで仮想ドライブ内のパスを指定
  3. エラーで起動できない

SVN+WebDAVの場合も、LocationディレクティブでSVNPathあるいはSVNParentPathに仮想ドライブを指定すると、Apacheの起動はできるがリポジトリの参照ができない。

7月 122012
 

rotatelogsにパイプすればローテーションできる。

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    #24時間でローテート
    CustomLog "|bin/rotatelogs logs/access_log 86400" common
</IfModule>

ただし、logrotateのような世代管理は出来ない。