You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solr 9证书认证配置异常求助:UI及curl授权问题排查

Solr 9 证书认证配置问题排查

当前配置文件

使用的security.json内容如下:

{"authentication": {"class":"solr.CertAuthPlugin","blockUnknown": true},"authorization": {"class": "solr.RuleBasedAuthorizationPlugin","user-role": {"CN = ***, O = ***, OU = **, L = **, ST = **, C = ***": ["admin"]},"permissions": [{"name": "read", "role": "dev"},{"name": "coll-read", "path": "/select", "role": "*"},{"name": "all","role": "admin"}]}}

遇到的问题

  • 未配置authorization块时,curl命令可正常完成认证,但Solr UI无法正常使用
  • 添加authorization块后,curl命令执行失败,返回403错误,尝试使用证书主体和颁发者值作为用户名均无效

问题分析与解决建议

问题1:无授权块时UI无法使用

仅启用CertAuthPlugin但未配置授权规则时,认证通过的用户不会被分配任何角色。而Solr UI需要读取配置、访问核心列表等操作权限,此类权限默认需要特定角色(如admin)才能触发,因此即使认证通过,也会因权限不足导致UI无法正常工作。

问题2:添加授权块后curl返回403

核心问题是user-role映射中的证书主体格式与Solr实际解析的内容不匹配:

  1. 确认证书主体的精确格式:Solr通过CertAuthPlugin解析的证书主体严格遵循X.500格式,需确保user-role中的键与解析结果完全一致。可通过两种方式查看实际识别的用户名:
    • 查看Solr日志,认证过程中会输出当前用户的标识信息
    • 临时关闭blockUnknown,在无授权块的情况下调用/admin/info/system接口,返回结果的user字段即为解析后的用户名
  2. 修正映射格式:常见错误是主体字符串中多余的空格,比如CN = ***应改为CN=***(等号前后无空格),这是X.500主体的标准格式。将user-role中的键替换为与日志/接口返回完全一致的字符串,示例:
    "user-role": {"CN=***,O=***,OU=**,L=**,ST=**,C=***": ["admin"]}
    
  3. 验证权限规则:确认permissions规则覆盖了你的curl请求路径——如果是写操作,admin角色已拥有all权限;如果是查询操作,coll-read规则允许所有角色访问/select路径,应能正常访问。

内容的提问来源于stack exchange,提问作者user16027182

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:01:17