缓存 LDAP 授权模块

特性 > 安全 > 缓存 LDAP 授权模块

自 5.6 版本起可用

缓存 LDAP 授权模块是默认授权模块的实现,它从 LDAP 初始化和更新数据。它支持所有标准功能,例如定义通配符策略条目和临时目标的条目。

初始化

我们提供两个 ldif 文件以方便入门。第一个用于 Apache Directory Server (ldif),我们在嵌入模式下用于测试。有关如何使用此 ldif 文件初始化嵌入式 ApacheDS 的示例,请查看 CachedLDAPSecurityTest

另一个用于 OpenLDAP (ldif)

提供的 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>

有关 Apache DSOpenLDAP 的配置示例

用于 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 属性,该属性将定义插件的更新周期(因此在这种情况下,更新不会立即应用)

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛徽标和 Apache ActiveMQ 项目徽标是 Apache 软件基金会的商标。版权所有 © 2024,Apache 软件基金会。根据 Apache 许可证 2.0 许可。