共計 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 行業資訊頻道。