限制SOLR中的删除集合操作

限制SOLR中的删除集合操作,solr,solr8,Solr,Solr8,我有两个SOLR用户——UserA和UserB。我想限制一些SOLR集合的集合访问权限,以便只有UserA可以访问这些集合。我运行了以下命令来实现它: 使用用户名绑定用户角色 curl -u <<admin_user>>:<<admin_user_password>> -H 'Content-type:application/json' -d '{​​​​​​​ "set-user-role" : {​​​​​​​

我有两个SOLR用户——UserA和UserB。我想限制一些SOLR集合的集合访问权限,以便只有UserA可以访问这些集合。我运行了以下命令来实现它:

使用用户名绑定用户角色

curl -u <<admin_user>>:<<admin_user_password>> -H 'Content-type:application/json' -d '{​​​​​​​
   "set-user-role" : {​​​​​​​
                      "userA": ["build","my-rule"]}​​​​​​​
}​​​​​​​'
http://<<solr-host>>:<<solr-port>>/solr/admin/authorization
curl-u:-H'内容类型:application/json'-d'{​​​​​​​
“设置用户角色”:{​​​​​​​
“userA”:[“构建”,“我的规则”]}​​​​​​​
}​​​​​​​'
http://:/solr/admin/authorization
更新收藏权限

    curl --user <<admin_user>>:<<admin_user_password>>  -H 'content-type:application/json' -d '{
"set-permission": {"name":"my-collection-rules","collection": ["collection", "collection2"],
 "path":"/*","role": "my-rule"}}' http://<<solr-host>>:<<solr-port>>/solr/admin/authorization
curl--user:-H'内容类型:application/json'-d'{
“设置权限”:{“名称”:“我的收藏规则”,“收藏”:[“收藏”,“收藏2”],
“路径”:“/*”,“角色”:“我的规则”}}'http://:/solr/admin/authorization

我观察到,在运行这些命令之后,只有UserA能够使用selecthandler访问上述集合中的数据,UserB在查询数据时出现403错误,这是意料之中的。但是UserB仍然能够删除集合。是否有一种方法可以限制UserA的删除权限,使UserB无法删除属于UserA的集合?

任何管理任务都要通过
/admin/collections
端点执行。您还应该为该端点添加自定义规则,而不仅仅是为特定于集合的端点(在
/collections
下提供服务)添加自定义规则。您有任何示例说明/admin/collections的自定义规则如何帮助限制对特定集合的访问吗?我尝试了下面的命令,但无效:curl--user:-H'内容类型:application/json'-d'{“set permission”:{“name”:“my-collection-rules2”,“params”:{“action”:[“DELETE”]},“collection”:[“collection”,“collection2”],“path”:“/admin/collections”,“role”:“my rule”}'http://:/solr/admin/authorization据我所知,您不能将管理调用限制到特定的集合-它们是关于创建、删除和更改有关集合的系统信息。但是我已经很长时间没有使用这个功能了,所以这可能取决于你想要实现什么。好的,因此,基本上这是一个技术可行性问题。您应该能够将
名称
参数与
操作
参数一起限制,如自定义权限示例所示:-这样,您将仅为特定用户的特定集合授予访问特定操作的权限。如果collection api中的所有方法都使用
name
来标识集合(我没有选中),那么您应该能够通过限制该参数让用户执行与特定集合相关的所有任务。