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

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}×tamp={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 のログを検索して、エラーの原因を確認してください。