사용자가 브로커에 연결하려고 시도하면 브로커는 제공된 이름과 비밀번호를 검사하여 사용자를 인증합니다. 이름과 비밀번호가 각 브로커가 참조하도록 구성된 브로커별 사용자 저장소의 이름 및 비밀번호와 일치하면 브로커는 연결을 허용합니다.
사용자 저장소에서 사용자 목록, 해당 그룹, 비밀번호를 관리해야 합니다. 브로커 인스턴스마다 다른 사용자 저장소를 사용할 수 있습니다. 이 절에서는 이러한 저장소를 만들고 채우고 관리하는 방법에 대해 설명합니다.
저장소 유형은 다음 중 하나가 될 수 있습니다.
Message QueueTM와 함께 제공되는 플랫 파일 저장소
이 사용자 저장소 유형은 사용하기가 매우 쉽습니다. 사용자 관리자 유틸리티(imqusermgr)를 사용하면 저장소를 채우고 관리할 수 있습니다. 인증을 사용하려면 각 사용자의 이름, 비밀번호, 사용자 그룹 이름으로 사용자 저장소를 채웁니다.
사용자 저장소의 설정 및 관리에 대한 자세한 내용은 플랫 파일 사용자 저장소 사용을 참조하십시오.
LDAP 서버
LDAP v2 또는 v3 프로토콜을 사용하는 기존 또는 새 LDAP 디렉토리 서버가 될 수 있습니다. 플랫 파일 저장소만큼 사용이 쉽지는 않지만 더 확장 가능하므로 작업 환경에 적합합니다.
LDAP 사용자 저장소를 사용하는 경우에는 LDAP 공급업체에서 제공하는 도구를 사용하여 사용자 저장소를 채우고 관리해야 합니다. 자세한 내용은 사용자 저장소에 LDAP 서버 사용을 참조하십시오.
Message Queue에서는 플랫 파일 사용자 저장소와 플랫 파일 사용자 저장소를 채우고 관리할 때 사용할 수 있는 명령줄 도구인 사용자 관리자 유틸리티(imqusermgr)를 제공합니다. 다음 절에서는 플랫 파일 사용자 저장소에 대해 설명하고 사용자 관리자 유틸리티를 사용하여 해당 저장소를 채우고 관리하는 방법을 설명합니다.
플랫 파일 사용자 저장소는 인스턴스마다 다릅니다. 기본 사용자 저장소(passwd)는 사용자가 시작하는 각 브로커 인스턴스에 대해 자동으로 만들어집니다. 이 사용자 저장소는 저장소와 연관된 브로커 인스턴스의 이름으로 식별되는 디렉토리에 저장됩니다(부록 A, 플랫폼별 Message QueueTM 데이터 위치 참조).
…/instances/instanceName/etc/passwd
저장소는 이 두 항목을 사용하여 만들어집니다. 표 7–1의 각 행은 하나의 항목을 나타냅니다.
표 7–1 사용자 저장소 초기 항목
사용자 이름 |
비밀번호 |
그룹 |
상태 |
---|---|---|---|
admin |
admin |
admin |
active |
guest |
guest |
anonymous |
active |
이러한 초기 항목을 사용하면 관리자가 개입하지 않아도 설치 후 바로 Message Queue 브로커를 사용할 수 있습니다.
초기 guest 사용자 항목을 사용하면 클라이언트가 기본 guest 사용자 이름과 비밀번호를 사용하여 브로커 인스턴스에 연결할 수 있습니다.
초기 admin 사용자 항목을 사용하면 imqcmd 명령을 사용하여 기본 admin 사용자 이름과 비밀번호로 브로커 인스턴스를 관리할 수 있습니다. 비밀번호를 변경하려면 이 초기 항목을 업데이트해야 합니다( 기본 관리자 비밀번호 변경 참조).
다음 절에서는 플랫 파일 사용자 저장소를 채우고 관리하는 방법을 설명합니다.
Message Queue 사용자 관리자 유틸리티(imqusermgr)를 사용하면 플랫 파일 사용자 저장소를 편집하거나 채울 수 있습니다. 이 절에서는 사용자 관리자 유틸리티에 대해 소개합니다. 다음 절에서는 imqusermgr 하위 명령을 사용하여 특정 작업을 수행하는 방법에 대해 설명합니다.
imqusermgr 명령에 대한 자세한 내용은 13 장, 명령줄 참조을 참조하십시오.
사용자 관리자를 사용하기 전에 주의해야 할 사항은 다음과 같습니다.
브로커별 사용자 저장소가 없는 경우 해당 브로커 인스턴스를 시작하여 브로커별 사용자 저장소를 만들어야 합니다.
imqusermgr 명령은 브로커가 설치된 호스트에서 실행해야 합니다.
저장소에 쓸 수 있는 적절한 권한이 필요합니다. 즉, Solaris 및 Linux의 경우 해당 브로커 인스턴스를 처음으로 만든 사용자나 루트 사용자여야 합니다.
다음 절의 예에서는 기본 브로커 인스턴스인 경우를 가정합니다.
imqusermgr 명령에는 add, delete, list 및 update 하위 명령이 있습니다.
add 하위 명령은 지정한(또는 기본) 브로커 인스턴스 저장소에 사용자와 관련 비밀번호를 추가하고 선택적으로 사용자 그룹을 지정합니다. 하위 명령의 구문은 다음과 같습니다.
add [-i instanceName] -u userName -p passwd [-g group] [ -s]
delete 하위 명령은 지정한(또는 기본) 브로커 인스턴스 저장소에서 지정한 사용자를 삭제합니다. 하위 명령의 구문은 다음과 같습니다.
delete [-i instanceName] -u userName [ -s] [-f]
list 하위 명령은 지정한(또는 기본) 브로커 인스턴스 저장소의 지정한 사용자 또는 모든 사용자에 대한 정보를 표시합니다. 하위 명령의 구문은 다음과 같습니다.
list [ -i instanceName] [-u userName]
update 하위 명령은 지정한(또는 기본) 브로커 인스턴스 저장소에 있는 지정한 사용자의 비밀번호 및/또는 상태를 업데이트합니다. 하위 명령의 구문은 다음과 같습니다.
update [ -i instanceName] -u userName -p passwd [ -a state] [-s] [ -f]
update [-i instanceName] -u userName -a state [-p passwd] [-s] [-f]
표 7–2에서는 imqusermgr 명령의 옵션이 나열되어 있습니다.
표 7–2 imqusermgr 옵션
옵션 |
설명 |
---|---|
-a activeState |
사용자 상태의 활성화 여부를 지정합니다(true/false). true 값은 활성화 상태를 나타내며 기본값입니다. |
-f |
사용자의 확인 없이 작업을 수행합니다. |
-h |
사용 도움말을 표시합니다. 명령줄에 있는 명령은 실행되지 않습니다. |
-i instanceName |
명령이 적용될 브로커 인스턴스 이름을 지정합니다. 지정하지 않으면 기본 인스턴스 이름 imqbroker인 것으로 가정합니다. |
-p passwd |
사용자의 비밀번호를 지정합니다. |
-g group |
사용자 그룹을 지정합니다. 유효한 값에는 admin, user, anonymous가 있습니다. |
-s |
자동 모드를 설정합니다. |
-u userName |
사용자 이름을 지정합니다. |
-v |
버전 정보를 표시합니다. 명령줄에 있는 명령은 실행되지 않습니다. |
브로커 인스턴스의 사용자 저장소에 사용자 항목을 추가할 때, 사전 정의된 admin, user 또는 anonymous의 세 가지 그룹 중 하나를 지정할 수 있습니다. 그룹을 지정하지 않으면 기본 그룹인 user가 할당됩니다. 그룹은 다음과 같이 할당해야 합니다.
admin 그룹. 브로커 관리자에 사용됩니다. 이 그룹에 할당된 사용자는 기본적으로 브로커를 구성하고 관리할 수 있습니다. admin 그룹에 사용자를 두 명 이상 할당할 수도 있습니다.
user 그룹. 관리자가 아닌 일반 Message Queue 클라이언트 사용자에 사용됩니다. 대부분의 클라이언트 사용자는 user 그룹에 속합니다. 기본적으로 이 그룹의 사용자는 모든 주제와 대기열에 메시지를 생성하고 모든 주제와 대기열에서 메시지를 사용하고 모든 대기열에서 메시지를 찾아볼 수 있습니다.
anonymous 그룹. 브로커에 알려진 사용자 이름을 사용하지 않는(클라이언트 응용 프로그램에서 사용해야 할 실제 사용자 이름을 모르기 때문일 수 있음) Message Queue 클라이언트에 사용됩니다. 이 계정은 대부분의 FTP 서버에 있는 anonymous 계정과 유사합니다. anonymous 그룹에는 한 번에 한 사용자만 할당할 수 있습니다. user 그룹과 비교하여 이 그룹의 액세스 권한을 제한하거나, 배포 시 그룹에서 사용자를 제거해야 합니다.
사용자의 그룹을 변경하려면, 사용자 항목을 삭제한 후 그 사용자에 다른 항목을 추가하여 새 그룹을 지정해야 합니다.
시스템에서 생성한 그룹의 경우 이름을 변경하거나 삭제할 수 없습니다. 또한 새 그룹을 만들 수도 없습니다. 하지만 해당 그룹의 구성원이 수행할 수 있는 작업을 정의하는 액세스 규칙을 지정할 수 있습니다. 자세한 내용은 사용자 권한 부여: 액세스 제어 등록 정보 파일을 참조하십시오.
사용자를 저장소에 추가하면 그 사용자는 기본적으로 활성 상태가 됩니다. 사용자를 비활성 상태로 만들려면 update 명령을 사용해야 합니다. 예를 들어, 다음 명령은 사용자 JoeD를 비활성 상태로 만듭니다.
imqusermgr update -u JoeD -a false
비활성 상태인 사용자의 항목은 저장소에 보존되지만, 비활성 상태인 사용자가 새 연결을 열 수는 없습니다. 사용자가 비활성 상태일 때 같은 이름을 가진 다른 사용자를 추가하면 작업이 실패합니다. 비활성 사용자 항목을 삭제하거나, 새 사용자의 이름을 변경하거나, 새 사용자에게 다른 이름을 사용해야 합니다. 그러면 중복되는 사용자 이름을 추가하지 않게 됩니다.
사용자 이름과 비밀번호는 다음과 같은 지침을 따라야 합니다.
사용자 이름에는 별표(*), 쉼표(,), 콜론(:), 줄바꿈 또는 캐리지 리턴 문자가 포함되지 않아야 합니다.
사용자 이름 또는 비밀번호는 한 문자 이상이어야 합니다.
사용자 이름 또는 비밀번호에 공백이 포함된 경우에는 이름 또는 비밀번호 전체를 따옴표로 묶어야 합니다.
명령 쉘에서 명령줄에 입력할 수 있는 최대 문자 수가 제한되어 있는 것 외에는 비밀번호 또는 사용자 이름에 적용되는 길이 제한은 없습니다.
저장소에 사용자를 추가하려면 add 하위 명령을 사용합니다. 예를 들어, 다음 명령은 기본 브로커 인스턴스 사용자 저장소에 비밀번호가 sesame인 사용자 Katharine을 추가합니다.
imqusermgr add -u Katharine -p sesame -g user
저장소에서 사용자를 삭제하려면 delete 하위 명령을 사용합니다. 예를 들어, 다음 명령은 Bob이라는 사용자를 삭제합니다.
imqusermgr delete -u Bob
사용자의 비밀번호 또는 상태를 변경하려면 update 하위 명령을 사용합니다. 예를 들어, 다음 명령은 Katharine의 비밀번호를 aladdin으로 변경합니다.
imqusermgr update -u Katharine -p aladdin
한 사용자 또는 모든 사용자에 대한 정보를 나열하려면 list 명령을 사용합니다. 다음 명령은 isa라는 사용자에 대한 정보를 표시합니다.
imqusermgr list -u isa
% imqusermgr list -u isa User repository for broker instance: imqbroker ---------------------------------- User Name Group Active State ---------------------------------- isa admin true |
다음 명령은 모든 사용자에 대한 정보를 나열합니다.
imqusermgr list
% imqusermgr list User repository for broker instance: imqbroker -------------------------------------- User Name Group Active State -------------------------------------- admin admin true guest anonymous true isa admin true testuser1 user true testuser2 user true testuser3 user true testuser4 user false testuser5 user false |
보안을 위해 admin의 기본 비밀번호를 자신만 아는 비밀번호로 변경해야 합니다. 다음 명령은 mybroker 브로커 인스턴스의 기본 관리자 비밀번호를 admin에서 grandpoobah로 변경합니다.
imqusermgr update mybroker -u admin -p grandpoobah
브로커 인스턴스가 실행 중일 때 명령줄 도구 중 하나를 실행하여 이러한 변경 사항의 적용 여부를 빠르게 확인할 수 있습니다. 예를 들어, 다음 명령은 비밀번호를 묻습니다.
imqcmd list svc mybroker -u admin
새 비밀번호(grandpoobah)가 올바르게 작동해야 하고 이전 비밀번호는 실패해야 합니다.
비밀번호를 변경한 후에 관리 콘솔을 포함한 Message Queue 관리 도구를 사용하려면 새 비밀번호를 입력해야 합니다.
사용자 저장소에 LDAP 서버를 사용하려면 다음 작업을 수행합니다.
인스턴스 구성 파일 편집
관리자에 대한 액세스 제어 설정
브로커가 디렉토리 서버를 사용하게 하려면 브로커 인스턴스 구성 파일 config.properties에서 특정 등록 정보의 값을 설정해야 합니다. 이 등록 정보를 사용하면 사용자가 브로커 인스턴스에 연결하거나 메시징 작업을 수행하려 할 때마다 브로커 인스턴스가 LDAP 서버로부터 사용자 및 그룹에 대한 정보를 쿼리할 수 있습니다.
인스턴스 구성 파일은 브로커 인스턴스 디렉토리 아래의 디렉토리에 있습니다. 경로 형식은 다음과 같습니다.
…/instances/instanceName /props/config.properties
운영 체제별 인스턴스 디렉토리 위치에 대한 자세한 내용은 부록 A, 플랫폼별 Message QueueTM 데이터 위치를 참조하십시오.
다음 등록 정보를 설정하여 LDAP 사용자 저장소를 사용하고 있음을 지정합니다.
imq.authentication.basic.user_repository=ldap |
imq.authentication.type 등록 정보를 설정하여 클라이언트에서 브로커로 전달되는 비밀번호를 인코딩하는 데 base-64(basic)를 사용할지 또는 MD5(digest)를 사용할지 여부를 결정합니다. 사용자 저장소에 LDAP 디렉토리를 사용하는 경우에는 인증 유형을 basic으로 설정해야 합니다. 예를 들면 다음과 같습니다.
imq.authentication.type=basic |
LDAP 액세스를 제어하는 브로커 등록 정보도 설정해야 합니다. 이러한 등록 정보는 브로커의 인스턴스 구성 파일에 저장됩니다. 등록 정보는 보안 서비스에서 설명되고 보안 등록 정보에 요약되어 있습니다.
Message Queue는 JNDI API를 사용하여 LDAP 디렉토리 서버와 통신합니다. 이러한 등록 정보에 사용되는 구문과 용어에 대한 자세한 내용은 JNDI 설명서를 참조하십시오. Message Queue는 Sun JNDI LDAP 공급자를 사용하며 단순 인증을 사용합니다.
Message Queue는 LDAP 인증 페일오버를 지원하므로 인증을 시도할 LDAP 디렉토리 서버 목록을 지정할 수 있습니다(자세한 내용은 imq.user.repos.ldap.server 등록 정보 참조).
LDAP 사용자 저장소 관련 등록 정보를 설정하는 방법은 브로커의 config.properties 파일을 참조하십시오.
필요한 경우에는 액세스 제어 등록 정보 파일에서 사용자/그룹과 규칙을 편집해야 합니다. 액세스 제어 등록 정보 파일 사용에 대한 자세한 내용은 사용자 권한 부여: 액세스 제어 등록 정보 파일을 참조하십시오.
연결 인증 및 그룹 검색 중 브로커가 SSL을 통해 LDAP 디렉토리 서버와 통신하도록 하려면 LDAP 서버에서 SSL을 활성화한 후 브로커 구성 파일에서 다음 등록 정보를 설정해야 합니다.
LDAP 서버가 SSL 통신에 사용하는 포트를 지정합니다. 예를 들면 다음과 같습니다.
imq.user_repository.ldap.server=myhost:7878 |
브로커 등록 정보 imq.user_repository.ldap.ssl.enabled를 true로 설정합니다.
여러 LDAP 디렉토리 서버를 사용하는 경우 ldap://를 사용하여 각 디렉토리 서버를 추가로 지정합니다. 예를 들면 다음과 같습니다.
imq.user_repository.ldap.server = myHost:7878 ldap:// otherHost:7878 …
추가된 각 디렉토리 서버를 공백으로 구분합니다. 목록의 모든 디렉토리 서버는 기타 LDAP 관련 등록 정보에 대해 동일한 값을 사용해야 합니다.
관리자를 만들려면 액세스 제어 등록 정보 파일을 사용하여 ADMIN 연결을 생성할 수 있는 사용자와 그룹을 지정합니다. 이러한 사용자와 그룹을 LDAP 디렉토리에서 사전 정의해야 합니다.
ADMIN 연결을 만들 수 있는 모든 사용자나 그룹은 관리 명령을 실행할 수 있습니다.
브로커 등록 정보 imq.accesscontrol.enabled를 true(기본값)로 설정하여 액세스 제어 파일을 사용 가능하게 합니다.
imq.accesscontrol.enabled 등록 정보는 액세스 제어 파일을 사용 가능하게 합니다.
액세스 제어 파일 accesscontrol.properties를 엽니다. 파일 위치는 부록 A, 플랫폼별 Message QueueTM 데이터 위치에 나와 있습니다.
파일에는 다음과 같은 항목이 포함되어 있습니다.
service connection access control##################################connection.NORMAL.allow.user=*connection.ADMIN.allow.group=admin
나열된 항목은 예입니다. admin 그룹은 파일 기반 사용자 저장소에 있지만 기본적으로 LDAP 디렉토리에는 없습니다. LDAP 디렉토리에 정의된 그룹의 이름을 Message Queue 관리자 권한을 부여할 그룹 이름으로 대체해야 합니다.
사용자에게 Message Queue 관리자 권한을 부여하려면 다음과 같이 사용자 이름을 입력합니다.
connection.ADMIN.allow.user= userName[[,userName2] …]
그룹에 Message Queue 관리자 권한을 부여하려면 다음과 같이 그룹 이름을 입력합니다.
connection.ADMIN.allow.group= groupName[[,groupName2] …]