舒適提示:要看高清無碼套圖,請使用手機打開並單擊圖片放大查看。php
Fayson的github:https://github.com/fayson/cdhprojecthtml
提示:代碼塊部分能夠左右滑動查看噢git
1.文檔編寫目的github
在前面Fayson介紹了《如何使用Shibboleth搭建IDP服務並集成OpenLDAP》和《如何使用SAML配置Cloudera Manager的身份驗證》,經過Shibboleth的IDP服務提供SAML認證服務,本篇文章主要介紹如何使用SAML配置CDSW的身份驗證。下圖爲CDSW集成SAML認證流程。apache
內容概述api
1.環境準備瀏覽器
2.CDSW配置SAML及註冊IDPtomcat
3.登陸驗證bash
4.總結服務器
測試環境
1.CDSW版本爲1.2.2
2.Shibboleth IDP版本爲3.3.2
3.CDH5.13.1
4.Redhat7.2
2.環境準備
1.獲取IDP服務的metadata.xml文件
經過以下地址獲取IDP服務的shibboleth.xml文件
http://{idp-server-hostname}/idp/shibboleth
將shibboleth.xml文件中有關ArtifactResolutionService和SingleSignOnService標籤的Location地址由https修改成http
注意:這裏須要注意的是須要將下載的shibboleth.xml文件中部分標籤修改成」<md:」,該文件在配置CDSW SAML時會用到。
2.在IDP服務器上使用openssl命令將backchannel.p12轉成成private key祕鑰文件
使用openssl命令經過pkcs12密鑰文件生成private key密鑰文件
cd /opt/shibboleth-idp/credentials
openssl pkcs12 -in idp-backchannel.p12 -nocerts -out idp-backchannel.pem
openssl rsa -in idp-backchannel.pem -out private.key
(可左右滑動)
將該目錄下的的idp-backchannel.crt和private.key文件下載至本地客戶端,在配置CDSW祕鑰時會使用。
3.CDSW配置SAML
1.使用管理員登陸CDSW,點擊「Admin」
2.點擊「Admin」->「Security」,進入外部身份驗證配置界面
SAML認證涉及到的配置內容:
完成以上配置後,點擊「Update」便可,不須要重啓CDSW服務。
3.在瀏覽器訪問CDSW地址有以下顯示
因爲CDSW服務未在IDP服務註冊,因此訪問有限制。
4.向IDP註冊CDSW服務
1.編寫CDSW服務的cdsw_saml_metadata.xml元數據文件,該文件主要是用於向IDP服務註冊CDSW,文件內容以下:
因爲CDSW服務的/api/v1/saml/metadata接口未提供完整的Metadata數據,因此這裏咱們使用在線工具https://www.samltool.com/sp_metadata.php生成CDSW的Metadata數據文件。
生成的cdsw_saml_metadata.xml文件內容以下:
2.將生成的cdsw_saml_metadata.xml文件,上傳至IDP服務的/opt/shibboleth-idp/metadata目錄下
3.編輯/opt/shibboleth-idp/conf/metadata-providers.xml,在MetadataProvider標籤內增長以下配置
<MetadataProvider id="LocalMetadata" xsi:type="FilesystemMetadataProvider" metadataFile="/opt/shibboleth-idp/metadata/cdsw_saml_metadata.xml"/>
(可左右滑動)
4.編輯/opt/shibboleth-idp/conf/attribute-filter.xml,將內容修改成以下配置
<AttributeFilterPolicy id="example1">
<PolicyRequirementRule xsi:type="Requester" value="https://cdh3.itc.cmbchina.cn/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值。
5.修改完以上配置後,從新構建IDP包及重啓Tomcat服務
[root@cdh3 conf]<20180306 19:57:17># cd /opt/shibboleth-idp/bin/
[root@cdh3 bin]<20180306 19:57:32># ./build.sh
[root@cdh3 bin]<20180306 19:57:51># cd /opt/apache-tomcat-8.5.28/bin/
[root@cdh3 bin]<20180306 19:23:28># sh shutdown.sh
[root@cdh3 bin]<20180306 19:23:48># sh startup.sh
(可左右滑動)
5.登陸驗證
1.在瀏覽器輸入CM地址,重定向到IDP服務的登陸界面
2.在登陸界面輸入LDAP用戶帳號和密碼,咱們使用admin用戶登陸測試
點擊登陸跳轉到以下界面
點擊「Accept」,認證成功進入CDSW主頁
至此就完成了CDSW的SAML的身份驗證配置。
6.驗證CDSW功能
1.選擇「testproject」工程,並啓動一個Session
2.成功執行示例代碼
7.總結
CDSW須要配置IDP服務提供者的shibboleth.xml、證書信息及EntityID等信息
完成CDSW的SAML配置後,須要將CM的cdsw_saml_metadata.xml註冊到IDP服務,並配置IDP服務的屬性解析,不然沒法將用戶信息返回給Cloudera Manager服務。
在這裏CDSW的接口未提供完成的cdsw_saml_metadata.xml配置文件,須要咱們本身手動的建立該Metadata。
須要注意的是IDP服務提供的shibboleth.xml配置文件,須要修改成SAML2.0支持的格式,配置文件具體修改可參看以下GitHub地址。
參考:
https://www.cloudera.com/documentation/data-science-workbench/1-2-x/topics/cdsw_external_authentication.html#saml
Metadata.xml配置文件GtiHub地址:
https://github.com/fayson/cdhproject/blob/master/samldemo/cdsw_saml_metadata.xml
https://github.com/fayson/cdhproject/blob/master/samldemo/shibboleth.xml
提示:代碼塊部分能夠左右滑動查看噢
爲天地立心,爲生民立命,爲往聖繼絕學,爲萬世開太平。
舒適提示:要看高清無碼套圖,請使用手機打開並單擊圖片放大查看。
推薦關注Hadoop實操,第一時間,分享更多Hadoop乾貨,歡迎轉發和分享。
原創文章,歡迎轉載,轉載請註明:轉載自微信公衆號Hadoop實操
本文分享自微信公衆號 - Hadoop實操(gh_c4c535955d0f)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。