サービス統合説明
本ドキュメントでは、SERVICEME NEXT アプリケーションを他のウェブサイトや SSO(シングルサインオン)サービス と統合し、システム間の統一された認証とシームレスなアクセスを実現する方法について説明します。
1. 基本フロー
サービス統合の全体フローは以下の通りです:
-
SERVICEME NEXT ログインページにログインボタンを設定(任意)
- 製品のログインページにシングルサインオン入口を表示するため。
-
カスタムSSOフロントエンドページへリダイレクト
- 顧客システムのログインロジックを処理(ユーザー情報取得、生体認証呼び出しなど)。
-
カスタムSSOバックエンドAPIにアクセス
- SERVICEMEバックエンドとの連携を完了(ユーザー登録統一、Token発行など)。
-
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 に対応するページがカスタムログインページとなり、以下のロジックを実装する必要があります:
- 顧客のSSOシステムと認証連携を行う;
- カスタムSSOバックエンドと情報同期を行う;
- 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)、ユーザー統一認証、柔軟なフロントエンド・バックエンドのカスタム拡張をサポートします。