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
- 浏览: 40897 次
- 性别:
- 来自: 上海
相关推荐
首先说CSVN,其实可以简单理解为SVN+Apache的集成版本,当然CSVN还有其他的一些特性(角色的用户管理,灵活的角色和权限配置以及LDAP认证,基于角色的多仓库管理,自动备份、恢复,以及模板和Rest APIs管理),可以...
▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-安全标头-IP地址,HTTP方法定义是否必须应用SecurityFilter并将其用于其他Web处理根据客户端和授权者的配置, SecurityFilter通过检查用户...
CSVN,其实可以简单理解为SVN+Apache的集成版本,当然CSVN还有其他的一些特性(角色的用户管理,灵活的角色和权限配置以及LDAP认证,基于角色的多仓库管理,自动备份、恢复,以及模板和Rest APIs管理)
支持OAuth 2.0/OpenID Connect、SAML 2.0、JWT、CAS等标准化的开放协议,提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限管理和资源管理等。 MaxKey主要功能: 1、所有应用...
▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-安全标头-IP地址,HTTP方法 定义是否必须应用SecurityFilter并将其用于其他Web处理 根据客户端和授权者的配置, SecurityHandler通过检查...
间接客户端用于Web应用程序身份验证,而直接客户端用于Web服务身份验证: ▸OAuth-SAML-CAS-OpenID Connect-HTTP-Google App Engine-Kerberos-LDAP-SQL-JWT-MongoDB-CouchDB-IP地址-REST API 者旨在检查已认证的...
▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-安全标头-IP地址,HTTP方法 定义是否必须应用SecurityInterceptor并将其用于其他Web处理 根据客户端和授权者的配置, S
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 Security Web应用程序和Web服务(带有或不带有Spring Boot)的简单而强大的安全性库。... ▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-
IPMI2.0(加密传输) SNMP V1/V2C(明文传输、弱身份认证) SNMP V3(加密传输、强身份认证) HTTP(明文传输、无服务端身份认证) LDAP(明文传输、无服务端身份认证) HTTPS(加密传输、服务端证书验证) LDAPS...
常用网络服务(DNS、DHCP、网关、路由)的启动与配置,Squid局域网共享上网服务器、Samba资源共享服务器、NFS网络文件服务器、LDAP目录服务器、Wu-FTP文件服务器、Sendmail电子邮件服务器、Apache WWW服务器、MySQL...
▸角色/权限-匿名/记住我/(完全)已认证-配置文件类型,属性-CORS-CSRF-安全标头-IP地址,HTTP方法 定义是否必须应用SecurityFilter并将其用于其他Web处理 筛选器可以保护资源,并将其中一些映射到登录过程。 ...
安全性:具有基于RBAC的角色和权限控制;提供SSL链接;可以和LDAP集成;可以通过 PCI/DSS安全认证标准。 可以看到系统对可用性和性能要求一般,但对安全性要求较高。整体设计架构: 之所以采用关系数据库和NoSQL...
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 ...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...