zoukankan      html  css  js  c++  java
  • APACHE + LDAP 的权限认证配置方法

    原文地址: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

  • 相关阅读:
    Angular使用$compile为从Ajax加载的HTML绑定ng-click事件
    js获取判断苹果手机机型
    工作中遇到的常见问题
    js实现文字超出部分用省略号代替实例代码
    微信企业号开发之weixin://preInjectJSBridge/fail
    构造函数,super()
    微信企业号开发之 企业号人员身份认证与开发
    微信企业号开发之回调模式的接口开发
    微信公众号开发的开发环境要求和准备工作
    react-router 中的history(react中关于后退键的处理用的到)
  • 原文地址:https://www.cnblogs.com/eastson/p/3722012.html
Copyright © 2011-2022 走看看