手把手教你利用Ranger对SolrCloud鉴权

Posted 中兴大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手教你利用Ranger对SolrCloud鉴权相关的知识,希望对你有一定的参考价值。


>>>>

这是 中兴大数据 206篇原创文章




背景知识:Solr的安全机制


Solr在5.0之后的版本增加了安全框架,能够对用户进行鉴权与授权,以便对用户进行资源访问的控制。Solr支持基础身份验证、Kerberos(网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务,麻省理工研发)身份验证以及基于角色的用户授权。用户还能够自己扩展身份验证的方式以及授权的方式。


所有认证、鉴权机制是基于保存在Zookeeper上的/security.json来描述。


手把手教你利用Ranger对SolrCloud鉴权

 

以上这个文件描述了Solr的认证机制、授权机制。


认证机制采用solr.BasicAuthPlugin插件,授权采用solr.RuleBasedAuthorizationPlugin插件。


认证部分配置了一个用户名为solr,密码为SolrRocks的用户。


Ranger跟Solr的结合,就是Ranger里面实现了Solr的authorization插件部分,这样就可以进行鉴权了,下文会详细叙述。


    组网说明    


下图为本指南中构建的组网图:


手把手教你利用Ranger对SolrCloud鉴权


RangerAdmin:RangerAdmin服务器。运行在端口6080。


MySQL:mysql服务器,用来保存RangerAdmin的基本数据。运行在缺省端口。


Solr Audit Server:用来保存RangerAdmin 审计日志(Audit)的服务器,运行在6083端口。


Solr Server:需要认证和鉴权的Solr服务器,也就是我们目标管理服务器。运行在缺省的8983端口。


ZooKeeper:用来与Solr Server配合,构建SolrCloud环境,运行在2181端口。


Ranger安装


1
预安装

安装git、maven、gcc、Mysql,这部分不详细描述。另外对Solr的安装、配置,本文也不做描述。


2
clone代码

gitclone https://github.com/apache/incubator-ranger.git


3
编译

mvn-DskipTests=true clean compile package install assembly:assembly


编译成功后,进入target目录,可以看到生成的各个模块包:

手把手教你利用Ranger对SolrCloud鉴权

我们需要用到的是:ranger-0.5.0-admin.tar.gz、ranger-0.5.0-solr-plugin.tar.gz。


4
【Ranger】安装Ranger


Ranger里面的所有模块的安装基本都是修改install.properties,然后运行这个模块的setup.sh(或者enable-**-plugin.sh)完成。


对于Ranger主模块install.properties里面的信息,主要是数据库的用户名密码、已经审计(Audit)方式:

手把手教你利用Ranger对SolrCloud鉴权


5
【Ranger-Solr】Solr的审计库的安装和配置

cd incubator-ranger/security-admin/contrib/solr_for_audit_setup


  • 编辑 install.properties:

手把手教你利用Ranger对SolrCloud鉴权

 

  • 配置完了运行./setup.sh :

手把手教你利用Ranger对SolrCloud鉴权

 

  • 在install_notes.txt里面可以看到,如何在哪边启动审计专用的Solr。实际启动的命令为:

/opt/solr/ranger_audit_server/scripts/start_solr.sh


6
运行RangerAdmin


  • 在终端中输入命令启动RangerAdmin:

Ranger-adminstart


  • 在浏览器中输入:http://localhost:6080可以看到如下界面:

手把手教你利用Ranger对SolrCloud鉴权


  • 输入用户名/密码:admin/admin 就可以登录进入。

手把手教你利用Ranger对SolrCloud鉴权


Solr部分配置


1
【Ranger】在Ranger中创建Service


在RangerAdmin的界面中,点几Solr后面的+,增加服务。

手把手教你利用Ranger对SolrCloud鉴权

  • 名称设置为solrdev,注意:这个地方的名称需要和下面设置的solrplugin中install.properties中配置的一致

  • 用户名密码为ranger/ranger

  • Solr URL设置为:http://localhost:8983/solr/

(注:这个时候如果点几Test Connection是失败的,忽略这个错误。)


2
配置Solrdev的策略


