SSO 群组无需完全覆盖

是否可以通过 SSO 使用群组,而无需覆盖所有现有群组?
例如,我想从外部网站传递两种类型的成员群组——比如 group_a 和 group_b。
但是,我不希望用户失去他们当前的 trust_level 群组,而且有些用户拥有自己的群组,这些群组允许他们访问私有分类。

通过阅读这里的论坛帖子和手册,似乎选择 SSO 群组将会覆盖并将用户从所有现有群组中移除,除非 SSO 也会传递他们当前的群组。这是一个问题,因为这意味着我必须在外部网站的数据库中手动更新每个用户的当前群组。

我是不是漏掉了什么?
非常感谢大家。

1 个赞

addremove 参数完全符合您的需求。

3 个赞

谢谢!那么使用 add_groups 不会覆盖或移除用户当前所在的组,对吗?我仍然可以手动创建并启用组吗?

2 个赞

如果启用了此功能,且用户在 SSO 端被从群组中移除,但未将其添加到 remove_groups 列表中,那么该用户在 Discourse 站点上是否会保留成员身份?

你说的“这个”是指 groups,还是指单独的 add_groupsremove_groups

你调用的具体参数和端点是什么?

那些单独的个体。我其实还没开始做什么,只是在尝试理解。

因此,SSO 通常发生在登录流程中。

所有 groupsadd_groupsremove_groups 参数都是可选的,用于处理组成员资格。

这与用户是否在网站上拥有有效账户无关,除非你将所有网站类别设置为仅允许特定组的成员阅读。

抱歉,让我重新表述。假设我们的 SSO 中有 1200 个组。如果我们要在不使用 sso overrides groups 的情况下同步组成员资格,那么如果某人是三个组的成员,就需要在 add_groups 中列出这三个组,并在 remove_groups 中列出其余的 1197 个组(以防他们之前属于这 1197 个组中的某一个且已被移除)?

在您这种情况下,假设您的 Discourse 实例中没有其他手动分组,您应该启用 sso overrides groups 站点设置,并在 SSO 载荷的 groups 参数中传递用户当前所属的 3 个分组。

登录时,我们将确保用户仅属于这 3 个分组,而不属于任何其他手动分组。

好的,这就引出了我的问题:What happens to trust level and staff groups when using sso overrides groups? :slight_smile: