Discourse + Keycloak SSO + SAML 플러그인 + Openid Connect 플러그인 번들을 성공적으로 설정했습니다. 다만 이 완벽한 구성을 어둡게 하는 단 하나의 문제가 있습니다. 바로 로그아웃입니다.
포럼에서 로그아웃을 하면 사용자는 인증이 해제되며, 이 부분은 정상적으로 작동합니다.
그런데 Keycloak에서 열린 세션을 확인해 보면, 포럼을 떠난 사용자의 세션은 삭제되지 않습니다.
이 문제는 로그아웃 URL 설정 때문일 것 같지만, Discourse 쪽인지 Keycloak 쪽인지 정확히 어디에 설정해야 하는지 모르겠습니다.
네! 잘 작동합니다! openid_connect_rp_initiated_logout_redirect 변수를 설정해야 한다는 점을 명확히 하고 싶습니다.
@david 한 가지 더 질문이 있습니다. 매우 중요한 질문입니다.
현재 Keycloak SSO 테스트의 최종 단계에 있으며, 프로토콜을 선택해야 합니다 - SAML 또는 OpenID Connect. OpenID Connect가 더 마음에 들었지만, OpenID Connect를 사용할 때新用户 생성 과정에서 짜증스러운 문제를 발견했습니다.
문제를 이해하기 위해 다른 측면부터 시작하겠습니다. SAML을 사용하여 새로운 포럼 사용자가 생성되면, 사용자는 SSO에서 생성되고 Discourse에서 생성을 위해 투명하게 제출됩니다. 그리고 즉시 활성화됩니다 - 이것이 중요합니다!
즉, Discourse 포럼에서 "Sign Up"을 클릭하면 Keycloak로 이동하여 사용자를 생성하고 이메일을 확인하는 등의 작업을 수행합니다. 그 후, Discourse 포럼으로 이동하면 사용자가 이미 생성되고 활성화된 상태로 자동으로 표시됩니다:
이 메시지가 OpenID Connect와 관련하여 표시되고 있다면, 이는 아이덴티티 제공자(IDP)가 email_verified: false 메시지를 Discourse로 전달했다는 뜻입니다. 상세 디버깅 설정을 활성화하면 모든 인증 데이터가 /logs에 출력되므로 이를 검토해 볼 수 있습니다. Keycloak가 인증 상태를 올바르게 전달하도록 설정할 수 있는 방법이 있기를 바랍니다.