OAuth2를 활용한 Discourse SSO

GitHub OAuth를 사용하여 SSO를 설정하고 싶습니다. 사용자가 GitHub를 통해 제 사이트에 로그인하면, 동시에 Discourse에도 로그인되도록 해야 합니다. 사이트에는 Discourse 댓글이 내장되어 있습니다.

어떻게 진행해야 할까요?

자체 사이트와의 OAuth2 연결을 위해 이 플러그인을 사용할 수 있습니다.

"GitHub로 로그인"은 Discourse에 내장되어 있으며, 설정 방법은 아래 링크에서 확인할 수 있습니다:

여전히 혼란스럽습니다.

명확하지 않았다면, 저는 다음 환경을 가지고 있습니다.

GitHub OAuth가 있는 웹사이트.
GitHub OAuth가 있는 Discourse.

둘 다 다른 로그인 방법은 없습니다.
사용자가 제 웹사이트에 로그인하면, Discourse에도 동시에 로그인되어 있어야 합니다.

제가 놓치고 있는 것은 그 둘 사이의 연결고리입니다. 사용자가 제 웹사이트에서 GitHub OAuth를 통해 인증할 때, 어떻게 하면 Discourse에도 로그인시킬 수 있을까요?

누군가 웹사이트에 로그인할 때, 발생하는 통신은 오직 GitHub와 웹사이트 사이에서만 이루어집니다.

즉,
웹사이트가 GitHub를 호출하여 해당 사용자가 GitHub의 사용자 데이터베이스에 존재하는지 확인합니다.
GitHub는 요청에 따라 ‘예’ 또는 '아니오’로 응답하고, 사용자 데이터 또는 인증 토큰을 반환합니다.
이제 사용자는 웹사이트에 로그인된 상태가 됩니다.

이 과정에서 Discourse는 전혀 관여하지 않습니다. 따라서 해당 사용자가 방금 로그인했다는 사실을 Discourse에 알리고, Discourse에도 함께 로그인되도록 처리하는 방법이 필요합니다.

즉, 웹사이트 로그인과 동시에 Discourse 로그인을 큐에 추가하여, 사용자가 로그인/로그아웃한 시점을 Discourse가 인식할 수 있는 메커니즘이 필요합니다.

Auth0는 이를 기본적으로 잘 처리해 줍니다.
또 다른 방법으로는 Discourse를 SSO 서버로 사용하는 것입니다.

답변 감사합니다!

제가 사용하는 인증 플러그인이 실제로는 OAuth를 통해 작동하며 JWT를 발급한다는 것을 파악했습니다. discourse-jwt가 제게 잘 맞을 것 같습니다.