メインコンテンツへ移動

チケット

1. 設定ファイルの作成​

デフォルトのデータディレクトリは /data/hap/script/volume/sso/sso.json です。内容は下記の通りです。
注記: マウント後も404エラーが発生する場合、内容をjson.cnにコピーしてJSON形式の正当性を確認してください。

{
"mode": "common-ticket",
"name": "ticket",
"ticket": {
"getUidUrl": "",
"ticketParams": {
"ticketParam": "ticket"
},
"getUserInfoUrl": "",
"params": {
"UserId": "uid",
"Name": "name",
"Email": "email",
"Mobile": "mobilePhone"
},
"autoRegister": true,
"projectId": ""
}
}

一部パラメータとその説明​

パラメータ型必須説明
ticket.getUidUrlString必須ユーザーIDを取得するAPIエンドポイント。 ticketParamsで構成されたパラメータがPOSTとしてこのAPIに送信され、ユーザーIDを取得します。 インターフェース要件を参照してください。
ticket.ticketParamsObject必須必要に応じてticketParamsにカスタムパラメータを追加可能です。ユーザーIDの取得に使用します。
ticket.ticketParams.ticketParamString必須URL内に付与されるチケットパラメータ名です。 "ticketParam": "tkt" と設定した場合、アクセスするアドレスは /ticket?tkt=xxx&.... で値を正しく取得する必要があります。
ticket.getUserInfoUrlString必須ユーザー情報を取得するAPIエンドポイント。インターフェース要件を参照してください。
ticket.paramsObject必須ユーザー情報の返却フィールドマッピングルールです。キーが固定項目、バリューは実際のユーザー情報に合わせて設定します。パラメータ設定方法参照。
autoRegisterBoolean任意アカウント未存在時に自動でアカウントを作成するかどうか。デフォルトは true です。
projectIdString必須HAP組織番号。組織管理(画面右上)> 組織情報 > 組織番号ID(ページに表示)。マルチ組織シングルサインオン時は本パラメータは不要です。詳細はステップ3参照。例: 1x-2x-3x-4x-5x

処理フロー図​

Ticketの連携フロー


ユーザーID取得用インターフェース 必須要件:​

  • POST(application/json)方式に対応(リクエストボディはticketParamsで設定したパラメータ)
  • レスポンスは下記JSON形式とします:
{
"code": "1",
"message": "success",
"data": "248289761" // ユーザーID
}

ユーザー情報取得用インターフェース 必須要件:​

  • POST(application/json)方式に対応し、リクエストパラメータは下記形式です
{
"userId": "248289761"
}
  • レスポンスは下記JSON形式とします
{
"code": "1",
"message": "success",
"data": {
"uid": "248289761001",
"name": "Jane Doe",
"email": "janedoe@example.com",
"mobilePhone": "123"
}
}

上記レスポンスに従う場合、paramsの設定例は次の通りです:

"params": {
"UserId": "uid",
"Name": "name",
"Email": "email",
"Mobile": "mobilePhone"
}

2. 設定ファイルのマウント​

対象マイクロサービスアプリケーションの docker-compose.yaml ファイル(デフォルトパス: /data/hap/script/docker-compose.yaml)を編集し、volumes項目にファイルマウント設定を追加してマイクロサービスアプリケーションを再起動します。

- ./volume/sso/sso.json:/usr/local/MDPrivateDeployment/sso/OptionFile/sso.json

関係の検索を有効にする​

外部サービスの関連 ID を紐付ける場合は、extend.json を作成してください。デフォルトパスは /data/hap/script/volume/sso/extend.json です。内容は次のとおりです。

{
"relation": true
}

ファイルのマウント設定を追加します。

- ./volume/sso/extend.json:/usr/local/MDPrivateDeployment/sso/extend.json
ヒント

マウント設定後、マイクロサービスアプリケーションを再起動してください。

再起動後、GET メソッドで {HAP}/orgsso/checkssoconfig にアクセスし、設定ファイルが正常にマウントされたか確認できます。


3. シングルサインオン​

シングル組織構成の場合
ブラウザアクセス: {HAP}/orgsso/ticket?{ticketParams.ticketParam}={ticket}&returnUrl={returnUrl}

マルチ組織構成の場合
ブラウザアクセス: {HAP}/orgsso/ticket?{ticketParams.ticketParam}={ticket}&returnUrl={returnUrl}&appKey={appKey}&sign={sign}&timestamp={timestamp}&projectId={projectId}

複数の組織を使用する場合は、projectId をパラメーターで渡す必要があります。企業の認証・認可パラメーターも必要です。

企業認証の署名アルゴリズムは、{HAP}/apidoc/zh-Hans/ を参照してください。

補足

{HAP} は HAP システムの URL です。例:http://192.168.10.20:8880

{returnUrl} はログイン成功後のリダイレクト先 URL で、省略できます。アプリケーション画面に移動する場合の例:http://192.168.10.20:8880/app/cf595091-e3ac-4669-a320-068e55533c33/64477b37df36209b5f36f1cf/64477b4f61655012a90ed994?from=insite

アクセス中に SSO Error が表示された場合は、管理者アカウントで HAP にログインし、右上のアバターから「プラットフォーム管理 > 運用管理 > ログ」に進みます。サービス名が sso のログを検索して、エラーの原因を確認してください。