web-dev-qa-db-ja.com

MacOS Server(10.5)でのApache LDAP認証(mod_auth_ldap)

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

(私はかなり確かにノーですが、おそらく誰かがそれをコンパイルしました。)

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

(男、それはいいでしょう。)

3-これにAppleバージョンのApacheを使用できない場合、MacOS Server10.5でApacheLDAP認証を機能させるための最良の方法は何ですか?

(できればMacOS Servers管理ソフトウェアで動作するもの)

3
Simurr

Apsxを使用してAppleのhttpdに対して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

サーバー管理でAppleのhttpdを無効にし、独自のlaunchdplistを作成します。

Sudo cp -p /System/Library/LaunchDaemons/org.Apache.httpd.plist /System/Library/LaunchDaemons/your_domain_name.httpd.plist

Httpdを指すようにplistを編集し(/ 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
Thomas Kishel

それは苦痛でしたが、私はついにMac OS X 10.5.8(PowerBook G4)でLDAPをサポートするApache2.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をコンパイルしてインストールしました(Apacheのインストールディレクトリは/opt/Apache-2.2.15です、私は/optのファンです、Subversionをインストールした場所を推測してください):
 cd〜/Downloads/httpd-2.2.15/srclib/apr 
 
 ./ configure 
-prefix =/opt /Apache-2.2.15- -enable-threads --enable-other-child 
 
 make 
 
 Sudo make install 
  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 
 
 make 
 
 Sudo make install 
 
  1. 次に、Apacheを次のようにコンパイルしました。
 cd〜/Downloads/httpd-2.2.15 
 
 export 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 ** 
 
 make 
 
 Sudo make install 

今ではそれは魅力のように機能します。

うまくいけば、これもあなたのために働くでしょう。

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 XApache構成を手動で編集してモジュールをロードします。理論的にはそれでうまくいくはずです。

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

週末にこれについて少し掘り下げます-Apache2.2.xでauthnz_ldapを有効にするほど簡単ではありません:OS Xではビルドされません!

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

LDAP認証を有効にするためのハックの少ない方法があるかどうか興味があります。

1
voretaq7

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

システムにOpenLDAPソースが必要になる可能性があります。これは Appleから も入手できます。次に、ソースを指す別の構成フラグを追加できます:--enable-ldap=<source dir>

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

1
Kamil Kisiel