手把手教你利用Ranger对SolrCloud鉴权


3
配置激活插件


要支持Solr,需要使solr插件可用:


  • 解压ranger-0.5.0-solr-plugin.tar.gz


  • 进入解压目录,配置install.properties.

手把手教你利用Ranger对SolrCloud鉴权


  • 运行:enable-solr-plugin.sh


4
【Solr】配置security.json


根据Solr的安全机制部分的介绍,我们可以实现不同的授权插件,来完成Solr的授权功能。Ranger就是通过实现Solr的授权插件来完成注入,以能够提供授权、审计能力。


需要配置security.json,将授权部分修改为Ranger的实现。Ranger的授权是通过类org.apache.ranger.authorization.solr.authorizer.RangerSolrAuthorizer来实现的。


手把手教你利用Ranger对SolrCloud鉴权

以上配置说明了用户认证用的是Solr的BasicAuthPlugin来进行,常用的还有Kerberos认证。


运行如下命令将此文件上传到zk中:

./zkcli.sh-zkhost zk:2181 -cmd putfile /security.json ./security.json


HDFS部分配置


1
【Ranger】在Ranger中创建service


手把手教你利用Ranger对SolrCloud鉴权

  • 注意Service名称,需要和此插件的REPOSITORY_NAME一致,如此出为hadoopdev

  • Username/Password设置Hadoop机器上的用户名

  • Authentication Type有两种:Simple和Kerberos。此出我们设置的为Simple,也就是采用Hadoop所在的主机的用户名来认证、授权


2
配置策略


策略部分配置用户的权限。由于采用的是Simple方式,则用户是Hadoop主机上的用户。可以配置用户的读、写、运行等权限。


3
一些额外的准备工作


需要运行如下命令:

ln-s /usr/local/hadoop/etc/hadoop/

/usr/local/hadoop/conf


4
配置激活插件


要支持HDFS,需要使HDFS插件可用:


  • 解压ranger-0.5.0-hdfs-plugin.tar.gz 到 /usr/local/ranger-hdfs下


  • 进入解压目录,配置install.properties:

 手把手教你利用Ranger对SolrCloud鉴权


  •  运行:enable-hdfs-plugin.sh


5
将库拷贝到Hadoop目录


由于脚本里面没有自动copy库,需要手动copy(这个地方不能根据Ranger的安装指导来,0.5版本的指导这个地方描述错误):


cp /usr/local/ranger-hdfs/lib/ranger-hdfs-plugin-impl/*.jar/usr/local/hadoop/share/hadoop/hdfs/lib/


启动Ranger及各模块


1
启动审计用Solr服务器

/opt/solr/ranger_audit_server/scripts/start_solr.sh


2
启动RangerAdmin

Ranger-admin start


3
启动待鉴权的Solr服务器

/opt/solr/bin/solr start -f -z [zkhost]:[zkport]


4
启动Hadoop

start-dfs.sh

start-yarn.sh


    Demo    


首先我们不提供用户名密码来进行查询:

手把手教你利用Ranger对SolrCloud鉴权


下面我们提供上面配置的用户名密码(solr/SolrRocks)再请求:

手把手教你利用Ranger对SolrCloud鉴权


浏览器中打开http://localhost:6080/index.html#!/reports/audit/bigData,可以看到审计日志信息:

手把手教你利用Ranger对SolrCloud鉴权


参考文献

  • https://cwiki.apache.org/confluence/display/solr/Authentication+and+Authorization+Plugins

  • https://cwiki.apache.org/confluence/display/RANGER/Install+and+Configure+Solr+for+Ranger+Audits+-+Apache+Ranger+0.5?src=contextnavpagetreemode、

  • http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html



以上是关于手把手教你利用Ranger对SolrCloud鉴权的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你用Java实现一套简单的鉴权服务(SpringBoot,SSM)(未完待续...)

使用ranger对kafka进行鉴权

Ranger使用solrCloud存储审计日志

手把手教你前后分离架构 系统认证鉴权实现

手把手教你利用Pyecharts库对IP代理数据进行数据可视化分析

手把手教你利用爬虫爬网页(Python代码)