前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何使用SAML配置CDSW的身份验证

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

作者头像
Fayson
修改于 2018-04-01 10:37:34
修改于 2018-04-01 10:37:34
4.4K1
举报
文章被收录于专栏:Hadoop实操Hadoop实操

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

1.文档编写目的


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

  • 内容概述

1.环境准备

2.CDSW配置SAML及注册IDP

3.登录验证

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密钥文件

代码语言:txt
AI代码解释
复制
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标签内增加如下配置

代码语言:txt
AI代码解释
复制
<MetadataProvider id="LocalMetadata"  xsi:type="FilesystemMetadataProvider" metadataFile="/opt/shibboleth-idp/metadata/cdsw_saml_metadata.xml"/>

(可左右滑动)

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

代码语言:txt
AI代码解释
复制
<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服务

代码语言:txt
AI代码解释
复制
[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实操

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
在生成metadata 的时候 报错 错误:0D0680A8:ASN1编码例程:ASN1_CHECK_TLEN 什么原因啊
在生成metadata 的时候 报错 错误:0D0680A8:ASN1编码例程:ASN1_CHECK_TLEN 什么原因啊
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
深入理解 TypeScript Path Aliases 及其实践应用
在 Web 前端开发中,随着项目规模的增大,代码的模块化和可读性需求日益增强。TypeScript 提供了一种称为 Path Aliases 的功能,可以通过别名简化模块导入路径,从而提升开发效率和代码的可维护性。
编程小妖女
2025/01/01
830
深入理解 TypeScript Path Aliases 及其实践应用
会写 TypeScript 但你真的会 TS 编译配置吗?
随着 TypeScript 的流行,越来越多的项目通过使用 TypeScript 来实现编写代码时候的类型提示和约束,从开发过程中减少 BUG 出现的概率,以此提升程序的健壮性和团队的研发效率。
小东同学
2022/07/29
3.9K1
会写 TypeScript 但你真的会 TS 编译配置吗?
【Vue工程】001-Vite 创建 Vue-TypeScript 项目
@types/node 是一个 TypeScript 类型声明包,它包含 Node.js 中的所有类型定义。在 TypeScript 项目中,我们需要类型声明来提供类型信息,才能获得类型检查、自动补全等功能。但是 Node.js 本身的代码是由 JavaScript 编写的,没有类型信息。所以,@types/node 这个类型声明包为所有的 Node.js API 都提供了 TypeScript 的类型定义,类似:
訾博ZiBo
2025/01/06
1240
【Vue工程】001-Vite 创建 Vue-TypeScript 项目
TypeScript Project References npm 包构建小实践
在开发一个 npm 包时,通常需要同时输出 ES 模块和 CommonJS 模块的产物供不同的构建进行使用。在只使用tsc进行产物编译的情况下,我们通常可以通过配置两个独立的 tsconfig.json 配置文件,并在一个 npm script 中 执行两次 tsc 命令来实现
ACK
2024/07/03
1250
TypeScript Project References npm 包构建小实践
靓仔快来!!用typescript带你搭建一个自己的脚手架
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
南山种子外卖跑手
2022/06/12
1.7K0
靓仔快来!!用typescript带你搭建一个自己的脚手架
《现代Typescript高级教程》解读TSConfig
TypeScript 配置文件(tsconfig.json)是用于配置 TypeScript 项目的重要文件。它允许开发者自定义 TypeScript 编译器的行为,指定编译选项、文件包含与排除规则、输出目录等。通过合理配置 tsconfig.json,我们可以根据项目需求进行灵活的 TypeScript 编译设置。
linwu
2023/07/27
6160
使用 Rollup + TypeScript 编写库
其中,dist 目录一般是通过 Rollup 等打包器打包后的入口文件,一般具有多种格式,以不同后缀命令,如: index.cjs.js index.esm.js。lib 和 esm 目录可以是 TypeScript 编译后生成的文件,目录下的结构基本和原项目结构相同,只是后缀变为 js,lib 一般为 CommonJS 格式,esm 为 ESModule 格式。而这些是一个库最基本的需要发布的文件。
Innei
2021/12/28
2.5K0
使用 TypeScript 改造构建工具及测试用例
最近的一段时间一直在搞TypeScript,一个巨硬出品、赋予JavaScript语言静态类型和编译的语言。 第一个完全使用TypeScript重构的纯Node.js项目已经上线并稳定运行了。 第二个前后端的项目目前也在重构中,关于前端基于webpack的TypeScript套路之前也有提到过:TypeScript在react项目中的实践。
贾顺名
2019/12/06
1.5K0
深入理解 TypeScript 模块
在程序设计中,为完成某一功能所需的一段程序或子程序,或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分
网罗开发
2021/04/26
2.6K0
深入理解 TypeScript 模块
TypeScript在react项目中的实践
前段时间有写过一个TypeScript在node项目中的实践。 在里边有解释了为什么要使用TS,以及在Node中的一个项目结构是怎样的。 但是那仅仅是一个纯接口项目,碰巧赶上近期的另一个项目重构也由我来主持,经过上次的实践以后,尝到了TS所带来的甜头,毫不犹豫的选择用TS+React来重构这个项目。 这次的重构不仅包括Node的重构(之前是Express的项目),同时还包括前端的重构(之前是由jQuery驱动的多页应用)。
贾顺名
2019/12/09
1.8K0
TypeScript增量编译
我们在使用Node.js开发服务端时通常会使用TypeScript来开发大型项目,但是使用ts-node进行全量编译时经常遇到编译速度慢的问题,通常是修改一行代码编译两分钟。这时我们需要使用增量编译来优化编译速度,及其他的文件在项目启动时进行全量编译,开发时修改了哪个TS文件就编译成对应的JS文件。
用户6256742
2022/07/06
1.4K0
Vue + TypeScript + Element 项目实战及踩坑记
本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 。
夜尽天明
2019/06/03
4.7K0
Angular系列教程-TypeScript
安装环境 npm -g install typescript 检查是否安装 tsc -v 编译帮助 tsc -h 编译文件输出到指定目录 tsc –outDir  ./js/  ./src/index.ts 编译项目 tsc   会查找当前目录下的tsconfig.json文件进行编译
苦咖啡
2020/04/21
6130
【One by one系列】一步步学习TypeScript
想弯道超车吗!?快速追上前端潮流吗!?那么开始使用ts或许是个选择,当然这有一点急功近利,不提倡。
DDGarfield
2022/06/23
6290
rollup + typescript 构建 ts 包
安装依赖 rollup 打包工具 rollup-plugin-node-resolve 依赖引入插件 rollup-plugin-commonjs commonjs 转换 rollup-plugin-eslint eslint 校验 rollup-plugin-typescript2 ts 转换 @typescript-eslint/parser eslint ts 解析器 typescript ts解析器 rollup 配置 import path from 'path' import resolve f
copy_left
2020/10/26
6.3K1
如何在 Node.js 中使用 TypeScript
这是一篇为初学者详细介绍如何在 Node.js 中使用 TypeScript的指南。本指南将涵盖基础知识、开发环境的设置以及一些实用的代码示例。希望这篇文章能够帮助你顺利入门并在未来的项目中应用这些技术。
摸五休二
2024/06/21
8070
如何在 Node.js 中使用 TypeScript
构建纯TypeScript应用
构建纯TypeScript应用 现在只有命令行应用的例子。 前言 现在,应用开发的趋势是命令行接口应用和Web应用。 node.js 和 typescript的崛起所以,这里讨论如何创建纯的TypeScript CLI(Command Line Interface)应用和Web server-side应用。 概念 typescript node.js node.js是一个javascript的运行环境。 npm npm是一个javascript包管理器。也是node.js的默认包管理器。 环境准备 安
绿巨人
2018/05/16
1.6K0
旧项目TypeScript改造问题与解决方案记
由于本次改造的项目为一个通过NPM进行发布的基础服务包,因此本次采用TypeScript进行改造的目标是移除Babel全家桶,减小包体积,同时增加强类型约束从而避免今后开发时可能的问题。
黄Java
2018/09/18
5K0
【Vite基础】003-Vite 中使用 TypeScript
訾博ZiBo
2025/01/06
1220
【Vite基础】003-Vite 中使用 TypeScript
【TypeScript】超详细的笔记式教程【上】
之前了解过TypeScript,也学习过,但是项目中没有具体的使用过,导致忘得差不多了,最近公司不是很忙,学习的时间比较多,趁这个机会,快快的过一遍,然后准备用SolidJs + TypeScript + Vite做一个小项目,还看了看SvelteJs,感觉这个比SolidJs的生态似乎更好,可以巩固完TypeScript后学习一下这个,SvelteJs + Ts + Vite也挺香嘛。
HoMeTown
2022/10/26
1.2K0
【TypeScript】超详细的笔记式教程【上】
推荐阅读
相关推荐
深入理解 TypeScript Path Aliases 及其实践应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文