Skip to main content

サービス統合説明

本ドキュメントでは、SERVICEME NEXT アプリケーションを他のウェブサイトや SSO(シングルサインオン)サービス と統合し、システム間の統一された認証とシームレスなアクセスを実現する方法について説明します。


1. 基本フロー

サービス統合の全体フローは以下の通りです:

  1. SERVICEME NEXT ログインページにログインボタンを設定(任意)

    • 製品のログインページにシングルサインオン入口を表示するため。
  2. カスタムSSOフロントエンドページへリダイレクト

    • 顧客システムのログインロジックを処理(ユーザー情報取得、生体認証呼び出しなど)。
  3. カスタムSSOバックエンドAPIにアクセス

    • SERVICEMEバックエンドとの連携を完了(ユーザー登録統一、Token発行など)。
  4. SERVICEME NEXT ログインページへリダイレクト

    • Tokenを携えてSERVICEME NEXTに戻り、自動ログインを実現。

フロー図例示


2. 具体的な操作説明

2.1 ログインページのシングルサインオンボタン設定

このステップは任意です。ログインページに「カスタムログイン」ボタンを表示したい場合、環境変数に設定を追加します。

SERVICEME NEXT 環境変数管理ページに入り、SSO_LOGIN_CONFIGに以下の内容を設定してください:

{
"type": "Custom",
"code": "my-custom-sso",
"config": {
"LOGIN_BUTTON_I18N_KEY": "login.sso.custom.login",
"LOGIN_URL": "/custom-login",
"APP_ID": "BskGfSXPNt5AfQXMO6b1M"
}
}

設定完了後、ログインページにボタンが表示され、クリックすると以下のリンクに遷移します:

https://<frontend-deploy-host>/custom-login?code=my-custom-sso&APP_ID=BskGfSXPNt5AfQXMO6b1M

カスタムマウントページの詳細は、製品フロントエンドカスタムマウント静的リソースガイド - Overview を参照してください。


2.2 カスタム開発シングルサインオンページ

LOGIN_URL に対応するページがカスタムログインページとなり、以下のロジックを実装する必要があります:

  1. 顧客のSSOシステムと認証連携を行う;
  2. カスタムSSOバックエンドと情報同期を行う;
  3. Tokenを取得後、SERVICEME NEXTのログインルートへリダイレクトする。

リダイレクト形式は以下の通りです:

https://<frontend-deploy-host>/login-token?token=<new-jwt-token>

SERVICEMEフロントエンドはこのTokenの信頼性を検証し、合格すればシステムにログインします。
JWT Tokenは有効なものであり、正当なClientによって発行されていることを必ず確認してください。


2.3 カスタム開発SSOバックエンド

カスタムSSOバックエンドは主にユーザーToken発行とアカウント管理を担当します。
発行には Client ID + Secret が必要なため、まずSERVICEME管理画面でClientを作成してください。

関連APIは以下を含みます:

  • ユーザーAPI:ユーザーの検索、作成、更新。ユーザー名、メール、社員番号で検索可能;
  • サードパーティログインAPI:サードパーティアカウントの連携管理;
  • Client API:Token発行(信頼ドメインフィールドは無視);
  • ロール/組織API:ロールと部署の同期用。

2.4 カスタム開発フロントエンド・バックエンドサービスのマウント

SERVICEME NEXTフロントエンドイメージは2つのマウントポイントを提供しています:

マウントパス説明
/etc/nginx/custom_confカスタムNginx設定のマウント
/usr/share/nginx/staticカスタム静的リソース(フロントエンドページ)のマウント

2.4.1 カスタムフロントエンドページのマウント

カスタムHTMLページを以下に配置します:

/usr/share/nginx/static/app2/

そして custom.conf に以下を追加してください:

location /app2 {
root /usr/share/nginx/static/;
index index.html index.htm index.shtml;
try_files $uri $uri/ /index.html;

if ($request_filename ~* .*\.html$) {
add_header Cache-Control "no-cache, no-store";
}
}

コンテナ起動時にディレクトリをマウントします:

docker run -p 80:80 \
-v ./custom.conf:/etc/nginx/custom_conf/custom.conf \
-v ./static:/usr/share/nginx/static \
servicemerelease.azurecr.io/serviceme-frontend:4.0.0

2.4.2 カスタムバックエンドサービスのマウント

カスタムバックエンドサービスが社内ネットワークの http://delivery-backend にあると仮定し、
フロントエンドの /custom-backend/ パスでアクセスしたい場合、custom.conf に以下の設定を追加します:

location /custom-backend/ {
proxy_pass http://delivery-backend/;
proxy_connect_timeout 240s;
proxy_read_timeout 240s;
proxy_send_timeout 240s;
proxy_buffering off;
}

結び

以上の手順により、SERVICEME NEXTと企業内部システムのシームレスな統合が可能となり、
シングルサインオン(SSO)、ユーザー統一認証、柔軟なフロントエンド・バックエンドのカスタム拡張をサポートします。