5.4.2. LDAP 권한 부여 구성

LegacyLDAPSecuritySettingPlugin 보안 설정 플러그인은 이전에 AMQ 6에서 LDAPAuthorizationMapcachedLDAPAuthorizationMap 으로 처리한 보안 정보를 읽고, 가능한 경우 이 정보를 해당 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& gt;. 디렉터리 트리에 특정 노드의 고유 이름(DN)을 추가한 다음 슬래시 / 를 추가하여 이 URL의 자격을 선택적으로 지정할 수 있습니다. 예: ldap://ldapserver:10389/ou=system. 기본값은 ldap://localhost:1024 입니다.
    connectionUsername
    디렉터리 서버에 대한 연결을 여는 사용자의 DN입니다. 예를 들면 uid=admin,ou=system 입니다. 디렉터리 서버는 일반적으로 클라이언트가 연결을 열기 위해 사용자 이름/암호 자격 증명을 제공해야 합니다.
    connectionPassword
    connectionUsername 에서 DN과 일치하는 암호입니다. 디렉터리 서버의 DIT( Directory Information Tree )에서 암호는 일반적으로 해당 디렉터리 항목에 userPassword 속성으로 저장됩니다.
    connectionProtocol
    현재는 사용되지 않습니다. 나중에 이 옵션을 사용하면 디렉터리 서버에 연결할 Secure Socket Layer(SSL)을 선택할 수 있습니다. 이 옵션은 기본값이 없으므로 명시적으로 설정해야 합니다.
    인증

    LDAP 서버에 바인딩할 때 사용되는 인증 방법을 지정합니다. 이 매개 변수의 유효한 값은 simple (사용자 이름 및 암호) 또는 none (익명)입니다. 기본값은 simple 입니다.

    참고

    ASL(Simple Authentication and Security Layer) 인증은 지원되지 않습니다.

이전 구성 예에 표시되지 않는 다른 설정은 다음과 같습니다.

destinationBase
모든 대상에 대한 권한을 제공하는 자식이 노드의 DN을 지정합니다. 이 경우 DN은 리터럴 값(즉, 속성 값에서 문자열 대체가 수행되지 않음)입니다. 예를 들어 이 속성의 일반적인 값은 ou=destinations,o=ActiveMQ,ou=system 입니다. 기본값은 ou=destinations,o=ActiveMQ,ou=system 입니다.
filter
LDAP 검색 필터를 지정합니다. 이 필터는 모든 종류의 대상에 대한 권한을 검색할 때 사용됩니다. 검색 필터는 큐 또는 주제 노드의 하위 항목 중 하나와 일치하려고 합니다. 기본값은 (cn=*) 입니다.
roleAttribute
역할의 DN에 해당하는 필터 값과 일치하는 노드의 속성을 지정합니다. 기본값은 uniqueMember 입니다.
adminPermissionValue
관리자 권한과 일치하는 값을 지정합니다. 기본값은 admin 입니다.
readPermissionValue
읽기 권한과 일치하는 값을 지정합니다.Specifies a value that matches the read permission. 기본값은 read 입니다.
writePermissionValue
쓰기 권한과 일치하는 값을 지정합니다. 기본값은 write 입니다.
enableListener
LDAP 서버에서 자동으로 업데이트를 수신하고 브로커의 권한 부여 구성을 실시간으로 업데이트하는 리스너를 활성화할지 여부를 지정합니다. 기본값은 true입니다.
mapAdminToManage

레거시(즉, AMQ 6) admin 권한을 AMQ 7 관리 권한에 매핑할지 여부를 지정합니다. 아래 표의 매핑 의미 체계에 대한 세부 정보를 참조하십시오. 기본값은 false입니다.

LDAP에 정의된 큐 또는 항목의 이름은 보안 설정에 대해 "match" 역할을 하며, 권한 값은 AMQ 6 유형에서 AMQ 7 유형으로 매핑되며 역할은 그대로 매핑됩니다. LDAP에 정의된 큐 또는 항목의 이름이 보안 설정에 대한 일치 역할을 하므로 보안 설정이 JMS 대상에 예상대로 적용되지 않을 수 있습니다. 필요에 따라 AMQ 7은 항상 "jms.queue" 또는 "jms.topic"으로 JMS 대상 앞에 추가하기 때문입니다.

AMQ 6에는 세 가지 권한 유형( 읽기,쓰기, 관리자 등)이 있습니다. 이러한 권한 유형은 ActiveMQ 웹 사이트( 보안 )에 설명되어 있습니다.

AMQ 7에는 다음과 같은 권한 유형이 있습니다.

  • createAddress
  • deleteAddress
  • createDurableQueue
  • deleteDurableQueue
  • createNonDurableQueue
  • deleteNonDurableQueue
  • send
  • consume
  • manage
  • browse

    이 표는 보안 설정 플러그인이 AMQ 6 권한 유형을 AMQ 7 권한 유형에 매핑하는 방법을 보여줍니다.

    AMQ 6 권한 유형AMQ 7 권한 유형

    read

    사용, 찾아보기

    write

    send

    admin

    createAddress, deleteAddress, createDurableQueue, deleteDurableQueue, createNonDurableQueue, deleteNonDurableQueue, manage ( mapAdminToManagetrue로 설정된 경우)

    아래에 설명 된 바와 같이 플러그인이 equivalence를 달성하기 위해 AMQ 6 및 AMQ 7 권한 유형 사이에서 일부 변환을 수행하는 몇 가지 경우가 있습니다.

    • AMQ 6에는 유사한 권한 유형이 없기 때문에 매핑에는 AMQ 7 관리 권한 유형이 포함되어 있지 않습니다. 그러나 mapAdminToManagetrue 로 설정된 경우 플러그인은 AMQ 6 admin 권한을 AMQ 7 관리 권한에 매핑합니다.
    • AMQ 6의 admin 권한 유형은 대상이 없는 경우 브로커가 자동으로 대상을 생성하고 사용자가 메시지를 보냅니다. AMQ 7은 사용자에게 메시지를 대상에 보낼 수 있는 권한이 있는 경우 자동으로 대상을 자동으로 생성할 수 있습니다. 따라서 플러그인은 기본적으로 위에 표시된 AMQ 7 권한에 대한 레거시 관리자 권한을 매핑합니다. 또한 mapAdminToManagetrue 로 설정된 경우 플러그인은 AMQ 6 관리자 권한을 AMQ 7 관리 권한에 매핑합니다.