如何使用SAML配置Cloudera Manager的身份验证

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢

1.文档编写目的


在前面Fayson介绍了《如何使用Shibboleth搭建IDP服务并集成OpenLDAP》,通过Shibboleth的IDP服务提供SAML认证服务,本篇文章主要介绍如何使用SAML配置Cloudera Manager的身份验证。下图为CM集成SAML认证流程:

  • 内容概述

1.环境准备

2.CM配置SAML及注册IDP

3.登录验证

4.总结

  • 测试环境

1.CM和CDH版本为5.13.1

2.Shibboleth IDP版本为3.3.2

2.环境准备


1.获取IDP服务的metadata.xml文件

在浏览器输入如下地址获取IDP服务的metadata.xml文件

http://ip-172-31-21-83.ap-southeast-1.compute.internal/idp/shibboleth

(可左右滑动)

在CM节点上执行如下目录将如上xml内容保存至shibboleth.xml文件中

[root@ip-172-31-16-68 ~]# mkdir -p /opt/cloudera/shibboleth2
[root@ip-172-31-16-68 ~]# cd /opt/cloudera/shibboleth2/
[root@ip-172-31-16-68 shibboleth2]# 
[root@ip-172-31-16-68 shibboleth2]# curl http://ip-172-31-21-83.ap-southeast-1.compute.internal/idp/shibboleth -o shibboleth.xml

(可左右滑动)

将shibboleth.xml文件中有关ArtifactResolutionService和SingleSignOnService标签的Location地址由https修改为http

2.将IDP服务器上的秘钥文件同步至CM节点

将IDP服务器上/opt/shibboleth-idp/credentials/目录下的idp-backchannel.p12文件拷贝至CM节点,执行如下命令生成keystore文件

[root@ip-172-31-16-68 shibboleth2]# scp ip-172-31-21-83.ap-southeast-1.compute.internal:/opt/shibboleth-idp/credentials/idp-backchannel.p12 .
[root@ip-172-31-16-68 shibboleth2]# keytool -v -importkeystore -srckeystore idp-backchannel.p12 -srcstoretype PKCS12 -destkeystore temp.keystore -deststoretype JKS

(可左右滑动)

查看秘钥文件的前面信息

[root@ip-172-31-16-68 shibboleth2]# keytool -list  -v -keystore temp.keystore -storepass 123456

(可左右滑动)

3.在/opt/cloudera目录下创建assigin_role.sh文件用户SAML登录成功后调用分配用户角色

[root@ip-172-31-16-68 ~]# vim /opt/cloudera/assigin_role.sh 
#!/bin/bash

user=$1
echo $user > /tmp/assigin_role.log
if [ "$user" == "admin" ]; then
exit 0;
elif [ "$user" == "josh" ]; then
exit 5;
else exit -1
fi

(可左右滑动)

修改文件属主及执行权限

[root@ip-172-31-16-68 ~]# chown cloudera-scm. /opt/cloudera/assigin_role.sh 
[root@ip-172-31-16-68 ~]# chmod +x /opt/cloudera/assigin_role.sh 
[root@ip-172-31-16-68 ~]# ll /opt/cloudera/assigin_role.sh 

(可左右滑动)

3.CM配置SAML


1.使用管理员登录CM,点击“管理”->“设置”

2.进入设置页面选择“外部身份验证”

3.在搜索目录输入SAML,配置相应的SAML信息

4.完成以上配置后,保存更新并重启cloudera-scm-server服务

[root@ip-172-31-16-68 ~]# systemctl restart cloudera-scm-server

(可左右滑动)

5.服务重启成功后在浏览器访问CM地址显示如下

由于CM服务未在IDP服务注册,所以访问有限制。

4.注册IDP


1.获取Cloudera Manager的metadata.xml文件,在IDP服务器上执行如下命令

[root@ip-172-31-21-83 ~]# cd /opt/shibboleth-idp/metadata/
[root@ip-172-31-21-83 metadata]# curl http://ip-172-31-16-68.ap-southeast-1.compute.internal:7180/saml/metadata -o cm_saml_metadata.xml

(可左右滑动)

2.编辑/opt/shibboleth-idp/conf/metadata-providers.xml,在MetadataProvider标签内增加如下配置

