全部產品
Search
文件中心

Dataphin:如何基於第三方SSO登入與Dataphin進行登入整合

更新時間:Mar 05, 2026

背景資訊

當使用者擁有完善的單點登入系統(SSO)時,使用者的SSO應用只需在與Dataphin系統同域的Cookie中設定Ticket,便可實現Ticket認證、登入跳轉、登出功能及帳號資訊擷取,從而與Dataphin系統實現對接。使用者可以通過其單點認證系統登入Dataphin的應用。

說明
  • 切換登入系統後,原有的登入入口將被關閉,無法通過之前的登入系統訪問任何賬戶。

  • 切換登入系統後,僅能使用使用者的登入系統進行登入。因此,需要使用者確認在新登入系統中能夠提供營運管理員超級管理員對應的帳號,用於Dataphin的日常營運。

  • 需要使用者提供新舊兩套帳號的對應關係,即舊帳號對應的新帳號ID,用於登入。

  • 確認所有舊帳號均能在新登入系統中成功添加並登入(例如:可能存在某些外部帳號無法添加至內部員工系統的情況)。

認證請求時序圖如下,其中Cookie需與Dataphin應用同域或同根域

image

需提供的能力

客戶需在單點認證系統(SSO)中提供以下功能。

重要

在確認並完成以下功能配置後,請聯絡Dataphin營運人員

介面規範

請求方式:GET

內容類型:Content-Type:application/json;charest=UTF-8

說明
  • 請求路徑和格式已在介面中說明;介面請求路徑採用預設路徑可配置

  • Cookie預設名稱為DPN_SSO_TICKET,可配置。

  • 若返回結果為success:false,請在message中提供詳細說明,以便於問題的排查。

一、Ticket(Cookie)認證介面

介面描述:提供Ticket認證能力,預設請求路徑為/cookie/validCookie?ticket={ticket}

介面的返回參數

  • 請求成功

    請求成功返回true,data中包含使用者詳情資訊。

    {
        "success":true,
        "data":{
            "userId":"1",
            "parentUserId":"0",
            "accountName":"account1",
            "displayName":"dataphin1",
            "realName":"張1",
            "nickName":"張1豐",
            "email":"1@alibaba.com",
            "mobilePhone":"12300000001"
        },
        "message":null
    }

    參數名

    描述

    是否必填

    是否唯一

    userId

    客戶使用者系統內的userID。

    accountName

    客戶使用者系統的使用者登入帳號

    displayName

    Dataphin系統展示名稱,用於展示Dataphin內所有使用者的資訊,包括搜尋功能。建議輸出格式為使用者名稱(userID),以便於搜尋和定位。

    parentUserId

    用於有父子關係的使用者系統。

    當參數值為空白時,將採用accountName作為使用者名稱。

    否(建議唯一)

    realName

    姓名。

    nickName

    暱稱。

    email

    電子郵箱。

    mobilePhone

    連絡方式。

  • 請求失敗

    返回false,data中包含重新導向認證地址redirectUrl。

    {
        "success":false,
        "data":{
            "redirect":"http://127.0.0.1:8080"
        },
        "message":""
    }
    說明
    • data.redirect可攜帶自訂target-url返回,需開啟isCustomizeTargetUrl。

    • 預設target-url為當前訪問Dataphin地址。

二、提供登入認證介面根據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

對接完成驗證

  1. 確認登入功能正常,即可以通過使用者登入系統登入至Dataphin,且使用者資訊正常顯示。

  2. 確認同步處理的使用者正常

    Dataphin管理中心 > 成員管理中,單擊帳號系統同步後未報錯,且單擊新增成員時,可正常展示同步的使用者即為正常。

  3. 確認登出功能正常

    單擊Dataphin右上方頭像開啟使用者中心,單擊退出帳號後能成功跳轉至使用者指定的頁面。同時,根據使用者是否清除cookie的需求,檢查cookie是否正常清除。

重要

若需將SuperOps/SuperAdmin帳號切換為客戶登入系統中另一帳號,請聯絡Dataphin營運人員