apache+ldap权限认证


APACHE + LDAP 
的权限认证配置方法 

一、前言 

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



二、用户需求 

 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

猜你喜欢

转载自davidlee1986.iteye.com/blog/1936051