缓存 LDAP 授权模块
特性 > 安全 > 缓存 LDAP 授权模块
自 5.6 版本起可用
缓存 LDAP 授权模块是默认授权模块的实现,它从 LDAP 初始化和更新数据。它支持所有标准功能,例如定义通配符策略条目和临时目标的条目。
初始化
我们提供两个 ldif 文件以方便入门。第一个用于 Apache Directory Server (ldif),我们在嵌入模式下用于测试。有关如何使用此 ldif 文件初始化嵌入式 ApacheDS 的示例,请查看 CachedLDAPSecurityTest
提供的 ldif 和示例假设 dc=activemq,dc=apache,dc=org
后缀用于条目,因此类似于以下代码段中显示的配置
suffix "dc=activemq,dc=apache,dc=org"
rootdn "cn=admin,dc=activemq,dc=apache,dc=org"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw {SSHA}lfAYn54xCFghgQv5B2Kqn3d3eLojqxtS
应放入您的 slapd.conf
中
要初始化您的(已正确配置的)OpenLDAP,请执行以下操作
ldapadd -x -D "cn=admin,dc=activemq,dc=apache,dc=org" -w sunflower -f activemq-openldap.ldif
配置
一旦条目在 LDAP 中,您就可以配置模块以从那里加载条目。默认值适用于嵌入式 Apache DS 服务器,因此在这种情况下,您需要做的就是将插件添加到代理 xml 配置中
<authorizationPlugin>
<map>
<cachedLDAPAuthorizationMap/>
</map>
</authorizationPlugin>
对于 OpenLDAP 案例,您应该定义更多参数
<authorizationPlugin>
<map>
<cachedLDAPAuthorizationMap
connectionURL="ldap://127.0.0.1:389"
connectionUsername="cn=admin,dc=activemq,dc=apache,dc=org"
connectionPassword="sunflower"
queueSearchBase="ou=Queue,ou=Destination,ou=ActiveMQ,dc=activemq,dc=apache,dc=org"
topicSearchBase="ou=Topic,ou=Destination,ou=ActiveMQ,dc=activemq,dc=apache,dc=org"
tempSearchBase="ou=Temp,ou=Destination,ou=ActiveMQ,dc=activemq,dc=apache,dc=org"
refreshInterval="300000"
legacyGroupMapping="false"
/>
</map>
</authorizationPlugin>
用于 cachedLDAPAuthorizationMap
的所有属性列表
属性 | 默认值 | 描述 | 版本 |
---|---|---|---|
connectionURL | ldap://127.0.0.1:1024 | LDAP 服务器连接地址。这可以是单个 URL 或以空格分隔的 URL 列表。 | |
connectionUsername | uid=admin,ou=system | 用于连接到服务器的 Dn | |
connectionPassword | secret | 用于连接到服务器的密码 | |
connectionProtocol | s | 用于连接到服务器的连接协议 | |
authentication | simple | 连接到服务器时使用的身份验证方法 | |
queueSearchBase | ou=Queue,ou=Destination,ou=ActiveMQ,ou=system | 与队列相关的条目的基本 dn | 5.7 及更高版本 |
topicSearchBase | ou=Topic,ou=Destination,ou=ActiveMQ,ou=system | 与主题相关的条目的基本 dn | 5.7 及更高版本 |
tempSearchBase | ou=Temp,ou=Destination,ou=ActiveMQ,ou=system | 与临时目标相关的条目的基本 dn | 5.7 及更高版本 |
refreshInterval | -1 | 从服务器拉取更改的间隔(以毫秒为单位),-1 表示拉取已关闭,有关更多信息,请参见 #更新 | |
legacyGroupMapping | true | 是否应将权限组成员配置为 CN 而不是完整的 DN | 5.7 及更高版本 |
更新
许多 LDAP 服务器支持所谓的“持久搜索”功能,该功能允许应用程序以“推送”方式接收 LDAP 中的更改。默认情况下,此插件假设 LDAP 服务器支持此功能,并将“注册”以获取实时更新。
对于尚不支持此功能的服务器(如 OpenLDAP),我们提供“拉取”更新。在这种情况下,您需要设置 refreshInterval
属性,该属性将定义插件的更新周期(因此在这种情况下,更新不会立即应用)