以下是我试图解决的问题:
- 我有一个运行在
beta.example.com的ASP.NETCore 3.1 Web 应用,已集成 Identity(目前尚未使用 Identity Server)。用户可以注册、创建个人资料,并通过 Google/Facebook 等方式登录。这是标准的ASP.NET身份验证/授权配置,代码未做实质性修改。 - 我还有一个运行在子域名
forumbeta.example.com的 Discourse 论坛。
我希望用户数据存储由 .NET Core 应用维护,该应用将作为身份提供者(Identity Provider)。当用户尝试登录 Discourse 时,Discourse 应向该 Web 应用请求用户信息(姓名、邮箱及其他可能的属性)。如果用户在 Web 应用中存在且已登录,Discourse 应自动将其登录并允许发帖;如果用户不存在或未登录,则应重定向至应用的登录/注册页面,创建账户或完成注册后,再重定向回 Discourse。
我已就此事做了大量调研,看来需要在 .NET 应用中安装并配置 Identity Server 4,使其具备身份提供者功能。随后,我似乎需要:
- 使用 Discourse 内置的 SSO 功能;
或 - 在 Discourse 中安装 OAuth2 插件并进行配置。
目前我有些困惑,非常希望有经验的同行能指点我下一步该如何操作。网上的相关信息有些过时,我不想浪费数小时走弯路。