证书身份验证插件

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 时客户端要求相同。