すべてのプロダクト
Search
ドキュメントセンター

Dataphin:Dataphin におけるお客様のサードパーティ SSO ログオン認証に基づく認証

最終更新日:Feb 06, 2025

このトピックでは、Dataphin とサードパーティのシングルサインオン (SSO) 認証の統合について説明します。チケット (Cookie) 認証インターフェイス、ログアウトインターフェイス、ログインリダイレクト、およびアカウント情報の取得について説明します。

背景情報

確立されたシングルサインオン (SSO) システムがあり、SSO アプリケーションが Dataphin と同じドメイン内の Cookie でチケットを管理し、チケットを認証し、ログインリダイレクトとログアウトを処理し、アカウント情報を取得できる場合、Dataphin と統合できます。ユーザーは SSO システムを介して Dataphin アプリケーションにアクセスできます。

認証リクエスト時系列グラフ

重要

Cookie は、Dataphin アプリケーションと同じドメインまたはルートドメイン内にある必要があります。

image

インターフェイス仕様

リクエストメソッド: GET。

コンテンツタイプ: Content-Type:application/json;charset=UTF-8.

  1. チケット (Cookie) 認証インターフェイス

    • チケット認証機能を提供します。

    • リクエストパス: /cookie/validCookie?ticket={ticket}.

      成功: true をユーザーの詳細情報とともに返します。

      {
       "success":true,
       "data":{
       "userId":"1",
       "parentUserId":"0",
       "accountName":"account1",
       "displayName":"dataphin1",
       "realName":"zhang1",
       "nickName":"zhang1feng",
       "email":"1@alib***.com",
       "mobilePhone":"188****0001"
       },
       "message":null
      }

      データフィールドの詳細:

      フィールド

      説明

      userId

      必須。お客様のユーザーシステム内での一意の userId です。

      parentUserId

      親子関係を持つユーザーシステムで使用されます。

      accountName

      必須。お客様のユーザーシステム内での一意のユーザーログインアカウントです。

      displayName

      Dataphin システムでの表示名 (一意であることが推奨されます)。Dataphin 内のすべてのユーザー情報を表示するために使用されます。 displayName が null の場合、accountName がユーザー名として使用されます。

      realName

      ユーザーの実名です。

      nickName

      ユーザーのニックネームです。

      email

      ユーザーのメールアドレスです。

      mobilePhone

      ユーザーの連絡先番号です。

      失敗: false を、リダイレクト認証アドレス redirectUrl とともに返します。

      説明

      switch isCustomizeTargetUrl が有効になっている場合、data.redirect にカスタム target-url リターンを含めることができます。

      {
       "success":false,
       "data":{
       "redirect":"http://127.0.0.1:****"
       },
       "message":""
      }
  2. target-url に基づいてリダイレクト機能を備えたログオン認証インターフェイスを提供する

    ログイン認証の有効期限が切れた場合、Dataphin アプリケーションは現在のリクエストアドレス URL をログイン認証アドレス URL に追加し、ログイン認証の成功後にリクエストされたページに戻ることを容易にします。

  3. ログアウトインターフェイス

    リクエストパス: /user/logout?ticket={ticket}.

    戻り値の形式と定義:

    {
     "success":true,
     "data":{
     "redirect":"http://127.0.0.1:****"
     },
     "message":""
    }
  4. ユーザー詳細リストインターフェイス

    リクエストパス: /user/getAllUser.

    戻り値の形式と定義:

    {
     "success":true,
     "data":[
     {
     "userId":"1",
     "parentUserId":"0",
     "accountName":"account1",
     "displayName":"dataphin1",
     "realName":"zhang1",
     "nickName":"zhang1feng",
     "email":"1@alib***.com",
     "mobilePhone":"188****0001"
     },
     {
     "userId":"2",
     "parentUserId":"0",
     "accountName":"account2",
     "displayName":"dataphin2",
     "realName":"zhang2",
     "nickName":"zhang2feng",
     "email":"2@alib***.com",
     "mobilePhone":"188****0002"
     }
     ],
     "message":null
    }

