`

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

分享到:
评论

相关推荐

    CollabNetSubversionEdge-5.2.3_linux-x86_64.tar.gz

    首先说CSVN,其实可以简单理解为SVN+Apache的集成版本,当然CSVN还有其他的一些特性(角色的用户管理,灵活的角色和权限配置以及LDAP认证,基于角色的多仓库管理,自动备份、恢复,以及模板和Rest APIs管理),可以...

    spark-pac4j:Sparkjava的安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    ▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-安全标头-IP地址,HTTP方法定义是否必须应用SecurityFilter并将其用于其他Web处理根据客户端和授权者的配置, SecurityFilter通过检查用户...

    CollabNetSubversionEdge-5.1.4_linux-x86_64.tar.gz

    CSVN,其实可以简单理解为SVN+Apache的集成版本,当然CSVN还有其他的一些特性(角色的用户管理,灵活的角色和权限配置以及LDAP认证,基于角色的多仓库管理,自动备份、恢复,以及模板和Rest APIs管理)

    MaxKey单点登录认证系统-其他

    支持OAuth 2.0/OpenID Connect、SAML 2.0、JWT、CAS等标准化的开放协议,提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限管理和资源管理等。 MaxKey主要功能: 1、所有应用...

    undertow-pac4j:Undertow的安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    ▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-安全标头-IP地址,HTTP方法 定义是否必须应用SecurityFilter并将其用于其他Web处理 根据客户端和授权者的配置, SecurityHandler通过检查...

    buji-pac4j:用于Shiro的pac4j安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    间接客户端用于Web应用程序身份验证,而直接客户端用于Web服务身份验证: ▸OAuth-SAML-CAS-OpenID Connect-HTTP-Google App Engine-Kerberos-LDAP-SQL-JWT-MongoDB-CouchDB-IP地址-REST API 者旨在检查已认证的...

    spring-webmvc-pac4j:Spring Web MVC的安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT ..

    ▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-安全标头-IP地址,HTTP方法 定义是否必须应用SecurityInterceptor并将其用于其他Web处理 根据客户端和授权者的配置, S

    spring security 参考手册中文版

    5.6.3 LDAP认证 39 5.6.4 AuthenticationProvider 41 5.6.5 UserDetailsService 41 5.6.6 LDAP认证 41 5.7多个HttpSecurity 41 5.8方法安全性 43 5.8.1 EnableGlobalMethodSecurity 43 5.8.2 ...

    spring-security-pac4j:用于Spring安全性的pac4j安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    spring-security-pac4j项目是一个用于Spring Security Web应用程序和Web服务(带有或不带有Spring Boot)的简单而强大的安全性库。... ▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-

    服务器安全技术详解.pptx

    IPMI2.0(加密传输) SNMP V1/V2C(明文传输、弱身份认证) SNMP V3(加密传输、强身份认证) HTTP(明文传输、无服务端身份认证) LDAP(明文传输、无服务端身份认证) HTTPS(加密传输、服务端证书验证) LDAPS...

    畅通无阻-高效架设RedHatLinux服务器

    常用网络服务(DNS、DHCP、网关、路由)的启动与配置,Squid局域网共享上网服务器、Samba资源共享服务器、NFS网络文件服务器、LDAP目录服务器、Wu-FTP文件服务器、Sendmail电子邮件服务器、Apache WWW服务器、MySQL...

    jax-rs-pac4j:用于JAX-RS和Jersey的安全性库

    ▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-安全标头-IP地址,HTTP方法 定义是否必须应用SecurityFilter并将其用于其他Web处理 筛选器可以保护资源,并将其中一些映射到登录过程。 ...

    RESTful-API后台系统架构设计(Java).doc

    安全性:具有基于RBAC的角色和权限控制;提供SSL链接;可以和LDAP集成;可以通过 PCI/DSS安全认证标准。 可以看到系统对可用性和性能要求一般,但对安全性要求较高。整体设计架构: 之所以采用关系数据库和NoSQL...

    php网络开发完全手册

    1.4.5 Apache的配置文件httpd.conf与 1.4.5 .htaccess的简介 13 1.4.6 PHP的配置文件php.ini的简介 13 1.4.7 PHP常用参数的配置 14 1.5 几种综合网络服务器系统的安装 14 1.5.1 XAMPP 14 1.5.2 WAMP 16 1.5.3 ...

    java开源包1

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包11

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包2

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包3

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包6

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包5

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

Global site tag (gtag.js) - Google Analytics