このトピックでは、Dataphin とサードパーティのシングルサインオン (SSO) 認証の統合について説明します。チケット (Cookie) 認証インターフェイス、ログアウトインターフェイス、ログインリダイレクト、およびアカウント情報の取得について説明します。
背景情報
確立されたシングルサインオン (SSO) システムがあり、SSO アプリケーションが Dataphin と同じドメイン内の Cookie でチケットを管理し、チケットを認証し、ログインリダイレクトとログアウトを処理し、アカウント情報を取得できる場合、Dataphin と統合できます。ユーザーは SSO システムを介して Dataphin アプリケーションにアクセスできます。
認証リクエスト時系列グラフ
Cookie は、Dataphin アプリケーションと同じドメインまたはルートドメイン内にある必要があります。

インターフェイス仕様
リクエストメソッド: GET。
コンテンツタイプ: Content-Type:application/json;charset=UTF-8.
チケット (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":"" }
target-url に基づいてリダイレクト機能を備えたログオン認証インターフェイスを提供する
ログイン認証の有効期限が切れた場合、Dataphin アプリケーションは現在のリクエストアドレス URL をログイン認証アドレス URL に追加し、ログイン認証の成功後にリクエストされたページに戻ることを容易にします。
ログアウトインターフェイス
リクエストパス: /user/logout?ticket={ticket}.
戻り値の形式と定義:
{ "success":true, "data":{ "redirect":"http://127.0.0.1:****" }, "message":"" }ユーザー詳細リストインターフェイス
リクエストパス: /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 設定項目
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=pageNoDataAssets および OneService 設定項目
Dataphin v2.9.1 以降および Dataphin v3.2.x より前のバージョンでは、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 システムの 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 タイプのアカウントは変更しないでください。
統合完了の検証
ログオン機能の検証
ユーザーログインシステムを介して Dataphin にログインできること、およびユーザー情報が正しく表示されることを確認します。
ユーザー同期検証
Dataphin の [管理センター] - [メンバー管理] で、[アカウントシステム同期] をクリックし、エラーが報告されていないことを確認します。

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

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