SSO 로그인 페이지가 표시되지 않음

공식 SSO 스레드를 따라 진행했는데, 통합 로그인 페이지가 표시되지 않습니다.

오직 oAuth만 활성화했을 때는 정상적으로 작동했습니다. “Auth0로 로그인” 버튼을 사용하여 문제없이 로그인할 수 있었습니다. SSO를 활성화했을 때는 Auth0 페이지로 리다이렉트되지만, "invalid_request: Invalid parameter: client_id must be a string"이라는 오류 페이지만 표시됩니다. 가장 먼저 떠오르는 생각은 "sso_url"을 잘못 입력하고 있다는 것입니다. 실제로 그 자리에 무엇을 입력해야 하는지 정확히 모르기 때문에 "https://.auth0.com/authorize"를 입력해 두었습니다.

이런 문제를 겪어 보신 분이나, 어떤 아이디어가 있으신 분이 계신가요?

sso url은 SSO 제공자 사이트에서 Discourse SSO 요청을 처리하도록 구성한 URL로 설정해야 합니다.

Discourse의 SSO 구현은 OAuth를 사용하지 않습니다. 이것이 혼란의 원인일 수 있습니다.

SSO 제공자 사이트에서 어떤 언어나 프레임워크를 사용하고 있나요? 이미 사용할 수 있는 SSO 구현이 있을 수 있습니다.

내 SSO 제공자는 Auth0.com입니다. 이 주제를 따라 oAuth2를 설정한 후 SSO를 추가하려고 시도했습니다.

아마도 Auth0 측을 더 자세히 살펴봐야 할 것 같습니다. 저는 애플리케이션과 도메인(테넌트)만 설정했을 뿐, SSO에 관한 내용은 찾지 못했기 때문입니다.

말씀이 맞습니다. Auth0와 Discourse SSO는 완전히 별개의 시스템입니다. 사이트에서 두 가지를 동시에 활성화할 수 없습니다. 사이트에서 Auth0가 올바르게 설정되어 있는지 확인하는 것만으로도 충분해 보입니다.

Discourse 설정을 처음 하는 사용자로서 SSO 기능을 오해하고 있는 당신의 혼란에 공감합니다. 관련 토픽이 있기는 하지만, 특히 일부 SSO 설정이 Discourse를 SSO 제공자로 사용하는 경우(예: Auth0를 사용하려는 방식)에 적용되는 것이기 때문에, 그 차이를 잘 전달하지는 못했습니다.

SSO 기능에 외부 ID 제공자를 사용하려면 discourse-sso-oidc-bridge와 같은 중개 서비스가 필요합니다. 저는 오늘 Auth0 대신 Keycloak로 이를 성공적으로 설정했는데, 대략적인 과정은 비슷할 것입니다.

Google/Facebook/GitHub와 같은 소셜 로그인처럼 단순히 Auth0를 사용하려는 경우라면, discourse-openid-connect 플러그인을 사용하는 것이 적절할 것입니다. 해당 플러그인을 설치하고 제공되는 설정을 사용해야 하며, 저는 별도의 SSO 기능이 추가되기 전에 Keycloak와 함께 이 방법을 시도해 본 적 있습니다. 이 경우 중간에 브리지가 필요하지 않으며, 원하시는 결과를 얻을 수 있을 것입니다(사용자가 다시 로그인할 때만 Discourse가 계정 세부 정보를 동기화하므로, 로그인 시 계정 정보의 업데이트/동기화를 원하지 않는다면 말이죠).

사용자는 계정 생성을 prompted 받게 되지만, 모든 양식 필드는 인증 제공자에서 자동으로 채워집니다. 이 플러그인의 향후 업데이트에서는 기존 SSO 기능처럼(단일 로그인 옵션인 경우) 계정 생성 과정을 건너뛰고 바로 계정을 생성하도록 할 예정입니다.