Dataphin 設定項目

  1. IDE 設定項目の切り替えと追加

    dataphin.sso.provider.session=com.alibaba.dataphin.sso.provider.thirdpart.session.ThirdPartSessionProvider
    dataphin.sso.provider.account=com.alibaba.dataphin.sso.provider.thirdpart.account.ThirdPartAccountProvider
    #インターフェイスリクエストアドレスを提供するためのエンドポイント
    dataphin.thirdpart.sso.endpoint=http://127.0.0.1:****
    #設定可能な項目
    ## 相手側と Cookie 名を確認します
    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
    ## 相手側と getAllUser インターフェイス取得方法を確認します。デフォルトは all です
    ## all: パラメーターなしですべてを取得します
    ## page: ページングで取得し、pageNo、pageSize パラメーターを自動的に追加します (パラメーター名は設定可能です)
    ## cursor: カーソルで取得し、userId、pageSize パラメーターを自動的に追加します (パラメーター名は設定可能です)
    dataphin.thirdpart.sso.user.getAllUser.method=all
    dataphin.thirdpart.sso.user.getAllUser.pageSize=30
    dataphin.thirdpart.sso.user.param.name.userId=userId
    dataphin.thirdpart.sso.user.param.name.pageSize=pageSize
    dataphin.thirdpart.sso.user.param.name.pageNo=pageNo
  2. DataAssets および OneService 設定項目

    Dataphin v2.9.1 以降および Dataphin v3.2.x より前のバージョンでは、IDE 設定と同様に、設定項目の切り替えと追加が必要です。

アカウントシステムの切り替え

  1. 元のアカウントシステムエントリを閉じて、お客様が提供するログオンに切り替えます

    dataphin.sso.provider.session=com.alibaba.dataphin.sso.provider.thirdpart.session.ThirdPartSessionProvider
    dataphin.sso.provider.account=com.alibaba.dataphin.sso.provider.thirdpart.account.ThirdPartAccountProvider
  2. 元のアカウントを修正します

    たとえば、Dataphin システムの Security ライブラリにある od_user テーブルを考えてみます。

    • SuperOps アカウントの修正: Ops アカウントをお客様のユーザーシステムの userId に更新します。

      update od_user set source_user_id = '{お客様のユーザーシステムによって提供される userId}', source_type = 'THIRD_PART' where id = '{od_user テーブルの SuperOps の id}'.
    • SuperAdmin アカウントの修正: Admin アカウントをお客様のユーザーシステムの userId に更新します。

      update od_user set source_user_id = '{お客様のユーザーシステムによって提供される userId}', source_type = 'THIRD_PART' where id = '{od_user テーブルの SuperAdmin の id}'.
    • 標準アカウントの修正: od_user テーブルのデータを更新して、新しい認証システムの userId を反映します。

      元のシステムアカウントの sourceUserId を新しい認証システムの userId に変更します。

      元のアカウントタイプを THIRD_PART に変更します。

      重要

      source_type BUILTIN_PRODUCKER_USER タイプのアカウントは変更しないでください。

統合完了の検証

  1. ログオン機能の検証

    ユーザーログインシステムを介して Dataphin にログインできること、およびユーザー情報が正しく表示されることを確認します。

  2. ユーザー同期検証

    1. Dataphin の [管理センター] - [メンバー管理] で、[アカウントシステム同期] をクリックし、エラーが報告されていないことを確認します。

      image

    2. [メンバーの追加] をクリックし、同期されたユーザーが正しく表示されることを確認します。

      image

  3. ログアウト機能の検証

    右上のユーザー情報セクションで [ログアウト] をクリックします。ユーザー指定のページにリダイレクトされることを確認し、必要に応じて、Cookie を消去するかどうかを確認し、Cookie が正しく消去されることを確認します。

    image