MacOS 서버(10.5)의 Apache LDAP 인증(mod_auth_ldap)

MacOS 서버(10.5)의 Apache LDAP 인증(mod_auth_ldap)

답변 - 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에 대해 mod_authnz_ldap을 빌드하기 위해 apsx를 사용하여 행운을 빕니다.

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

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를 제공할 수 없습니다. PATH에 /usr/local/apache2/bin을 추가하십시오(또는 항상 전체 경로를 지정하십시오). 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저는 의 팬입니다 /opt. Subversion을 어디에 설치했는지 추측해 보세요).
    CD ~/다운로드/httpd-2.2.15/srclib/apr

    ./구성
    --prefix=/opt/apache-2.2.15 --enable-threads --enable-other-child

    만들다

    sudo make 설치
  1. 그런 다음 ../apr을 apr 경로로 지정하여 apr-util을 컴파일하고 설치했습니다.
CD ~/다운로드/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 make 설치

  1. 그런 다음 Apache를 다음과 같이 컴파일했습니다.
CD ~/다운로드/httpd-2.2.15

내보내기 경로=/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 make 설치

이제 그것은 매력처럼 작동합니다.

이것이 당신에게도 효과가 있기를 바랍니다.

답변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에서는 빌드되지 않습니다!

답변: #3, 제가 아는 한 OS X 서버 관리자와 통합되는 다른 Apache 버전은 없습니다.이론적으로) 모든 2.2.x 버전~해야 한다서버 관리자가 작성한 구성 파일을 사용하는 한 작동합니다.)

LDAP 인증을 활성화하는 덜 해킹적인 방법이 있다면 관심이 있을 것입니다.

답변4

Apple의 Apache 소스 코드는 다음에서 다운로드할 수 있습니다.그들의 사이트. Makefile을 사용하여 이것을 빌드하면 Mac OS X에 설치된 것과 거의 동일한 Apache 버전이 생성되어야 합니다. 거기서부터 빌드 프로세스의 일부 옵션을 변경하여 모듈을 활성화해 보겠습니다 mod_authnz_ldap. 좋은 시작은 Makefile의 일부 --enable-authnz-ldap에 추가 하고 무슨 일이 일어나는지 보는 것입니다.Configure_Flags

시스템에 OpenLDAP 소스가 필요할 가능성이 있으며, 이 소스도 얻을 수 있습니다.애플에서. 그런 다음 소스를 가리키는 또 다른 구성 플래그를 추가할 수 있습니다 --enable-ldap=<source dir>.

이렇게 하면 시작해야 하지만 그 과정에서 몇 가지 문제를 해결해야 할 수도 있습니다. 시스템 구성 요소에 대한 소스/헤더가 필요한 경우 Apple 사이트에서 다운로드하여 컴퓨터의 버전과 일치하도록 하십시오.

관련 정보