启用SSO后,员工和版主的登录

我在公司的 Discourse 站点上启用了 SSO,允许来自我们应用程序的外部用户登录。但是,一些拥有公司邮箱的员工需要作为版主或管理员访问。由于这些员工未在应用程序中注册,我们无法为他们创建 SSO 帐户。

是否有内置解决方案可以单独处理他们的登录,以便他们可以使用公司邮箱进行身份验证,即使已为外部用户启用 SSO?

1 个赞

前往 https://forum.example.com/u/admin-login

1 个赞

@RGJ 感谢您的快速回复。

但据我所知,这只对管理员有效,对吗?我想为员工和版主(即超级用户但非管理员)进行登录。

恐怕这对非管理员不起作用。

他们不能用 sso 登录为普通用户,然后你再授予他们管理员权限吗?

1 个赞

我唯一的问题是它们无法存在于SSO中

如果我理解你的意思,那么你就不能使用 sso。第一个 S 代表 Single(单一)。我认为你需要使用多个 OAuth2 登录。

为什么你们的管理员不能使用你们的身份验证系统?

3 个赞

我没有解决方案,但我似乎记得过去曾出现过几次完全相同的问题。遗憾的是,您无法将用户设为版主,也无法通过 /u/admin-login 路由授予他们访问网站的权限。

如果相关的话,您使用的是什么进行 SSO?是 DiscourseConnect、OAuth2 还是 OpenID Connect?

3 个赞

@simon,我正在使用 DiscourseConnect 进行 SSO

我们希望我们的管理员、员工和版主使用他们的公司电子邮件登录。但是,我们当前的单点登录(SSO)机制依赖于基于手机号码 OTP 的身份验证,并且用户必须在我们的应用程序上使用他们的电子邮件 ID 注册,这对于这些用户来说是不可行的。

虽然我们可以实施自定义处理程序来将某些电子邮件列入我们的 SSO 白名单,但我们正在探索一种更现成的解决方案。例如,如果 SSO 可以与本地登录共存,我们可以禁用普通用户的本地登录,同时允许管理员和外部用户使用他们的电子邮件和密码登录。不幸的是,我认为 SSO 和本地登录不能以这种方式共存。

这是正确的。启用 DiscourseConnect 后,用户只能通过 DiscourseConnect 身份验证提供商站点登录。

我曾认为 /u/admin-login 路由适用于所有员工(管理员和版主),但现在查看发现它只允许管理员绕过 DiscourseConnect 登录。也许可以开发一个插件,允许自定义组的成员使用 admin-login 方法登录,但这可能不如找到一种方法让外部用户登录到你的 SSO 身份验证站点。

这听起来没错。最好的解决方案是让您的 SSO 生效。对于您的 SSO 无法为您的员工工作的“不可行性”来说,这似乎没有多大意义,但也许这就是我自甘堕落的原因。:joy:(但您的员工不使用您的应用程序吗?如果他们使用,通过 API 添加他们的电子邮件地址应该足够容易了)。

但做出糟糕决定的人让我得以维生!当我没有劝说人们使用现有功能时,我真正喜欢做的是让 discourse 做一些它并非为之设计的事情(例如安装 discourse)。

我很乐意开发或帮助您开发一个插件,该插件可以使 /u/admin-login 路由(或另一个路由)对您的团队组的成员(自动包含您公司电子邮件的用户)生效,并创建一个他们可以访问的页面,输入他们的电子邮件以获取登录链接。

也许它甚至可以自动将 VPN 上的匿名用户重定向到登录页面,或者做其他事情,让您的员工使用起来更无缝。

1 个赞