原文地址:http://www.chinaunix.net/jh/49/627646.html

一、前言

很多朋友希望利用 Apache 通过 LDAP 进行用户认证及权限管理。 
    通过多次试验,总结出以下方法,与大家共享。 
     
    配置思路:对用户通过“组(groups)”进行管理,对于需要权限控制的目录, 
    则通过“组”进行控制。

参考: 
        http://www.moocky.net/Manual/apache/mod/mod_auth_ldap.html 
        http://bbs.chinaunix.net/forum/viewtopic.php?t=618651

二、用户需求

1. 用户结构: 
    YourComp 
        |- groups (departments) 
        |    |- grp1 (dep1) 
        |    |    |- user1 
        |    |    \- user2 
        |    |- grp2 (dep2) 
        |    |    |- user3 
        |    |    \- user4 
        |    \- grp3 (dep3) 
        |        |- user2 
        |        \- user3 
        \- members (employees) 
            |- user1 
            |- user2 
            |- user3 
            \- user4

2. 目录权限: 
    AppsDir 
        |- Dir1    允许 grp1 访问 
        |- Dir2    允许 grp2 访问 
        \- Dir3    允许 grp1, grp3 访问

三、配置步骤

1. 建立 LDAP 基础记录,BaseDn.ldif 文件: 
     
    dn: dc=YourComp 
    dc: YourComp 
    objectClass: domain 
     
    dn: ou=members,dc=YourComp 
    ou: members 
    objectClass: organizationalUnit 
     
    dn: ou=groups,dc=YourComp 
    ou: groups 
    objectClass: organizationalUnit

2. 建立 LDAP 用户记录,UserDn.ldif 文件: 
     
    dn:cn=user1,ou=members,dc=YourComp 
    cn: user1 
    sn: USER1 
    uid: user1 
    userPassword: user1 
    objectClass: inetOrgPerson 
     
    dn:cn=user2,ou=members,dc=YourComp 
    cn: user2 
    sn: USER2 
    uid: user2 
    userPassword: user2 
    objectClass: inetOrgPerson 
     
    dn:cn=user3,ou=members,dc=YourComp 
    cn: user3 
    sn: USER3 
    uid: user3 
    userPassword: user3 
    objectClass: inetOrgPerson 
     
    dn:cn=user4,ou=members,dc=YourComp 
    cn: user4 
    sn: USER4 
    uid: user4 
    userPassword: user4 
    objectClass: inetOrgPerson

3. 建立 LDAP 用户组记录,GroupDn.ldif 文件: 
     
    dn: cn=grp1,ou=groups,dc=YourComp 
    cn: grp1 
    objectClass: groupOfUniqueNames 
    objectClass: top 
    uniqueMember: cn=user1,ou=members,dc=YourComp 
    uniqueMember: cn=user2,ou=members,dc=YourComp 
     
    dn: cn=grp2,ou=groups,dc=YourComp 
    cn: grp2 
    objectClass: groupOfUniqueNames 
    objectClass: top 
    uniqueMember: cn=user3,ou=members,dc=YourComp 
    uniqueMember: cn=user4,ou=members,dc=YourComp 
     
    dn: cn=grp3,ou=groups,dc=YourComp 
    cn: grp3 
    objectClass: groupOfUniqueNames 
    objectClass: top 
    uniqueMember: cn=user3,ou=members,dc=YourComp 
    uniqueMember: cn=user2,ou=members,dc=YourComp

4. 运行 ldapadd 添加记录

添加根记录: 
    ldapadd -x -D "cn=root,dc=YourComp" -w secret -f BaseDn.ldif

添加用户记录: 
    ldapadd -x -D "cn=root,dc=YourComp" -w secret -f UserDn.ldif

添加用户组记录: 
    ldapadd -x -D "cn=root,dc=YourComp" -w secret -f GroupDn.ldif

5. 建立 Apache 配置文件,application_auth.conf: 
     
    <Location /AppsDir>; 
        AuthType Basic 
        AuthName "Please login" 
              
        AuthLDAPEnabled on 
        AuthLDAPAuthoritative on 
        AuthLDAPURL "ldap://localhost/dc=YourComp?uid?sub?(objectClass=*)" 
    </Location>; 
     
    <Location /AppsDir/dir1>; 
        require group cn=grp1,dc=YourComp 
    </Location>; 
      
    <Location /AppsDir/dir2>; 
        require group cn=grp2,dc=YourComp 
    </Location>; 
     
    <Location /AppsDir/dir3>; 
        require group cn=grp1,dc=YourComp cn=grp3,dc=YourComp 
    </Location>;

6. 在 httpd.conf 文件中,加入以下行: 
  
    include conf/application_auth.conf

