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

使用SAML配置身份认证

作者头像
大数据杂货铺
发布2020-11-09 14:32:50
3.9K0
发布2020-11-09 14:32:50
举报
文章被收录于专栏:大数据杂货铺

如何在Cloudera Manager中使用SAML配置身份认证。

Cloudera Manager支持安全性声明标记语言(SAML),这是一种基于XML的开放标准数据格式,用于在各方之间,尤其是在身份提供者(IDP)和服务提供者(SP)之间交换身份认证和授权数据。SAML规范定义了三个角色:Principal(通常是用户)、IDP和SP。在SAML解决的用例中,委托人(用户代理)向服务提供商请求服务。服务提供者从IDP请求并获取身份声明。基于此断言,SP可以做出访问控制决定,换句话说,它可以决定是否为连接的Principal执行某些服务。

SAML的主要用例称为Web浏览器单点登录(SSO)。使用用户代理(通常是Web浏览器)的用户请求受SAML SP保护的Web资源。SP希望知道发出请求的用户的身份,因此通过用户代理向SAML IDP发出身份认证请求。在此术语的上下文中,Cloudera Manager充当SP。本主题讨论配置过程中的Cloudera Manager部分。它假定您在一般意义上熟悉SAML和SAML配置,并且已经部署了有效的IDP。

注意

• Cloudera Manager支持SP和IDP发起的SSO。

• Cloudera Manager中的注销操作将向IDP发送一次注销请求。

• 已使用SiteMinder和Shibboleth的特定配置对SAML身份认证进行了测试。尽管SAML是标准,但是不同IDP产品之间的配置存在很大差异,因此其他IDP实施或SiteMinder和Shibboleth的其他配置可能无法与Cloudera Manager互操作。

• 如果SAML配置不正确或不起作用,要绕过SSO,您可以使用URL使用Cloudera Manager本地帐户登录: http://cm_host:7180/cmf/localLogin

准备文件

您将需要准备以下文件和信息,并将其提供给Cloudera Manager:

• Java Keystore,其中包含供Cloudera Manager用来签名/加密SAML消息的私钥。有关创建Java Keystore的指导,请参阅了解 Keystore 和 truststore 。

• IDP中的SAML元数据XML文件。该文件必须包含根据SAML元数据互操作性配置文件认证IDP使用的签名/加密密钥所需的公共证书。例如,如果您正在使用Shibboleth IdP,则元数据文件位于以下位置: https://<IdPHOST>:8080/idp/shibboleth.

注意

有关如何从IDP获取元数据XML文件的指导,请与IDP管理员联系或查阅文档以获取所使用IDP版本的信息。

• 用来标识Cloudera Manager实例的实体ID

• 如何在SAML身份认证响应中传递用户ID:

o 作为属性。如果是这样,则使用什么标识符。

o 作为NameID。

• 建立Cloudera Manager角色的方法:

o 从身份认证响应中的属性:

• 该属性将使用什么标识符

• 将传递什么值来指示每个角色

o 从每次使用都会被调用的外部脚本中:

• 该脚本将用户标识设为$ 1

• 该脚本设置退出代码以反映成功的身份认证。退出代码的有效值在0到127之间。这些值在Cloudera Manager中用于将经过身份认证的用户映射到Cloudera Manager中的用户角色。

配置Cloudera Manager

1) 登录到Cloudera Manager管理控制台。

2) 选择管理>设置。

3) 为 类别过滤器选择外部身份认证以显示设置。

4) 将“外部身份认证类型”属性设置为SAML(“ SAML”将忽略“身份认证后端顺序”属性)。

5) 将“ SAML IDP元数据文件的路径”属性设置为指向IDP元数据文件。

6) 将“ SAML Keystore文件的路径”属性设置为指向先前准备的Java Keystore。

7) 在“ SAML Keystore密码”属性中,设置Keystore密码。

8) 在“ SAML签名/加密专用密钥的别名”属性中,设置用于标识供Cloudera Manager使用的专用密钥的别名。

9) 在“ SAML签名/加密私钥密码”属性中,设置私钥密码。

10) 在以下情况下,设置SAML实体ID属性:

• 同一IDP使用了多个Cloudera Manager实例(每个实例需要一个不同的实体ID)。

• 实体ID由组织政策分配。

11) 在“ SAML响应中的用户ID源”属性中,设置是从属性还是从NameID获取用户ID。

如果将使用属性,请在用户ID属性的SAML属性标识符中设置属性名称。默认值为用于用户ID的常规OID,因此可能不需要更改。

12) 在“ SAML角色分配机制”属性中,设置是从属性还是从外部脚本完成角色分配。

• 如果将使用属性:

o 如果需要,在用户角色属性的SAML属性标识符中,设置属性名称。默认值为用于OrganizationalUnits的常规OID,因此可能无需更改。

• 如果将使用外部脚本,请在“ SAML角色分配脚本路径”属性中设置该脚本的路径。确保脚本是可执行的(可执行二进制文件很好-不必是Shell脚本)。

13) 保存更改。Cloudera Manager将运行一组认证,以确保可以找到元数据XML和 Keystore,并且密码正确。如果看到认证错误,请在继续操作之前更正问题。

14) 重新启动Cloudera Manager Server。

在为Cloudera Manager配置身份认证之后,请为经过身份认证的用户配置授权。通过将经过身份认证的用户映射到Cloudera Manager用户角色来完成此操作。有关更多信息,请参阅《Cloudera Manager 用户角色》 。

配置IDP

重新启动Cloudera Manager Server之后,它将尝试重定向到IDP登录页面,而不显示正常的CM页面。这可能成功也可能不成功,具体取决于IDP的配置方式。无论哪种情况,都需要将IDP配置为识别CM,然后身份认证才能真正成功。此过程的详细信息特定于每个IDP实施-有关详细信息,请参阅IDP文档。如果您正在使用Shibboleth IdP,则此处 提供了有关配置IdP与服务提供商进行通信的信息。

1) 从中下载Cloudera Manager的SAML元数据XML文件 。http://hostname:7180/saml/metadata

2) 检查元数据文件,并确保文件中包含的所有URL都可以被用户的Web浏览器解析。IDP将在此过程中的各个时间点将Web浏览器重定向到这些URL。如果浏览器无法解决它们,则身份认证将失败。如果URL不正确,则可以手动修复XML文件或将CM配置中的Entity Base URL设置为正确的值,然后重新下载该文件。

3) 使用IDP提供的任何机制将此元数据文件提供给IDP。

4) 确保IDP有权访问必需的任何公共证书,以认证先前提供给Cloudera Manager的私钥。

5) 确保将IDP配置为使用Cloudera Manager配置为期望的属性名称提供用户ID和角色(如果相关)。

6) 确保对IDP配置的更改已生效(可能需要重新启动)。

验证身份认证和授权

1) 返回Cloudera Manager管理控制台并刷新登录页面。

2) 尝试使用已授权用户的凭据登录。身份认证应该完成,您应该看到Home > Status选项卡。

3) 如果身份认证失败,您将看到IDP提供的错误消息。Cloudera Manager不参与该过程的这一部分,您必须确保IDP正常工作以完成身份认证。

如果身份认证成功,但是用户无权使用Cloudera Manager,则Cloudera Manager会将他们带到错误页面,该错误页面会说明情况。如果应该被授权的用户看到此错误,那么您将需要认证其角色配置,并确保通过属性或外部脚本将其正确传达给Cloudera Manager。Cloudera Manager日志将提供有关建立用户角色失败的详细信息。如果在角色映射期间发生任何错误,Cloudera Manager将假定用户未经授权。

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

本文分享自 大数据杂货铺 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档