Aqui está o problema que estou tentando resolver:
- Tenho um aplicativo web
Asp.netCore 3.1 com Identity (ainda não Identity Server) rodando embeta.example.com. Os usuários podem se registrar, criar perfis, fazer login com Google/FB, etc. Autenticação/Autorização padrão doASP.net, sem modificações reais no código. - Também tenho um fórum Discourse rodando em um subdomínio (
forumbeta.example.com).
Gostaria que o repositório de usuários fosse mantido no aplicativo dotnet core. O aplicativo será o Provedor de Identidade. Quando um usuário tentar fazer login no Discourse, o Discourse deve solicitar ao aplicativo web as informações do usuário (nome, e-mail, possivelmente outros atributos). Se o usuário existir no aplicativo web e já estiver logado, o Discourse deve efetuar o login dele e permitir que ele publique. Se o usuário não existir ou não estiver logado, ele deve ser redirecionado para a página de login/registro do aplicativo, onde poderá criar uma conta ou se cadastrar e, em seguida, ser redirecionado de volta ao Discourse.
Tenho lido bastante sobre o assunto e parece que preciso instalar e configurar o Identity Server 4 no aplicativo dotnet, o que permitirá que ele se torne um Provedor de Identidade. Em seguida, aparentemente, preciso:
- Usar a funcionalidade de SSO integrada do Discourse
OU - Instalar um plugin Oauth2 no Discourse e configurá-lo
Neste ponto, estou um pouco perdido e adoraria contar com a ajuda de alguém experiente para me orientar sobre como proceder. As informações na web estão um pouco desatualizadas e não quero perder horas seguindo um caminho sem saída.