证书身份验证插件

Solr 可以使用 CertAuthPlugin 从客户端证书中提取用户主体。

启用证书身份验证

对于证书身份验证,security.json 文件必须包含一个 authentication 部分,该部分定义了用于身份验证的类。

下面显示了一个示例 security.json

{
 "authentication": {
  "class":"solr.CertAuthPlugin"
 }
}

证书验证

证书验证的部分(包括验证信任链和对等主机名/IP 地址)将在请求到达身份验证插件之前由 Web servlet 容器完成。这些检查在启用 SSL 部分中进行了描述。

除了通过 SSL 属性配置的内容外,此插件不提供其他检查。

用户主体提取

此插件将根据客户端证书中存在的 X500 主题配置请求的用户主体。授权插件需要接受并处理完整的主题名称,例如

CN=Solr User,OU=Engineering,O=Example Inc.,C=US

主题名称中可能存在的标签列表可在RFC-5280,第 4.1.2.4 节中找到。值可能包含空格、标点符号和其他字符。

最佳实践是,在基于内容配置授权之前,验证由您信任的证书颁发机构颁发的证书的实际内容。

使用证书身份验证与客户端(包括 SolrJ)

启用证书身份验证后,所有客户端请求必须包含有效的证书。这与使用 SSL 时的客户端要求相同。