5.4.2. LDAP 권한 부여 구성
LegacyLDAPSecuritySettingPlugin
보안 설정 플러그인은 이전에 AMQ 6에서 LDAPAuthorizationMap
및 cachedLDAPAuthorizationMap
으로 처리한 보안 정보를 읽고, 가능한 경우 이 정보를 해당 AMQ 7 보안 설정으로 변환합니다.
AMQ 6 및 AMQ 7의 브로커에 대한 보안 구현이 정확히 일치하지 않습니다. 따라서 플러그인은 두 버전 간에 몇 가지 변환을 수행하여 거의 동등한 기능을 달성합니다.
다음 예제에서는 플러그인을 구성하는 방법을 보여줍니다.
절차
-
<
broker-instance-dir> /etc/broker.xml
구성 파일을 엽니다. 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 (
mapAdminToManage
가true
로 설정된 경우)아래에 설명 된 바와 같이 플러그인이 equivalence를 달성하기 위해 AMQ 6 및 AMQ 7 권한 유형 사이에서 일부 변환을 수행하는 몇 가지 경우가 있습니다.
-
AMQ 6에는 유사한 권한 유형이 없기 때문에 매핑에는 AMQ 7
관리
권한 유형이 포함되어 있지 않습니다. 그러나mapAdminToManage
가true
로 설정된 경우 플러그인은 AMQ 6admin
권한을 AMQ 7관리
권한에 매핑합니다. -
AMQ 6의
admin
권한 유형은 대상이 없는 경우 브로커가 자동으로 대상을 생성하고 사용자가 메시지를 보냅니다. AMQ 7은 사용자에게 메시지를 대상에 보낼 수 있는 권한이 있는 경우 자동으로 대상을 자동으로 생성할 수 있습니다. 따라서 플러그인은 기본적으로 위에 표시된 AMQ 7 권한에 대한 레거시관리자
권한을 매핑합니다. 또한mapAdminToManage
가true
로 설정된 경우 플러그인은 AMQ 6관리자
권한을 AMQ 7관리
권한에 매핑합니다.
-
AMQ 6에는 유사한 권한 유형이 없기 때문에 매핑에는 AMQ 7
-