5.2.2. 속성 파일을 기반으로 사용자 및 암호 인증 구성

AMQ Broker는 주소를 기반으로 큐에 보안을 적용하기 위한 유연한 역할 기반 보안 모델을 지원합니다. 대기열은 일대일( point-to-point messaging) 또는 다대일(publish-subscribe) 메시징을 위해 주소에 바인딩됩니다. 메시지가 주소로 전송되면 브로커는 해당 주소에 바인딩된 대기열 세트를 조회하고 메시지를 해당 큐 세트로 라우팅합니다.

기본 사용자 및 암호 인증이 필요한 경우 PropertiesLoginModule 을 사용하여 정의합니다. 이 로그인 모듈은 브로커에 로컬로 저장된 다음 구성 파일에 대해 사용자 자격 증명을 확인합니다.

artemis-users.properties
사용자 및 해당 암호를 정의하는 데 사용됩니다.
artemis-roles.properties
역할을 정의하고 사용자를 해당 역할에 할당하는 데 사용됩니다.
login.config
사용자 및 암호 인증 및 게스트 액세스에 대한 로그인 모듈을 구성하는 데 사용됩니다.

artemis-users.properties 파일은 보안을 위해 해시된 암호를 포함할 수 있습니다.

다음 섹션에서는 구성 방법을 보여줍니다.

5.2.2.1. 기본 사용자 및 암호 인증 구성

다음 절차에서는 기본 사용자 및 암호 인증을 구성하는 방법을 보여줍니다.

절차

  1. < broker-instance-dir> /etc/login.config 구성 파일을 엽니다. 기본적으로 새 AMQ Broker 7.8 인스턴스의 이 파일에는 다음 행이 포함됩니다.

    activemq {
       org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoginModule sufficient
           debug=false
           reload=true
           org.apache.activemq.jaas.properties.user="artemis-users.properties"
           org.apache.activemq.jaas.properties.role="artemis-roles.properties";
             };
    activemq
    구성의 별칭입니다.
    org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoginModule
    구현 클래스입니다.
    sufficient

    PropertiesLoginModule 에 필요한 성공 수준을 지정하는 플래그입니다. 설정할 수 있는 값은 다음과 같습니다.

    • 필수: 성공하려면 로그인 모듈이 필요합니다. 인증은 성공 또는 실패에 관계없이 지정된 별칭 아래에 구성된 로그인 모듈 목록을 계속 진행합니다.
    • requisite: 성공을 위해서는 로그인 모듈이 필요합니다. 실패는 즉시 애플리케이션으로 제어를 반환합니다. 인증은 지정된 별칭 아래에 구성된 로그인 모듈 목록을 진행하지 않습니다.
    • sufficient: 성공을 위해 로그인 모듈이 필요하지 않습니다. 성공하면 제어가 애플리케이션으로 돌아가고 인증이 더 이상 진행되지 않습니다. 실패한 경우 인증 시도는 지정된 별칭 아래에 구성된 로그인 모듈 목록을 아래로 진행합니다.
    • 선택 사항: 성공하려면 로그인 모듈이 필요하지 않습니다. 인증은 성공 또는 실패에 관계없이 지정된 별칭 아래에 구성된 로그인 모듈 목록을 계속 종료합니다.
    org.apache.activemq.jaas.properties.user
    로그인 모듈 구현에 대한 사용자 및 암호 세트를 정의하는 속성 파일을 지정합니다.
    org.apache.activemq.jaas.properties.role
    로그인 모듈 구현에 대해 사용자를 정의된 역할에 매핑하는 속성 파일을 지정합니다.
  2. < broker-instance-dir> /etc/artemis-users.properties 구성 파일을 엽니다.
  3. 사용자를 추가하고 사용자에게 암호를 할당합니다. 예를 들면 다음과 같습니다.

    user1=secret
    user2=access
    user3=myPassword
  4. < broker-instance-dir> /etc/artemis-roles.properties 구성 파일을 엽니다.
  5. 이전에 artemis-users.properties 파일에 추가한 사용자에게 역할 이름을 할당합니다. 예를 들면 다음과 같습니다.

    admin=user1,user2
    developer=user3
  6. < broker-instance-dir> /etc/bootstrap.xml 구성 파일을 엽니다.
  7. 필요한 경우 다음과 같이 파일에 보안 도메인 별칭(이 인스턴스에서 activemq)을 추가합니다.

    <jaas-security domain="activemq"/>