AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 106495
In Process
Simurr
Simurr
Asked: 2010-01-27 10:06:13 +0800 CST2010-01-27 10:06:13 +0800 CST 2010-01-27 10:06:13 +0800 CST

MacOS 服务器 (10.5) 上的 Apache LDAP 身份验证 (mod_auth_ldap)

  • 772

A - MacOS Server 10.5 中内置的 Apache 版本是否有 LDAP 身份验证模块 (mod_auth_ldap)?

(我很确定没有,但也许有人编译了一个。)

B - 如果没有,它可以编译成 MacOS 的 Apache 版本吗?

(伙计,那会很好。)

3 - 如果我不能为此使用 Apple 版本的 Apache,那么让 Apache LDAP 身份验证在 MacOS Server 10.5 上工作的最佳方法是什么?

(最好是与 MacOS Servers 管理软件配合使用的软件)

mac-osx-server apache-2.2 ldap mod-auth-ldap
  • 4 4 个回答
  • 6121 Views

4 个回答

  • Voted
  1. Thomas Kishel
    2010-04-15T13:05:42+08:002010-04-15T13:05:42+08:00

    祝你好运,使用 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
    

    在 Server Admin 中禁用 Apple 的 httpd 并创建您自己的启动 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)并更改标签。

    根据此补丁更新 /usr/local/apache2/bin/apachectl 以使用 launchd:

    --- /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 编译开源软件的提示的好来源。

    • 3
  2. Jaume Llarden Prieto
    2010-05-05T11:47:39+08:002010-05-05T11:47:39+08:00

    这很痛苦,但我终于成功地在 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(如您所见,Apache 的安装目录是/opt/apache-2.2.15,我知道,我很喜欢/opt,猜猜我在哪里安装了 Subversion):
        cd ~/Downloads/httpd-2.2.15/srclib/apr
    
        。/配置
        --prefix=/opt/apache-2.2.15 --enable-threads --enable-other-child
    
        制作
    
        须藤使安装
    
    1. 然后我编译并安装了 apr-util 指定 ../apr 作为 apr 路径:
    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
    
        制作
    
        须藤使安装
    
    
    1. 然后我编译Apache如下:
    cd ~/Downloads/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**                   
    
    制作
    
    须藤使安装
    

    现在它就像一个魅力。

    希望这也对你有用。

    • 2
  3. voretaq7
    2010-01-29T13:07:21+08:002010-01-29T13:07:21+08:00

    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,据我所知,没有其他 Apache 版本与 OS X 服务器管理器集成,尽管(再次理论上)任何 2.2.x 版本都应该工作,只要它使用服务器管理器写出的配置文件)。

    如果有一种不那么骇人听闻的方式来启用 LDAP 身份验证,我会很感兴趣。

    • 1
  4. Kamil Kisiel
    2010-02-02T09:40:08+08:002010-02-02T09:40:08+08:00

    您可以从他们的站点下载 Apple 的 Apache 源代码。如果您使用他们的 Makefile 构建它,您最终应该得到一个与 Mac OS X 安装的几乎相同的 Apache 版本。从那里我会尝试更改构建过程中的一些选项以启用该mod_authnz_ldap模块。一个好的开始是添加--enable-authnz-ldap到Configure_FlagsMakefile 的一部分并看看会发生什么。

    您可能需要系统的 OpenLDAP 源,您也可以从 Apple获得。然后您可以添加另一个配置标志以指向源:--enable-ldap=<source dir>.

    这应该可以帮助您入门,但您可能需要在此过程中解决一些问题。请记住,如果您需要任何系统组件的源/标头,只需从 Apple 站点下载它们,以便它们与您机器上的版本匹配。

    • 1

相关问题

  • 使用 Mac OS X Server 电子邮件和日历

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve