5.4.2. 配置 LDAP 授权


LegacyLDAPSecuritySettingPlugin 安全设置插件读取以前由 LDAPAuthorizationMap 和 cache LDAPAuthorizationMap 中处理的安全信息,并在可能的情况下将这些信息转换为对应的 AMQ 7 安全设置。

AMQ 6 和 AMQ 7 中的代理安全实施不完全匹配。因此,插件在两个版本之间执行一些转换,以实现接近的等效功能。

以下示例演示了如何配置插件。

步骤

  1. 打开 <broker-instance-dir>/etc/broker.xml 配置文件。
  2. security-settings 元素内,添加 security-setting-plugin 元素。例如:

    <security-settings>
        <security-setting-plugin class-name="org.apache.activemq.artemis.core.server.impl.LegacyLDAPSecuritySettingPlugin">
            <setting name="initialContextFactory" value="com.sun.jndi.ldap.LdapCtxFactory"/>
            <setting name="connectionURL" value="ldap://localhost:1024"/>`ou=destinations,o=ActiveMQ,ou=system`
            <setting name="connectionUsername" value="uid=admin,ou=system"/>
            <setting name="connectionPassword" value="secret"/>
            <setting name="connectionProtocol" value="s"/>
            <setting name="authentication" value="simple"/>
        </security-setting-plugin>
    </security-settings>
    class-name
    实施是 org.apache.activemq.artemis.core.server.impl.LegacyLDAPSecuritySettingPlugin
    initialContextFactory
    用于连接到 LDAP 的初始上下文工厂。它必须始终设置为 com.sun.jndi.ldap.LdapCtxFactory (即默认值)。
    connectionURL
    使用 LDAP URL 指定目录服务器的位置,<ldap://Host:Port>。您可以选择通过在目录树中添加正斜杠 / 并在目录树中添加可分辨名称(DN)来证明此 URL。例如: ldap://ldapserver:10389/ou=system。默认值为 ldap://localhost:1024
    connectionUsername
    将打开与目录服务器连接的用户的 DN。例如: uid=admin,ou=system。目录服务器通常需要客户端显示用户名/密码凭据,以便能打开连接。
    connectionPassword
    与来自 connectionUsername 的 DN 匹配的密码。在目录服务器中,在 Directory Information Tree (DIT)中,密码通常作为 userPassword 属性存储在相应的目录条目中。
    connectionProtocol
    当前未使用的.以后,此选项可能会允许您为与目录服务器的连接选择安全套接字层(SSL)。必须明确设置这个选项,因为它没有默认值。
    身份验证

    指定绑定到 LDAP 服务器时使用的身份验证方法。此参数的有效值为 simple (用户名和密码)或 none (匿名)。默认值为 simple

    注意

    不支持 简单的身份验证和安全层(SASL)身份验证。

前面配置示例中显示的其他设置有:

destinationBase
指定其子代为所有目的地提供权限的节点的 DN。在这种情况下,DN 是一个字面值(即,不会对属性值执行字符串替换)。例如,此属性的典型值是 ou=destinations,o=ActiveMQ,ou=system。默认值为 ou=destinations,o=ActiveMQ,ou=system
filter
指定 LDAP 搜索过滤器,该过滤器在查找任何类型的目的地时使用。搜索过滤器尝试匹配队列或主题节点的子子或后代。默认值为 (cn=*)
roleAttribute
通过 过滤器 指定节点的属性,其值为 role 的 DN。默认值为 uniqueMember
adminPermissionValue
指定与 admin 权限匹配的值。默认值为 admin
readPermissionValue
指定与 读取权限 匹配的值。默认值为
writePermissionValue
指定与 写入权限 匹配的值。默认值为 write
enableListener
指定是否启用自动接收 LDAP 服务器中的更新并实时更新代理的授权配置。默认值为 true
mapAdminToManage

指定是否将旧的(即 AMQ 6) 管理权限 映射到 AMQ 7 管理权限。请参阅下表中映射语义的详情。默认值为:false

在 LDAP 中定义的队列或主题的名称充当安全设置的"匹配",权限值从 AMQ 6 类型映射到 AMQ 7 类型,角色映射为 is-is。由于 LDAP 中定义的队列或主题的名称充当安全设置的匹配项,因此安全设置可能无法按预期应用到 JMS 目的地。这是因为 AMQ 7 始终以"jms.queue."或"jms.topic."前缀 JMS 目的地。

AMQ 6 有三种权限类型 - 读取写入admin。ActiveMQ 网站上介绍了这些权限类型; 安全

AMQ 7 有以下权限类型:

  • createAddress
  • deleteAddress
  • createDurableQueue
  • deleteDurableQueue
  • createNonDurableQueue
  • deleteNonDurableQueue
  • send
  • consume
  • 管理
  • 浏览

    下表显示了安全设置插件如何将 AMQ 6 权限类型映射到 AMQ 7 权限类型:

    AMQ 6 权限类型AMQ 7 权限类型

    读取

    使用、浏览

    write

    send

    admin

    createAddress, deleteAddress, createDurableQueue, deleteDurableQueue, createNonDurableQueue, deleteNonDurableQueue, manage (如果 mapAdminToManage 设置为 true

    如下所述,在有些情况下,插件在 AMQ 6 和 AMQ 7 权限类型之间执行一些转换,以实现评估:

    • 默认情况下,映射不包含 AMQ 7 管理 权限类型,因为 AMQ 6 中没有类似的权限类型。但是,如果 mapAdminToManage 设置为 true,则插件会将 AMQ 6 admin 权限映射到 AMQ 7 管理权限
    • AMQ 6 中的 admin 权限类型决定了代理是否自动创建目的地(如果目标不存在且用户向其发送信息)。如果用户有权限将消息发送到目的地,AMQ 7 会自动允许自动创建目标。因此,默认情况下,插件将旧 管理权限 映射到上述 AMQ 7 权限。如果 mapAdminToManage 设置为 true,则插件还会将 AMQ 6 admin 权限映射到 AMQ 7 管理权限
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.