APACHE + LDAP 的权限认证配置方法的更多相关文章

  1. Nginx用户认证配置方法详解(域名/目录)

    Nginx超级强大它可以单独为一个域名设置用户认证,方法也很简单我们只要生成用户认证的用户名和密码,然后再Nginx添加auth认证配置即可 Nginx可以为某一个域名单独加用户认证,具体做法如下: ...

  2. php程序Apache,IIS 7,nginx 伪静态配置方法总汇

    一,Apache 环境伪静态配置方法: 在根目录下放置一个.htaccess 文件,内容如下: <IfModule mod_rewrite.c> Options +FollowSymlin ...

  3. SVN+Apache域用户认证配置方法_Windows(转,重新排版,部分内容更新优化)

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  4. 给已经编译运行的Apache增加mod_proxy模块的配置方法

    在Linux系统下,需要给已经编译运行的Apache增加mod_proxy模块,可以按照如下方法配置. 具体配置步骤如下: 1. 首先定位到Apache源码的 proxy目录 # cd /root/s ...

  5. Apache服务器SSL双向认证配置

    以Win32版Apache与OpenSSL为例,介绍从创建数字证书到Apache配置的整个过程,希望对读者有所帮助. Apache是目前最流行的WEB服务器之一,借助OpenSSL库,我们可以在Apa ...

  6. PHP环境(apache,PHP,Mysql)详细配置方法

    1.安装Apache ,直接运行安装即可,我们将其安装到D:\PHP\Apache/目录下 2.将PHP压缩包解压内容放到指定目录(例如:D:\PHP\Php5,将目录中的PHP.iniDevelop ...

  7. csharp:引入app.manifest,程序在win7下以管理员权限运行配置方法

    https://msdn.microsoft.com/en-us/library/windows/desktop/hh848036(v=vs.85).aspx https://msdn.microso ...

  8. apache、nginx、tomcat配置方法

    https://www.cnblogs.com/chenmh/p/5121830.html

  9. Linux Apache虚拟主机配置方法

    apache 虚拟主机配置 注意: 虚拟主机可以开很多个 虚拟主机配置之后,原来的默认/etc/httpd/httpd.conf中的默认网站就不会生效了 练习: 主机server0 ip:172.25 ...

随机推荐

  1. jQuery如何获取动态添加的元素

    1. 使用 on()方法        本质上使用了事件委派,将事件委派在父元素身上     自 jQuery 版本 1.7 起,on() 方法是 bind().live() 和 delegate() ...

  2. Jenkins使用jenkins-cli.jar进行远程调用时出现“ERROR: No such job 'test'”或者权限不够等问题解决(Windows)

    网上最提倡的解决办法是用SSH的key进行登录,但是我发觉Linux上非常容易实现,但是Windows压根不知道在哪里设置. 原文:https://issues.jenkins-ci.org/brow ...

  3. It's a Buck; It's a Boost, No! It's a Switcher!

    It's a Buck; It's a Boost, No! It's a Switcher! Sanjaya Maniktala, National Semiconductor Corp., San ...

  4. 提交svn的时候,提示丢失了预定增加的xxxx

    百度之,发现都是linux或者命令行下的解决方法, 经测试,右键svn目录 选择tortoisesvn 选择svn还原, 即可解决问题

  5. Jacob的使用出错总结

    转自:http://blog.163.com/wm_at163/blog/static/13217349020114166447941/ Jacob的使用方法: 1.在工程中导入 jacob.jar ...

  6. Spring3之InternalResourceViewResolver

    打开Spring的源代码,我们可以在org.springframework.web.servlet.view包下看到很多的 View和ViewResolver类;View类为我们提供一些缺省的待扩展的 ...

  7. RTF文件合并 备忘

    多个独立的rtf文件合并时,如果文件纸张方向存在横向 纵向不一致时,文件之间需要插入分节符 \pard \ltrpar\qj \li0\ri0\nowidctlpar\wrapdefault\aspa ...

  8. HackRF采集调频广播基带数据并使用Ocatve解调播放

    使用hackrf_transfer工具在Linux系统上,采集当地的一个调频广播,使用的采样频率为8MHz.得到IQ交错存储的8位有符号基带数据,在Octave中,先进行50倍抽取,变换到160K采样 ...

  9. java如何判断编码是否是utf8编码

    String的getBytes()方法是得到一个系统默认的编码格式的字节数组getBytes("utf-8")  得到一个UTF-8格式的字节数组 把String转换成bytes, ...

  10. [Todo]提升电商网站性能方面的一些资料材料

    又到国庆,喷一喷12306.cn的技术架构 http://chengxu.org/p/369.html 其中用到了不少比较细节的优化技巧. 提到库存管理是电商非常难的地方.也讲了跟秒杀相关的一些内容.