你好!
@david 请帮帮我,这位大好人!))))
我已经成功配置了 Discourse + Keycloak SSO + SAML 插件 + OpenID Connect 插件的组合。唯一美中不足的是登出功能。
当我从论坛登出时,用户会被取消授权,这部分工作正常。
但查看 Keycloak 上的活跃会话时,发现该用户的会话并未被删除。
我怀疑这与登出 URL 的设置有关,只是不确定是在 Discourse 还是 Keycloak 中配置。
我在 Keycloak 上的 SAML 设置如下:
我在 Keycloak 上的 OpenID Connect 设置如下:
david
(David Taylor)
2
OpenID Connect 插件支持 RP 发起的注销。Keybase 是否支持该功能?
1 个赞
现在需要弄清楚它是什么,以及 Keycloak 中是否包含它。
openid-connect 插件中的这个选项在哪里配置?
谢谢!我会尝试用谷歌搜索 Keycloak 对此问题的解答。
是的!它运行正常!我想澄清的是,必须设置 openid_connect_rp_initiated_logout_redirect 变量。
@david 我还有一个问题,一个很重要的问题。
目前我正处于 Keycloak SSO 测试的最后阶段,需要在 SAML 和 OpenID Connect 之间选择一个协议。
我更喜欢 OpenID Connect,但目前在使用 OpenID Connect 创建新用户时发现了一个令人烦恼的问题。
为了说明这个问题,我先从另一端说起。当使用 SAML 创建新的论坛用户时,用户会在 SSO 中创建,并透明地提交给 Discourse 进行创建。而且用户会立即被激活——这一点非常重要!
也就是说,当我在 Discourse 论坛上点击“注册”时,我会跳转到 Keycloak,在那里创建用户、确认邮箱等。之后,我会被重定向回 Discourse 论坛,此时用户已经创建完成并且已激活,自动完成:
但如果我使用 OpenID Connect 插件,那么在创建新用户时,会出现以下窗口:
这非常不方便!这是为了什么?毕竟用户在 SSO 上创建账户时已经确认了邮箱。有没有办法摆脱这个窗口?
提前非常感谢!
david
(David Taylor)
7
如果该消息出现在 OpenID Connect 中,则意味着身份提供商向 Discourse 传递了 email_verified: false 的消息。如果您启用详细调试设置,它将把所有认证数据打印到 /logs 供您检查。希望有一种方法可以告诉 Keycloak 正确传递验证状态。
1 个赞
david
(David Taylor)
9
在 SAML 插件中,这由全局设置 saml_default_emails_valid 控制(默认为 true)。
我找到解决方案了!))))
在 Keycloak 中:
禁用这些选项:
2 个赞
david
(David Taylor)
11
只要您 100% 确定 Keycloak 已验证过邮箱,那就没问题。如果邮箱未经过验证,这样做会让您的 Discourse 站点面临攻击风险。
1 个赞
是的,没错……
现在测试新场景——两个论坛共用一个 Keycloak OpenID 客户端 ))
david
(David Taylor)
14
我不太熟悉 Keycloak,但这两种方案听起来都可行。如果你之后想为每个论坛设置独立的访问控制,将它们作为独立的客户端可能会更方便 
2 个赞