背景資訊
當使用者擁有完善的單點登入系統(SSO)時,使用者的SSO應用只需在與Dataphin系統同域的Cookie中設定Ticket,便可實現Ticket認證、登入跳轉、登出功能及帳號資訊擷取,從而與Dataphin系統實現對接。使用者可以通過其單點認證系統登入Dataphin的應用。
切換登入系統後,原有的登入入口將被關閉,無法通過之前的登入系統訪問任何賬戶。
切換登入系統後,僅能使用使用者的登入系統進行登入。因此,需要使用者確認在新登入系統中能夠提供營運管理員和超級管理員對應的帳號,用於Dataphin的日常營運。
需要使用者提供新舊兩套帳號的對應關係,即舊帳號對應的新帳號ID,用於登入。
確認所有舊帳號均能在新登入系統中成功添加並登入(例如:可能存在某些外部帳號無法添加至內部員工系統的情況)。
認證請求時序圖如下,其中Cookie需與Dataphin應用同域或同根域。
需提供的能力
客戶需在單點認證系統(SSO)中提供以下功能。
在確認並完成以下功能配置後,請聯絡Dataphin營運人員。
介面規範
請求方式:GET
內容類型:Content-Type:application/json;charest=UTF-8
請求路徑和格式已在介面中說明;介面請求路徑採用預設路徑,可配置。
Cookie預設名稱為DPN_SSO_TICKET,可配置。
若返回結果為success:false,請在message中提供詳細說明,以便於問題的排查。
一、Ticket(Cookie)認證介面
介面描述:提供Ticket認證能力,預設請求路徑為/cookie/validCookie?ticket={ticket}。
二、提供登入認證介面根據target-url重新導向能力
http://127.0.0.1:8080?target-uri=http://dataphin.com
登入認證到期:Dataphin應用會在登入認證地址URL後拼接當前請求地址URL,方便登入認證成功之後回到請求頁面。
三、登出介面
提供使用者平台登出能力,redirect為登出跳轉地址。
方案一:請求該介面,該介面提供cookie失效能力,redirect返回客戶的認證登入頁;如果無法提供cookie失效能力,可通過redirect清除cookie,再跳轉至指定頁面。
方案二:請求該介面,redirect返回客戶使用者系統的登出地址,Dataphin跳轉至使用者登出地址,實現登出。
預設請求路徑為/user/logout?ticket={ticket},返回格式和定義如下。
{
"success":true,
"data":{
"redirect":"http://127.0.0.1:8080"
},
"message":""
}四、使用者詳情介面
此介面用於使用者資訊同步,在應用中暫未使用,用於後續擴充。
預設請求路徑為/user/getUser?userId={userId},返回格式和定義如下。
{
"success":true,
"data":{
"userId":"1",
"parentUserId":"0",
"accountName":"account1",
"displayName":"dataphin1",
"realName":"張1",
"nickName":"張1豐",
"email":"1@alibaba.com",
"mobilePhone":"12300000001"
},
"message":null
}五、使用者詳情列表介面
此介面用於使用者資訊同步,為必須是實現介面
全量
預設請求路徑為
/user/getAllUser,返回格式和定義如下。{ "success":true, "data":[ { "userId":"1", "parentUserId":"0", "accountName":"account1", "displayName":"dataphin1", "realName":"張1", "nickName":"張1豐", "email":"1@alibaba.com", "mobilePhone":"12300000001" }, { "userId":"2", "parentUserId":"0", "accountName":"account2", "displayName":"dataphin2", "realName":"張2", "nickName":"張2豐", "email":"2@alibaba.com", "mobilePhone":"12300000002" } ], "message":null }分頁
預設請求路徑為
/user/getAllUser?pageNo={頁碼}&pageSize={每頁條數},返回格式和定義同全量格式,當data返回list.size為0時結束請求。
六、登入配置與帳號映射關係
開發完成後,需要提供登入配置和帳號映射關係,以供切換登入系統。
登入配置
#以下為預設值,如果有改動請修改 dataphin.thirdpart.sso.endpoint=http://127.0.0.1:8080 dataphin.thirdpart.sso.cookie.name=DPN_SSO_TICKET dataphin.thirdpart.sso.cookie.validUrl=/cookie/validCookie?ticket={ticket} dataphin.thirdpart.sso.user.logoutUrl=/user/logout?ticket={ticket} dataphin.thirdpart.sso.user.getUserUrl=/user/getUser?userId={userId} dataphin.thirdpart.sso.user.getAllUserUrl=/user/getAllUser dataphin.thirdpart.sso.isCustomizeTargetUrl=false帳號映射關係
舊帳號使用者ID或Dataphin的userID
新登入系統使用者ID
例如:SuperAdmin或30000001
12345678
例如:SuperAdmin或30000002
87654321
對接完成驗證
確認登入功能正常,即可以通過使用者登入系統登入至Dataphin,且使用者資訊正常顯示。
確認同步處理的使用者正常。
在Dataphin管理中心 > 成員管理中,單擊帳號系統同步後未報錯,且單擊新增成員時,可正常展示同步的使用者即為正常。
確認登出功能正常。
單擊Dataphin右上方頭像開啟使用者中心,單擊退出帳號後能成功跳轉至使用者指定的頁面。同時,根據使用者是否清除cookie的需求,檢查cookie是否正常清除。
若需將SuperOps/SuperAdmin帳號切換為客戶登入系統中另一帳號,請聯絡Dataphin營運人員。