해결하려는 문제는 다음과 같습니다:
beta.example.com에서 Identity(아직 Identity Server는 아님)를 사용하는Asp.netCore 3.1 웹 애플리케이션을 운영 중입니다. 사용자는 등록, 프로필 생성, Google/FB 로그인 등을 수행할 수 있습니다. 코드를 거의 수정하지 않은 표준적인ASP.net인증/인가 구조입니다.- 서브도메인(
forumbeta.example.com)에서 Discourse 포럼을 운영 중입니다.
사용자 저장소(user store)는 dotnet core 애플리케이션에서 유지 관리되기를 원합니다. 즉, 해당 애플리케이션이 Identity Provider(아이디 제공자) 역할을 수행해야 합니다. 사용자가 Discourse에 로그인하려고 할 때, Discourse는 웹 애플리케이션에 사용자의 정보(이름, 이메일, 기타 속성 등)를 요청해야 합니다. 사용자가 웹 애플리케이션에 존재하고 이미 로그인된 상태라면, Discourse는 해당 사용자를 로그인 상태로 처리하고 게시글 작성 권한을 부여해야 합니다. 사용자가 존재하지 않거나 로그인되어 있지 않다면, 사용자는 애플리케이션의 로그인/등록 페이지로 리다이렉트되어 계정을 생성하거나 로그인한 후 다시 Discourse로 리다이렉트되어야 합니다.
이 주제에 대해 많은 자료를 조사해 보았는데, dotnet 애플리케이션에 Identity Server 4를 설치하고 설정하여 Identity Provider로 기능하도록 해야 하는 것으로 보입니다. 그런 다음, 다음 중 하나를 수행해야 할 것 같습니다:
- Discourse의 내장 SSO 기능 사용
또는 - Discourse에 Oauth2 플러그인을 설치하고 설정
현재 이 부분에서 다소 혼란스럽습니다. 웹에 있는 정보가 다소 구식이라 시간 낭비 없이 진행할 수 있도록 경험이 많은 분들의 도움을 받고 싶습니다.