MacOS サーバー (10.5) 上の Apache LDAP 認証 (mod_auth_ldap)

MacOS サーバー (10.5) 上の Apache LDAP 認証 (mod_auth_ldap)

A - MacOS Server 10.5 に組み込まれている Apache バージョン用の LDAP 認証モジュール (mod_auth_ldap) はありますか?

(ないと思いますが、誰かがコンパイルしたのかもしれません。)

B - そうでない場合、MacOS バージョンの Apache にコンパイルできますか?

(ああ、それはいいですね。)

3 - Apple バージョンの Apache を使用できない場合、MacOS Server 10.5 で Apache LDAP 認証を動作させる最善の方法は何ですか?

(MacOS サーバー管理ソフトウェアと連携できるものが望ましい)

答え1

Apple の httpd に対して apsx を使用して mod_authnz_ldap を構築すると良いでしょう。

tar -xzf httpd-2.2.15.tar.gz 
cd httpd-2.2.15
cd modules/aaa
/usr/sbin/apxs -cia mod_authnz_ldap.c

mod_authnz_ldap.c:41:2: error: #error mod_authnz_ldap requires APR-util to have LDAP support built in.
...

しかし、それほど手間をかけずに、ldap を使用して独自の httpd を構築できます。

tar -xzf httpd-2.2.15.tar.gz 
cd httpd-2.2.15
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-ldap --enable-authnz-ldap --enable-ssl --with-included-apr --with-ldap 
make; make test; make install

Server Admin で Apple の httpd を無効にし、独自の launchd plist を作成します。

sudo cp -p /System/Library/LaunchDaemons/org.apache.httpd.plist /System/Library/LaunchDaemons/your_domain_name.httpd.plist

plist を編集して httpd を指すようにし (/usr/sbin/httpd を /usr/local/apache2/bin/httpd に置き換えます)、ラベルを変更します。

このパッチに従って launchd を使用するように /usr/local/apache2/bin/apachectl を更新します。

--- /usr/local/apache2/bin/apachectl    2009-04-01 09:56:16.000000000 -0700
+++ apachectl               2009-04-02 20:30:33.000000000 -0700
@@ -65,6 +65,9 @@
 # --------------------                              --------------------
 # ||||||||||||||||||||   END CONFIGURATION SECTION  ||||||||||||||||||||

+LAUNCHCTL="/bin/launchctl"
+LAUNCHD_JOB="/Library/LaunchDaemons/your_domain_name.httpd.plist"
+
 # Set the maximum number of file descriptors allowed per child process.
 if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
     $ULIMIT_MAX_FILES
@@ -76,8 +79,17 @@
 fi

 case $ARGV in
-start|stop|restart|graceful|graceful-stop)
-    $HTTPD -k $ARGV
+start)
+    $LAUNCHCTL load -w $LAUNCHD_JOB
+    ERROR=$?
+    ;;
+stop|graceful-stop)
+    $LAUNCHCTL unload -w $LAUNCHD_JOB
+    ERROR=$?
+    ;;
+restart|graceful)
+    $LAUNCHCTL unload -w $LAUNCHD_JOB 2> /dev/null
+    $LAUNCHCTL load -w $LAUNCHD_JOB
     ERROR=$?
     ;;
 startssl|sslstart|start-SSL)

いいえ、Apple Server Admin を使用して httpd を設定および管理することはできません。ただし、Server Admin は、httpd のすべての設定オプションを網羅する GUI を提供することはできません。/usr/local/apache2/bin を PATH に追加します (または常にフルパスを指定します)。httpd を設定およびテストし、launchctl でロードします。

LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
AuthType Basic
AuthName "Your Network"
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL ldap://ldap.your_domain_name/dc=xxx,dc=yyy
AuthLDAPGroupAttributeIsDN off
AuthLDAPGroupAttribute memberuid
Require valid-user
# Require ldap-group cn=accounting,cn=groups,dc= xxx,dc=yyy
Satisfy any

/usr/local/apache2/bin/apachectl -S

sudo launchctl load -w /Library/LaunchDaemons/your.domain_name.httpd.plist

http://www.opensource.apple.com/そしてhttp://www.macports.org/OSX 用にオープンソース ソフトウェアをコンパイルする方法に関するヒントを得るには、こちらが便利です。

答え2

