Skip to main content

サービス統合説明

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


1. 基本フロー

サービス統合の全体的な流れは以下の通りです:

  1. SERVICEME NEXT ログインページにログインボタンを設定する(オプション)

    • 製品のログインページにシングルサインオンの入口を表示するために使用します。
  2. カスタムSSOフロントエンドページへ遷移する

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

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

    • トークンを持って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. トークン取得後、SERVICEME NEXTのログインルートへリダイレクト。

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

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

SERVICEMEフロントエンドはこのトークンの信頼性を検証し、認証が通ればシステムにログインできます。 JWTトークンが有効であり、正当なクライアントによって発行されていることを確認してください。


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

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

関連APIは以下の通りです:

  • ユーザーAPI:ユーザーの検索、作成、更新。ユーザー名、メールアドレス、社員番号で検索可能;
  • サードパーティログインAPI:サードパーティアカウントの連携管理;
  • クライアントAPI:トークン発行(信頼ドメインフィールドは無視);
  • ロール/組織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)、ユーザー統一認証、柔軟なフロントエンド・バックエンドのカスタム拡張に対応できます。