RabbitMQ 키클로크 OAuth2 401
증상
RabbitMQ 관리 UI가 Keycloak으로 성공적으로 리디렉션되었지만 RabbitMQ가 로그인 직후 401 Unauthorized를 반환하는 경우(주로 /api/whoami에서) 이 가이드를 사용하세요.
이 실패 모드의 과거 신호에는 다음이 포함됩니다.
- 브라우저가 정상적으로 Keycloak 로그인 페이지에 도달했습니다.
- RabbitMQ로 다시 리디렉션이 성공했습니다.
- 처음으로 인증된 관리 API 요청에서
401가 반환되었습니다. - RabbitMQ 로그에
user 'rabbitmq' - invalid credentials와 같은 잘못된 폴백 메시지가 표시되었습니다.
먼저 알아야 할 현재 Repo 드리프트
현재 저장소는 여전히 통합의 Keycloak 측면을 입증합니다.
lumie-infra/security/keycloak/common-values.yaml는 공개rabbitmq클라이언트를 정의합니다.- 동일한 파일이
rabbitmq-admin클라이언트 범위를 정의합니다. - 이제 해당 범위에는
rabbitmq에 대한oidc-audience-mapper가 포함됩니다.
현재 저장소는 RabbitMQ가 여전히 Git에서 OAuth2 백엔드를 활성화한다는 것을 증명하지 않습니다. 검사된 RabbitMQ 매니페스트는 현재 lumie-infra/platform/rabbitmq/ 아래에 렌더링된 additionalConfig에 auth_backends.1 = internal만 표시되며 체크인된 auth_oauth2.* 설정은 발견되지 않았습니다.
즉, 이 페이지는 기록 401에 대한 유효한 트러블슈팅 가이드로 남아 있지만 지금 디버깅하는 경우 먼저 OAuth2가 라이브 브로커 또는 현재 저장소 트리 외부의 구성 경로에서 여전히 활성화되어 있는지 확인해야 합니다.
가능한 원인
두 개의 독립적인 오류로 인해 동일한 401이 생성되었습니다.
- Keycloak 액세스 토큰에
aud: rabbitmq가 누락되어 RabbitMQ가 대상 확인 단계에서 토큰을 거부했습니다. - Erlang TLS가
auth.lumie-edu.com에 대한 와일드카드 인증서 일치를 거부했기 때문에 RabbitMQ는 JWKS 끝점을 가져오거나 유효성을 검사할 수 없습니다.
중요한 교훈은 하나의 401이 하나의 근본 원인을 암시하지 않는다는 것입니다. 청중 매퍼를 수정하는 것만으로도 여전히 TLS 오류가 발생했습니다.