<MetadataProvider id="LocalMetadata"  xsi:type="FilesystemMetadataProvider" metadataFile="/opt/shibboleth-idp/metadata/cm_saml_metadata.xml"/>

(可左右滑动)

3.编辑/opt/shibboleth-idp/conf/attribute-filter.xml,将内容修改为如下配置

<AttributeFilterPolicy id="example1">
  <PolicyRequirementRule xsi:type="Requester" value="https://ip-172-31-21-83.ap-southeast-1.compute.internal/idp/shibboleth" />
  <AttributeRule attributeID="eduPersonPrincipalName">
    <PermitValueRule xsi:type="ANY" />
  </AttributeRule>
  <AttributeRule attributeID="uid">
    <PermitValueRule xsi:type="ANY" />
  </AttributeRule>
  <AttributeRule attributeID="mail">
    <PermitValueRule xsi:type="ANY" />
  </AttributeRule>
</AttributeFilterPolicy>

(可左右滑动)

主要修改PolicyRequirementRule属性的value值为EntityID值。

4.修改完以上配置后,重启Tomcat服务

[root@ip-172-31-21-83 bin]# sh shutdown.sh 
[root@ip-172-31-21-83 bin]# sh startup.sh 

(可左右滑动)

5.登录验证


1.在浏览器输入CM地址,重定向到IDP服务的登录界面

2.在登录界面输入LDAP用户账号和密码,注意我们再assigin_role.sh脚本中为admin和josh用户分配了角色,其它用户并没有分配角色,我们使用admin用户登录测试

点击登录跳转到如下界面

点Accept,登录成功跳转至CM主页

至此就完成了CM的SAML的身份验证配置。

6.总结


  • Cloudera Manger需要配置IDP服务提供者的metadata.xml、证书信息及EntityID等信息
  • 完成ClouderaManager的SAML配置后,需要将CM的metadata.xml注册到IDP服务,并配置IDP服务的属性解析,否则无法将用户信息返回给Cloudera Manager服务。

参考:

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_sg_external_auth.html

提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-02-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏about云

Hadoop HTTP web-consoles认证机制

问题导读 1.如何配置 Hadoop HTTP web-consoles 所需要的用户身份验证? 2.哪个配置文件可以配置 Hadoop HTTP认证? 3....

3506
来自专栏IT技术精选文摘

Hadoop完全分布式搭建

6732
来自专栏Hadoop实操

CDSW1.4的新功能

2023
来自专栏北京马哥教育

CentOS 6.5上搭建Hadoop环境详解

本文详细记录在开发服务器CentOS 6.5上搭建Hadoop的详细过程。 ssh连接免密码配置 由于配置过程中需要频繁的进行ssh连接到开发服务器执行命令以及...

3475
来自专栏Jed的技术阶梯

Hadoop高可用(HA)集群搭建

HA:High Available,高可用 在Hadoop 2.0之前,在HDFS集群中NameNode存在单点故障 (SPOF:A Single Point...

6202
来自专栏Hadoop实操

如何使用StreamSets实现MySQL中变化数据实时写入HBase

7642
来自专栏岑玉海

Spark部署

  Spark的部署让人有点儿困惑,有些需要注意的事项,本来我已经装成功了YARN模式的,但是发现了一些问题,出现错误看日志信息,完全看不懂那个错误信息,所以才...

3684
来自专栏乐沙弥的世界

Windows 2012配置故障转移(For SQLServer 2014 AlwaysOn)

单击”管理”菜单,选择”添加角色和功能” 单击”下一步”,选择”基于角色或基于功能的安装”,单击”下一步” 选择本地服务器,单击”下一步”,直到功能模块...

1442
来自专栏数据派THU

独家 | 一文读懂Hadoop(二)HDFS(上)

随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识。2017年年初apache发...

6219
来自专栏Hadoop实操

如何在CDH5.13中安装CDSW1.2

Cloudera前一段时间发布了CDH5.13版本,5.13的新功能可以参考前一篇文章《CDH5.13和CM5.13的新功能》,在CDH5.13版本以后支持CD...

5015

扫码关注云+社区

领取腾讯云代金券