苦労しましたが、ついに Mac OS X 10.5.8 (PowerBook G4) で LDAP サポート付きの Apache 2.2.15 を正常にコンパイルできました。以下の手順がサーバー バージョンにも使用できることを願っています。このドキュメント: http://www.grahamcox.co.uk/serendipity/index.php?/archives/30-Compiling-LDAP-support-for-Apache-2.2.4.html とても役に立ちました。私がやったことは次のとおりです:

  1. まず、openldap をダウンロードしてコンパイルし、インストールしました/opt/openldap(幸運なことに、以前にインストールした Subversion の BerkeleyDB ライブラリを使用できました)。
  2. 次に、Apache 2.2.15 をダウンロードし、apr をコンパイルしてインストールしました (ご覧のとおり/opt/apache-2.2.15、Apache のインストール ディレクトリは です。私は のファンなので/opt、Subversion をどこにインストールしたか推測してみてください)。
    cd ~/Downloads/httpd-2.2.15/srclib/apr

    。/構成、設定
    --prefix=/opt/apache-2.2.15 --enable-threads --enable-other-child

    作る

    sudo インストール
  1. 次に、apr パスとして ../apr を指定して apr-util をコンパイルしてインストールしました。
cd ~/Downloads/httpd-2.2.15/srclib/apr-util                                                                                           

    ./configure --prefix=/opt/apache-2.2.15 --with-apr=../apr --with-ldap-lib=/opt/openldap/lib --with-ldap-include=/opt/openldap/include --with-ldap=ldap

    作る

    sudo インストール

  1. 次に、Apache を次のようにコンパイルしました。
cd ~/ダウンロード/httpd-2.2.15

エクスポート PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin

./configure --prefix=/opt/apache-2.2.15 --enable-access --enable-actions --enable-alias --enable-asis --enable-auth --enable-auth_dbm --enable-auth_digest --enable-autoindex --enable-cache --enable-cgi --enable-dav --enable-dav_fs --enable-deflate --enable-dir --enable-disk_cache --enable-dumpio --enable-env --enable-expires --enable-fastcgi --enable-file_cache --enable-headers --enable-imap --enable-include --enable-info --enable-log_config --enable-log_forensic --enable-logio --enable-mem_cache --enable-mime --enable-mime_magic --enable-negotiation --enable-perl --enable-rewrite --enable-setenvif --enable-speling --enable-ssl --enable-status --enable-suexec --enable-unique_id --enable-userdir --enable-usertrack --enable-version --enable-vhost_alias --enable-module=all **--enable-authnz-ldap --with-ldap --enable-ldap** --enable-so **--with-apr=/opt/apache-2.2.15** -**-with-apr-util=/opt/apache-2.2.15** --enable-mods-shared=most --enable-auth-basic **--with-ldap-lib=/opt/openldap/lib --with-ldap-include=/opt/openldap/include**                   

作る

sudo インストール

今では完璧に動作します。

うまくいけば、これもあなたに役立つでしょう。

答え3

mod_auth_ldap / mod_authnz_ldap は、OS X に付属する Apache のバージョンには組み込まれていません (mod_ldap が含まれているのに、なぜかはわかりません...)。はぁ

(B)についてはよく分かりません -- あなたできたおそらく、httpd.apache.org から Apache をダウンロードし、コンパイルし (mod_authnz_ldap を共有モジュールとして指定)、mod_authnz_ldap.so モジュールを /usr/libexec/apache2/ にコピーし、OS X Apache 構成を手動で編集してモジュールをロードします。理論的にはこれで動作するはずです。

これを試す場合は、Mac の Apache のバージョンと一致するソース コードを使用することをお勧めします (おそらく 2.2.13 ですが、バージョン番号を取得するにはターミナルで "httpd -v" を確認してください)。

週末に少し調べてみたところ、apache 2.2.x で authnz_ldap を有効にするだけというほど簡単ではないことがわかりました。OS X ではビルドできません。

Re: #3、私の知る限りでは、OS Xサーバマネージャと統合できるApacheのバージョンは他にありません(繰り返しますが、理論的には) 2.2.x バージョンすべきサーバー マネージャーが書き出す構成ファイルを使用している限り動作します。

LDAP 認証を有効にする、よりハック的でない方法があれば興味があります。

答え4

AppleのApacheソースコードは以下からダウンロードできます。彼らのサイト. Makefile を使用してこれをビルドすると、Mac OS X にインストールされているものとほぼ同じバージョンの Apache が完成します。そこから、ビルド プロセスのオプションをいくつか変更してモジュールを有効にしてみます。まずはMakefile の一部をmod_authnz_ldap追加して、何が起こるか確認してみるのが良いでしょう。--enable-authnz-ldapConfigure_Flags

おそらく、あなたのシステムにはOpenLDAPのソースが必要になるでしょう。これも以下から入手できます。アップルより. 次に、ソースを指す別の configure フラグを追加します--enable-ldap=<source dir>

これで作業は開始できるはずですが、途中でいくつかの問題を解決する必要があります。システム コンポーネントのソース/ヘッダーが必要な場合は、お使いのマシンのバージョンと一致するように Apple サイトからダウンロードすることを忘れないでください。

関連情報