Solr学习笔记(3)-Solr Admin UI 授权插件配置

举报
隔壁老汪 发表于 2022/06/23 23:08:07 2022/06/23
【摘要】 http://lucene.apache.org/solr/guide/7_7/basic-authentication-plugin.html#enable-basic-authentication Solr具有支持用户身份验证和授权的安全框架。这允许验证用户的身份并限制对solr集群中资源的访问。 Solr包含一些现成的插件...

http://lucene.apache.org/solr/guide/7_7/basic-authentication-plugin.html#enable-basic-authentication

Solr具有支持用户身份验证和授权的安全框架。这允许验证用户的身份并限制对solr集群中资源的访问。

Solr包含一些现成的插件,并且可以使用下面描述的身份验证和授权框架开发其他插件。

所有身份验证和授权插件都可以与SOLR一起工作,无论它们是在solrcloud模式下运行还是在独立模式下运行。所有身份验证和授权配置(包括用户和权限规则)都存储在名为security.json的文件中。在独立模式下使用solr时,此文件必须位于$solr_主目录中(通常为server/solr)。使用solrcloud时,此文件必须位于ZooKeeper中。

下面的部分介绍如何启用security.json插件,并将它们放置在适合您操作模式的位置。

使用security.json启用插件

初始化任何类型的安全插件所需的所有信息都存储在security.json文件中。此文件包含两个部分,每个部分用于身份验证和授权。


  
  1. Sample security.json
  2. {
  3. "authentication" : {
  4. "class": "class.that.implements.authentication"
  5. },
  6. "authorization": {
  7. "class": "class.that.implements.authorization"
  8. }
  9. }

/security.json文件在SOLR实例出现之前需要位于正确的位置,因此SOLR启动时启用了安全插件。有关如何使用security.json和solr的信息,请参阅下面的部分。

根据所使用的插件,其他信息将存储在security.json中,例如用户信息或创建角色和权限的规则。这些信息是通过Solr提供的每个插件的API添加的,或者在定制插件的情况下,通过您设计的方法添加的。

下面是一个更详细的security.json示例。在此,启用了基本身份验证和基于规则的授权插件,并添加了一些数据:


  
  1. {
  2. "authentication":{
  3. "class":"solr.BasicAuthPlugin",
  4. "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}
  5. },
  6. "authorization":{
  7. "class":"solr.RuleBasedAuthorizationPlugin",
  8. "permissions":[{"name":"security-edit",
  9. "role":"admin"}],
  10. "user-role":{"solr":"admin"}
  11. }}

在solr中使用security.json

在Solrcloud模式下

在配置solr使用身份验证或授权插件时,需要将security.json文件上载到zookeeper。以下命令在文件上载时写入文件-您也可以上载已在本地创建的文件。

>server/scripts/cloud scripts/zkcli.sh-zkhost localhost:2181-cmd put/security.json

'“authentication”:“class”:“org.apache.solr.security.kerberosplugin”'

请注意,此示例定义了用于身份验证的kerberosplugin。您将要根据您使用的插件修改此部分。

这个例子在命令行中也定义了security.json,但是您也可以在本地定义一个文件并将其上载到zookeeper。

根据您使用的身份验证和授权插件,您可能将用户信息存储在security.json中。如果是这样,我们强烈建议您在ZooKeeper节点中实现访问控制。有关如何启用此功能的信息,请参见ZooKeeper访问控制部分。

一旦security.json被上传到zookeeper,您应该使用适当的API来更新它。您可以手动编辑它,但必须注意删除任何版本数据,以便在所有ZooKeeper节点上对其进行正确更新。版本数据位于security.json文件的末尾,并将以字母“v”后跟数字的形式显示,如“v”:138。

在独立模式下

在独立模式下运行solr时,需要创建security.json文件,并将其放在$solr_主目录中进行安装(这与您找到solr.xml的位置相同,通常是server/solr)。

如果您使用的是遗留的扩展和分发,那么您将需要在集群的每个节点上放置security.json。

您可以使用身份验证和授权API,但是如果您使用的是旧的伸缩模型,则需要在每个节点上分别发出相同的API请求。如果愿意,还可以手动编辑security.json。

身份验证插件

身份验证插件通过对传入请求进行身份验证,有助于保护solr的端点。自定义插件可以通过扩展authenticationPlugin类来实现。

身份验证插件由两部分组成:

服务器端组件,它使用插件中定义的机制(如kerberos、basic auth或其他)截取并验证传入到solr的请求。

客户端组件,即httpclientconfigurer的扩展,它允许solrj客户端使用服务器理解的身份验证机制向安全的solr实例发出请求。

启用插件

在/security.json中指定身份验证插件,如下例所示:


  
  1. {
  2. "authentication": {
  3. "class": "class.that.implements.authentication",
  4. "other_data" : "..."}
  5. }

在初始化期间,security.json的身份验证块中的所有内容都将作为插件的映射进行传递。

身份验证插件也可以通过在启动期间传入-dauthenticationplugin=<plugin class name>与独立的solr实例一起使用。

可用的身份验证插件

Solr具有以下身份验证插件的实现:

文章来源: blog.csdn.net,作者:隔壁老瓦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wxb880114/article/details/90410000

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。