证书身份验证插件
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 时的客户端要求相同。