你好,
我们有一个“仅限邀请”的 Discourse 安装。当我们发送邀请时,被邀请者只有在浏览器中存在特定的客户端证书时才能接受邀请。
有任何关于如何实现这一点的线索吗?
此致,
Harmstra
你好,
我们有一个“仅限邀请”的 Discourse 安装。当我们发送邀请时,被邀请者只有在浏览器中存在特定的客户端证书时才能接受邀请。
有任何关于如何实现这一点的线索吗?
此致,
Harmstra
您的 nginx 配置中需要包含类似以下内容:
ssl_client_certificate /path/to/ca.pem;
ssl_verify_client on;
如果该设置仅适用于邀请场景,则需要在包含邀请接受路由的 location 块中配置。
你好 @michaeld,
是否也可以使用证书字段并将其保存为用户实例中的用户字段?例如,如果我们想保存过期日期,可以吗?
这似乎过于复杂了。您的使用场景是什么?
我同意确实如此。
使用场景是:这里有一个组织,使用这些客户端证书对公司进行身份验证。我们试图创建一个 Discourse 实例,仅允许这些公司访问。根据 @michaeld 提供的 nginx 片段,这似乎很简单。
该证书中还包含一个公司编号,我们希望获取该编号并在 Discourse 实例中使其可用。这样,他们可以轻松地彼此找到,并且仅凭公司编号即可识别。
希望现在表达清楚了,如果没有,欢迎随时提问。
哇,这听起来比我想象的没那么荒谬!
你能指望这些公司的人使用公司邮箱吗?那会比需要读取证书的插件简单得多。如果公司编号非常重要,你甚至可以反向映射回公司编号。
您可以通过类似以下的行将证书传递给 Discourse:
proxy_set_header X-Cert-DN: $ssl_client_s_dn;
然后使用某种插件从该请求头中读取该值。