DataSphere Studio怎么支持多种用户登录认证方式

69次阅读
没有评论

共计 3718 个字符,预计需要花费 10 分钟才能阅读完成。

本篇文章给大家分享的是有关 DataSphere Studio 怎么支持多种用户登录认证方式,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。

“DataSphere Studio 默认只提供了管理员账号,用户登录鉴权完全依托于 Linkis 的用户登录认证体系。本文将详细介绍 Linkis 目前已经支持的用户登录认证方式,以及如何补充和完善用户环境信息。”

DataSphere Studio 管理员的用户名和密码均为部署用户名
     ,如部署用户为 hadoop,则管理员的用户名 / 密码为:hadoop/hadoop。
   DataSphere Studio 的用户登录鉴权,依托于 Linkis 的用户登录认证体系。
   

除管理员以外,Linkis 还支持以下用户登录认证方式:

接入 LDAP 登录

接入 SSO 单点登录

Token 登录方式

代理用户模式

不管您接入哪种用户登录认证方式,
      您都需为所有 Linkis 用户(除部署用户以外),完善用户环境信息。
   

第五章详细介绍了如何补充和完善用户环境信息。

01

接入 LDAP

进入 linkis/linkis-gateway/conf,修改配置文件 linkis.properties,增加您的 LDAP 服务端配置:

vi linkis/linkis-gateway/conf/linkis.properties
#您的 LDAP 服务 URL
wds.linkis.ldap.proxy.url=ldap://127.0.0.1:389/
# 您的 LDAP 服务的配置
wds.linkis.ldap.proxy.baseDN=dc=webank,dc=com

重启 linkis-gateway,使之生效。

02

接入 SSO 单点登录

接入您公司的 SSO 单点登录体系要复杂一些。首先,您需要打开 SSO 单点验证功能,请在 linkis/linkis-gateway/conf/linkis.properties 指定如下参数:

wds.linkis.gateway.conf.enable.sso=true

然后,您需要实现 SSOInterceptor 接口:

trait SSOInterceptor {

 /**
   * 如果打开 SSO 单点登录功能,当前端跳转 SSO 登录页面登录成功后,会重新跳回到 DSS 首页,这时 DSS 前端再次请求 gateway,
   *     gateway 会通过调用该方法获取已 SSO 登录的用户,然后将用户写入 cookie,保证后续请求可直接放行。
   * 您需实现该方法,通过 Request 返回用户名。
   * @param gatewayContext
   * @return
   */
 def getUser(gatewayContext: GatewayContext): String

 /**
   * 通过 DSS 首页 Url,用户生成一个可重定向的 SSO 登录页面 URL。
   * 要求:需带上 requestUrl,以便 SSO 登录成功后能跳转回来
   * @param requestUrl DSS 首页 URL
   * @return 例如:https://${sso_host}:${sso_port}/cas/login?redirectUrl=${requestUrl}
   */
 def redirectTo(requestUrl: URI): String

 /**
   * 用户退出登录时,gateway 会调用此接口,以保证 gateway 清除 cookie 后,SSO 单点登录也会把登录信息清除掉
   * @param gatewayContext
   */
 def logout(gatewayContext: GatewayContext): Unit

}

将您的 SSO 实现类,打成 jar 包,放入 linkis/linkis-gateway/lib 目录。Linkis 提供了两种加载您 SSO 实现类的方式:将 SSO 实现类声明为 spring bean,这种方式要求您只需在类名上面加上 @Component 注解即可。在 linkis/linkis-gateway/conf/linkis.properties 指定如下参数:

# 请指定为您的 SSO 实现类 
   wds.linkis.gateway.conf.sso.interceptor=com.webank.wedatasphere.linkis.gateway.security.sso.SSOInterceptor

重启 linkis-gateway,SSO 单点登录即可生效。

03

Token 登录方式

该方式是给第三方系统访问 Linkis 和 DSS 使用的。第三方系统调用 Linkis 和 DSS 后台接口时,只需通过 token 模式即可直接跳过登录。在 linkis/linkis-gateway/conf/linkis.properties 指定如下参数:

# 打开 token 模式 
   wds.linkis.gateway.conf.enable.token.auth=true
   # 指定 token 配置文件
   wds.linkis.gateway.conf.token.auth.config=token.properties

在 linkis/linkis-gateway/conf 目录下,创建 token.properties 文件,内容如下:

# 格式如下:
   ${TOKEN_NAME}=${USER1},${USER2}
   # 例如:
   AZKABAN=*

TOKEN_NAME 指分配给第三方系统的 tokenId,后面的 value 为可跳过登录的用户,如果完全信任该系统的所有请求,可直接等于 *,表示全部授权。

第三方系统在请求 DSS 和 Linkis,在 request 的 header 或 cookie 中,写入如下两个参数即可:

{
  Token-Code : ${TOKEN_NAME} ,
  Token-User : ${USER}
}

04

代理用户模式

该方式允许登录用户和实际使用 DSS 的用户不同,主要作用:控制用户登录时必须为实名用户,但是实际使用大数据平台时,是非实名用户。

在 linkis/linkis-gateway/conf/linkis.properties 指定如下参数:

# 打开代理模式 
   wds.linkis.gateway.conf.enable.proxy.user=true
   # 指定代理配置文件
   wds.linkis.gateway.conf.proxy.user.config=proxy.properties

在 linkis/linkis-gateway/conf 目录下,创建 proxy.properties 文件,内容如下:

# 格式如下:
   ${LOGIN_USER}=${PROXY_USER}
   # 例如:
   enjoyyin=hadoop

如果现有的代理模式不能满足您的需求,您也可以手动修改:com.webank.wedatasphere.linkis.gateway.security.ProxyUserUtils。

05

如何为用户完善环境信息

由于 DSS Linkis 做了自上而下的多租户隔离,为了使登录的用户可正常使用 DSS,还需在 linux 服务器上面创建对应的 Linux 用户,具体步骤如下:在所有 Linkis DSS 服务器上创建对应 Linux 用户。在 Hadoop 的 NameNode 创建对应 Linux 用户。保证 Linkis DSS 服务器上的 Linux 用户,可正常使用 hdfs dfs -ls / 等命令,同时该用户需要能正常使用 Spark 和 hive 任务,如:通过 spark-sql 命令可以启动一个 spark application,通过 hive 命令可以启动一个 hive 客户端。由于每个用户的工作空间严格隔离,您还需为该用户创建工作空间和 HDFS 目录,如下:

# 创建用户工作空间目录 
   mkdir $WORKSPACE_USER_ROOT_PATH/${NEW_USER}
   chmod 750 $WORKSPACE_USER_ROOT_PATH/${NEW_USER}

   # 创建用户 HDFS 目录
   hdfs dfs -mkdir $HDFS_USER_ROOT_PATH/${NEW_USER}
   hdfs dfs -chown ${NEW_USER}:${NEW_USER} $HDFS_USER_ROOT_PATH/${NEW_USER}
   hdfs dfs -chmod 750 $HDFS_USER_ROOT_PATH/${NEW_USER}

      WORKSPACE_USER_ROOT_PATH 和 HDFS_USER_ROOT_PATH 是您一键安装 DSS 时,设置的工作空间和 HDFS 根路径。

如果您没有设置,则默认为:

WORKSPACE_USER_ROOT_PATH=file:///tmp/linkis
HDFS_USER_ROOT_PATH=hdfs:///tmp/linkis

以上就是 DataSphere Studio 怎么支持多种用户登录认证方式,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计3718字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)