PostgreSQL 12 업데이트에서 이어서 논의합니다:
업그레이드 후 사이트에서 이전에는 발생하지 않던 SAML 오류가 표시됩니다:
죄송합니다. 계정 인증 중 오류가 발생했습니다. 다시 시도해 주세요.
오류 로그에는 다음과 같이 표시됩니다:
(saml) Authentication failure! invalid_ticket: OneLogin::RubySaml::ValidationError, http://www.example.com is not a valid audience for this Response - Valid audiences: https://love.public.cat
사이트에 Keycloak SAML 클라이언트를 사용 중입니다. 플러그인에 추가 설정이 필요한 변경 사항이 있었나요? – 참고로 이 플러그인은 환경 변수를 사용하여 멀티 사이트 환경에서 사용하기가 어렵습니다.
Keycloak에 audience 필드를 추가해 보았지만 아무런 변화가 없었습니다. 혹시 아이디어가 있으신가요?
여기서 어떤 아이디어가 있으신가요 @vinothkannans?
전역 설정 또는 환경 변수에서 saml_base_url을 설정하셨나요? /auth/saml/metadata에서 해당 값이 love.public.cat 대신 www.example.com으로 잘못 설정되어 있습니다. 기본적으로 이 설정에 값을 지정할 필요가 없습니다.
아니요, 저는 어디에서도 이를 명시하지 않았습니다. Keycloak 쪽에서 해당 설정과 동등한 항목을 제거해 보았더니 인증이 깨졌습니다. SSO를 제거해 보기도 했는데, 이것도 실패했습니다. Discourse와 Keycloak에서 동일한 SAML 설정을 사용해도 다른 멀티사이트 설치 환경에서는 동일한 동작을 보이지 않기 때문에, 더 조사를 해야 할 것 같습니다. SSO와 어떤 이상한 상호작용이 일어나고 있는 것은 아닌가요? 예를 들어, 특정 시점에서 하나의 인증 방식이 다른 방식을 덮어쓰는 경우가 있는 건가요?
다중 사이트 환경에서 “discourse-saml” 플러그인을 사용해 본 적이 없습니다. 이 플러그인은 다중 사이트와 호환되지 않을 수 있습니다. 여러 사이트에 동시에 SAML 플러그인을 활성화하는 것은 권장하지 않습니다. app.yml 파일에 모든 환경 변수를 설정해 주세요.