メインコンテンツへ移動

CAS

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

デフォルトのデータディレクトリは /data/mingdao/script/volume/sso/sso.json です。

注意: マウント後に404エラーが出る場合、内容を json.cn にコピーし、JSON形式が正しいか確認してください。

{
"mode": "common-cas",
"name": "cas",
"cas": {
"casUrl": "",
"myserviceUrl": "",
"serviceValidate": "/serviceValidate",
"login": "/login",
"logout": "/logout",
"casParams": {
"UserId": "{{&user}}",
"Name": "{{&attributes.name}}",
"Email": "{{&user}}@test.com"
},
"autoRegister": true,
"projectId": ""
}
}

パラメータと説明​

パラメータ型必須説明
cas.casUrlString必須CAS認証サーバのURL
cas.myserviceUrlString必須CASシングルサインオンサービスのURL。{HAP}/orgsso を設定してください
cas.serviceValidateString必須チケット認証のパス。casUrl+serviceValidate へアクセスして認証します
cas.loginString必須ログイン用のパス。casUrl+login へアクセスして認可・認証を行います
cas.logoutString必須ログアウト用のパス。casUrl+logout へアクセスして認証状態を終了します
cas.casParamsObject必須ユーザー情報返却時のフィールドマッピング。キーは固定、値は実ユーザー情報を設定します。パラメータ設定
cas.params.UserIdString必須ユーザーの一意識別子
cas.params.NameString任意氏名。既存ユーザーがいる場合は上書きされます
cas.params.EmailString任意メールアドレス。メールで検索または登録する場合は必須。 メールか携帯番号のいずれか必須。既に外部関係に紐づいている場合、メール・携帯番号なしでもユーザー特定可能
cas.params.MobileString任意携帯番号。携帯番号で検索または登録する場合は必須
autoRegisterBoolean任意アカウントが存在しない場合に自動作成するかどうか。デフォルトは true
projectIdString必須HAPでの組織ID。組織管理 > 組織 > 基本情報 > 組織ID( 複数組織SSOの場合は不要、手順3参照)。例: 1x-2x-3x-4x-5x

連携イメージ​

CASの連携フロー

CASから返却されるユーザー情報の形式はXMLのみ対応しています。他形式はサポートされません。
返却結果に応じてcasParamsのマッピングフィールドを設定してください。
例:

<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
<cas:authenticationSuccess>
<cas:user>test</cas:user>
<cas:attributes>
<cas:name>Jack</cas:name>
</cas:attributes>
</cas:authenticationSuccess>
</cas:serviceResponse>

casParamsの設定例:

"casParams": {
"UserId": "{{&user}}",
"Name": "{{&attributes.name}}",
"Email": "{{&user}}@test.com"
}

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

ファイルを作成し、CAS認証サービスの同期ログアウト設定を追加します。デフォルトは /data/mingdao/script/volume/wwwapi/appextensions.json です。
以下内容を追加してください:

{
"AppSettings": {
"EnableSsoLogoutRedirect": true
}
}

マイクロサービス用 docker-compose.yaml を修正します。
デフォルトパス: /data/mingdao/script/docker-compose.yaml
volumesにファイルマウント設定を追加し、マイクロサービスを再起動してください。

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

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

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

{
"relation": true
}

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

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

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

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

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

単一の組織

ブラウザーで次の URL にアクセスします:{HAP}/orgsso/sso?returnUrl={returnUrl}

複数の組織

ブラウザーで次の URL にアクセスします:{HAP}/orgsso/sso?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 のログを検索して、エラーの原因を確認してください。