Message Queue는 사용자 액세스 제어(인증 및 권한 부여)와 암호화를 위한 보안 서비스를 제공합니다.
Message Queue 관리자는 브로커가 사용자를 인증하고 작업 권한을 부여하는 데 필요한 정보를 설정해야 합니다. 보안 서비스와 관련된 브로커 등록 정보는 보안 등록 정보에 나와 있습니다. 부울 등록 정보 imq.accesscontrol.enabled는 액세스 제어가 브로커 수준에 적용되는지 여부를 제어하는 마스터 스위치 역할을 합니다. 보다 자세한 제어를 위해 imq.serviceName .accesscontrol.enabled 등록 정보를 설정하여 연결 서비스에 대해 이 설정을 대체할 수 있습니다. 여기서 serviceName은 표 4–1에 표시된 대로 연결 서비스의 이름입니다. 예를 들면 imq.httpjms.accesscontrol.enabled와 같습니다.
그림 4–2는 브로커에서 인증 및 권한 부여 서비스를 제공하는 데 필요한 구성 요소를 보여줍니다. 이러한 서비스는 메시징 시스템 사용자에 대한 정보(이름, 비밀번호 및 그룹 멤버쉽)가 들어 있는 사용자 저장소에 따라 다릅니다. 또한, 사용자나 그룹에 특정 작업에 대한 권한을 부여하기 위해 브로커는 사용자나 그룹이 수행할 수 있는 작업을 지정하는 액세스 제어 등록 정보 파일을 참조합니다. 구성 등록 정보 imq.accesscontrol.file.filename을 사용하여 브로커 전체에 대해 단일 액세스 제어 등록 정보 파일을 지정하거나, imq.serviceName. accesscontrol.file.filename을 사용하여 단일 연결 서비스에 대해 지정할 수 있습니다.
그림 4–2에 표시된 대로, Message Queue 서비스와 함께 제공되는 플랫 파일 사용자 저장소에 사용자 데이터를 저장하거나 기존 LDAP(Lightweight Directory Access Protocol) 저장소에 플러그 인할 수 있습니다.
플랫 파일 저장소를 선택하는 경우에는 Message Queue 사용자 관리자 유틸리티(imqusermgr)를 사용하여 저장소를 관리해야 합니다. 이 옵션은 기본적으로 제공되며 사용하기 쉽습니다.
기존 LDAP 서버를 사용하려면 LDAP 공급업체에서 제공하는 도구를 사용하여 사용자 저장소를 채우고 관리합니다. 또한, 브로커에서 LDAP 서버에 사용자 및 그룹에 대한 정보를 쿼리할 수 있도록 브로커 인스턴스 구성 파일의 등록 정보를 설정해야 합니다.
브로커의 imq.authentication.basic.user_repository 등록 정보는 어떤 저장소 유형을 사용할지를 지정합니다. 일반적으로 LDAP 저장소는 확장성이 중요한 경우나 여러 브로커에서 저장소를 공유해야 하는 경우(예: 브로커 클러스터를 사용 중인 경우)에 권장됩니다. 플랫 파일 또는 LDAP 사용자 저장소 설정에 대한 자세한 내용은 사용자 인증을 참조하십시오.
브로커에 연결을 요청하는 클라이언트는 브로커가 사용자 저장소에 저장된 항목과 비교할 사용자 이름 및 비밀번호를 제공해야 합니다. 클라이언트에서 브로커로 전송된 비밀번호는 기본 64 인코딩(플랫 파일 저장소용) 또는 메시지 다이제스트(MD5) 해싱(LDAP 저장소용)을 사용하여 인코딩됩니다. 이 옵션은 브로커 전체의 경우 imq.authentication.type 등록 정보를 통해 제어되거나 특정 연결 서비스의 경우 imq.serviceName. authentication.type 등록 정보를 통해 제어됩니다. imq.authentication.client.response.timeout 등록 정보는 인증 요청 시간 초과 간격을 설정합니다.
비밀번호 파일에 설명한 대로 비밀번호를 대화식으로 묻지 않고 비밀번호 파일에 비밀번호를 입력하도록 선택할 수도 있습니다. 부울 브로커 등록 정보 imq.passfile.enabled는 이 옵션을 제어합니다. 이 등록 정보가 true이면 imq.passfile.dirpath 및 imq.passfile.name 등록 정보에서 비밀번호 파일의 디렉토리 경로와 파일 이름을 제공합니다. imq.imqcmd.password 등록 정보(비밀번호 파일에 내장될 수 있음)는 관리자가 명령 유틸리티(imqcmd)를 사용하여 브로커, 연결 서비스, 연결, 물리적 대상, 영구 가입 및 트랜잭션을 관리하는 데 필요한 인증용 비밀번호를 지정합니다.
LDAP 기반 사용자 저장소를 사용하는 경우에는 LDAP 조회의 다양한 측면을 구성하는 데 사용할 수 있는 다양한 브로커 등록 정보가 있습니다. LDAP 서버 자체의 주소(호스트 이름 및 포트 번호)는 imq.user_repository.ldap.server를 통해 지정됩니다. imq.user_repository.ldap.principal 등록 정보는 LDAP 저장소에 바인드하는 데 필요한 고유 이름을 제공하며, imq.user_repository.ldap.password는 관련 비밀번호를 제공합니다. 기타 등록 정보는 개별 사용자 및 그룹 검색을 위한 디렉토리 기반 및 선택적 JNDI 필터, 사용자 및 그룹 이름의 공급자별 속성 식별자 등을 지정합니다. 자세한 내용은 보안 등록 정보를 참조하십시오.
인증된 사용자는 다양한 Message Queue 관련 작업을 수행할 수 있는 권한을 부여받게 됩니다. Message Queue 관리자는 사용자 그룹을 정의하고 그룹 내 개별 사용자 멤버쉽을 할당할 수 있습니다. 기본 액세스 제어 등록 정보 파일은 admin이라는 단일 그룹만 명시적으로 참조합니다( 그룹 참조). 이 그룹의 사용자는 admin 연결 서비스용 연결 권한이 있으므로 대상 생성, 브로커 모니터링 및 제어와 같은 관리 작업을 수행할 수 있습니다. 다른 그룹으로 정의된 사용자는 기본적으로 admin 서비스에 연결할 수 없습니다.
사용자가 어떤 작업을 수행하려 하면 브로커는 사용자 저장소에 있는 사용자 이름 및 그룹 멤버쉽을 액세스 제어 등록 정보 파일에 있는 해당 작업에 액세스하도록 지정된 사용자 이름 및 그룹 멤버쉽과 대조 확인합니다. 액세스 제어 등록 정보 파일은 다음 작업에 대한 사용자 또는 그룹의 권한을 지정합니다.
클라이언트와 브로커 사이에 전송되는 메시지를 암호화하려면 SSL(Secure Socket Layer) 표준 기반의 연결 서비스를 사용해야 합니다. SSL은 SSL 사용 가능 브로커와 SSL 사용 가능 클라이언트 사이에 암호화된 연결을 설정하여 연결 수준에서 보안을 제공합니다.
SSL 기반 Message Queue 연결 서비스를 사용하려면 키 도구 유틸리티(imqkeytool)를 사용하여 공용 키/개인 키 쌍을 생성합니다. 이 유틸리티는 자체 서명된 인증서에 공용 키를 내장하고 이를 Message Queue 키 저장소에 저장합니다. 키 저장소 자체에 비밀번호가 설정되어 있으므로 잠금을 해제하려면 시작 시 imq.keystore.password 등록 정보에 지정된 키 저장소 비밀번호를 입력해야 합니다. 키 저장소 잠금이 해제되면 브로커는 연결을 요청하는 모든 클라이언트에게 인증서를 전달할 수 있습니다. 그리고 나서 클라이언트는 인증서를 사용하여 브로커에게 보낼 암호화된 연결을 설정합니다.
imq.audit.enabled 브로커 등록 정보는 Message Queue 브로커 로그 파일에 대한 감사 레코드 로깅을 제어합니다. 자세한 내용은 감사 기록을 참조하십시오.