5.2.3. 인증서 기반 인증 구성
JAAS( Java Authentication and Authorization Service ) 인증서 로그인 모듈은 TLS(Transport Layer Security)를 사용하는 클라이언트의 인증 및 권한 부여를 처리합니다. 이 모듈에는 TLS( two-way Transport Layer Security )가 사용되고 자체 인증서로 구성할 클라이언트가 있어야 합니다. 인증은 JAAS 인증서 로그인 모듈에서 직접 수행하지 않고 TLS 핸드셰이크 중에 수행됩니다.
인증서 로그인 모듈의 역할은 다음과 같습니다.
- 허용 가능한 사용자 집합을 제한합니다. 관련 속성 파일에 명시적으로 나열 된 사용자의 DNs(DN)만 인증할 수 있습니다.
- 그룹 목록을 수신된 사용자 ID와 연결합니다. 이렇게 하면 권한 부여가 용이해집니다.
- 들어오는 클라이언트 인증서가 있어야 합니다(기본적으로 TLS 계층은 선택적으로 클라이언트 인증서의 존재를 처리하도록 구성됩니다).
인증서 로그인 모듈은 인증서 DN 컬렉션을 플랫 텍스트 파일 쌍에 저장합니다. 파일은 사용자 이름과 그룹 ID 목록을 각 DN과 연결합니다.
인증서 로그인 모듈은 org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule
클래스에서 구현됩니다.
5.2.3.1. 인증서 기반 인증을 사용하도록 브로커 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 인증서 기반 인증을 사용하도록 브로커를 구성하는 방법을 보여줍니다.
사전 요구 사항
- 양방향 TLS(Transport Layer Security)를 사용하도록 브로커를 구성해야 합니다. 자세한 내용은 5.1.2절. “양방향 TLS 구성”의 내용을 참조하십시오.
절차
이전에 브로커 키 저장소로 가져온 사용자 인증서에서 제목 Distinguished Names (DN)를 가져옵니다.
키 저장소 파일에서 임시 파일로 인증서를 내보냅니다. 예를 들면 다음과 같습니다.
keytool -export -file <file_name> -alias broker-localhost -keystore broker.ks -storepass <password>
keytool -export -file <file_name> -alias broker-localhost -keystore broker.ks -storepass <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 내보낸 인증서의 콘텐츠를 출력합니다.
keytool -printcert -file <file_name>
keytool -printcert -file <file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 다음과 유사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Owner
항목은 주체 DN입니다. 주체 DN에 입력하는 데 사용되는 형식은 플랫폼에 따라 다릅니다. 위의 문자열도 다음과 같이 나타낼 수 있습니다.Owner: `CN=localhost,\ OU=broker,\ O=Unknown,\ L=Unknown,\ ST=Unknown,\ C=Unknown`
Owner: `CN=localhost,\ OU=broker,\ O=Unknown,\ L=Unknown,\ ST=Unknown,\ C=Unknown`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
인증서 기반 인증 구성.
<
broker_instance_dir> /etc/login.config
구성 파일을 엽니다. 인증서 로그인 모듈을 추가하고 사용자 및 역할 속성 파일을 참조합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule
- 구현 클래스입니다.
org.apache.activemq.jaas.textfiledn.user
- 로그인 모듈 구현에 대한 사용자 및 암호 세트를 정의하는 속성 파일을 지정합니다.
org.apache.activemq.jaas.textfiledn.role
- 로그인 모듈 구현에 대해 사용자를 정의된 역할에 매핑하는 속성 파일을 지정합니다.
<
broker_instance_dir> /etc/artemis-users.properties
구성 파일을 엽니다. 사용자 및 해당 DN은 이 파일에 정의되어 있습니다. 예를 들면 다음과 같습니다.system=CN=system,O=Progress,C=US user=CN=humble user,O=Progress,C=US guest=CN=anon,O=Progress,C=DE
system=CN=system,O=Progress,C=US user=CN=humble user,O=Progress,C=US guest=CN=anon,O=Progress,C=DE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위 구성을 기반으로, 예를 들어
system
named user는CN=system,O=Progress,C=US
Subject DN에 매핑됩니다.<
broker_instance_dir> /etc/artemis-roles.properties
구성 파일을 엽니다. 사용 가능한 역할 및 해당 역할을 보유한 사용자는 이 파일에 정의됩니다. 예를 들면 다음과 같습니다.admins=system users=system,user guests=guest
admins=system users=system,user guests=guest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 구성에서
users
역할에 대해 쉼표로 구분된 목록으로 여러 사용자를 나열합니다.다음과 같이
bootstrap.xml
에서 보안 도메인 별칭(이 인스턴스에서 activemq)을 참조했는지 확인합니다.<jaas-security domain="activemq"/>
<jaas-security domain="activemq"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow