다음 그림은 Message Queue 브로커가 JAAS를 사용하는 방법을 나타냅니다. 이 그림은 이전 그림의 JAAS 모델에 비해 좀 더 복잡한 구현을 나타냅니다.
이전 그림의 단순한 경우에서 보았듯이 인증 서비스 계층은 브로커와 구분되어 있습니다. 인증 서비스는 하나 이상의 로그인 모듈(LoginModule) 및 추가 인증 모듈(필요 시)로 구성됩니다. 로그인 모듈은 브로커와 동일한 Java 가상 머신에서 실행됩니다. Message Queue 브로커는 로그인 모듈에 LogInContext로 표현되며 브로커 런타임 코드의 일부인 CallBackHandler를 통해 로그인 모듈과 통신합니다.
또한 인증 서비스는 로그인 모듈에 대한 항목이 포함된 JAAS 구성 파일을 제공합니다. 구성 파일은 모듈의 사용 순서와 일부 사용 조건을 지정합니다. 브로커가 시작되면 JAAS는 Java 시스템 등록 정보 java.security.auth.login.config 또는 Java 보안 등록 정보 파일로 구성 파일을 찾습니다. 그런 다음 JAAS 구성 파일에서 브로커 등록 정보 imq.user_repository.jaas.name 값에 따른 항목을 선택합니다. 이 항목에는 인증에 사용할 로그인 모듈이 지정되어 있습니다. 그림에서와 같이 브로커는 로그인 모듈을 두 개 이상 사용할 수 있습니다. 구성 파일, 로그인 모듈 및 브로커 간의 관계는 그림 1–3에서 볼 수 있습니다.
브로커에서 JAAS 플러그인 인증 서비스를 사용하면 이 내용이 Message Queue 클라이언트에도 완전히 공개됩니다. 클라이언트는 사용자 이름과 비밀번호를 전달하여 이전과 같이 브로커에 계속 연결됩니다. 한편 브로커는 콜백 처리기를 사용하여 이 정보를 인증 서비스에 전달하며 서비스는 이 정보를 사용하여 사용자를 인증하고 결과를 반환합니다. 인증에 성공하면 브로커에서 연결을 부여하며, 인증에 실패하면 클라이언트 런타임에서 클라이언트가 처리해야 할 JMS 보안 예외를 반환합니다.
Message Queue 클라이언트가 인증된 후 추가 권한 부여가 필요할 경우에는 브로커에서 액세스 제어 파일을 참조하여 인증된 클라이언트가 대상 액세스, 메시지 사용, 대기열 찾아보기 등의 작업을 수행할 수 있는 권한이 부여되어 있는지 여부를 결정합니다(브로커가 정상일 경우).