カスタマーサービス
顧客対応プラットフォームのシングルサインオン:サポートチームのためのOpenID Connect設定ガイド
お客様との会話を一日中扱う担当者は、別のパスワードではなく会社のアカウントでサインインすべきです。OpenID Connect SSOの仕組み、有効にする前に決めておくこと、オンプレミス版 MonoChat での設定手順を紹介します。
MonoChatチーム 更新日: 2 分で読めます
目次
顧客対応プラットフォームのシングルサインオン(SSO)とは、担当者が別のパスワードではなく、Microsoft Entra ID、Okta、Keycloak、AD FS、Google Workspace などのIDプロバイダー上にある会社のアカウントでサインインする仕組みです。その土台となる標準規格が OpenID Connect(OIDC)です。オンプレミス版 MonoChat では、インストール全体に対して一度設定し、自社のメールドメインに限定し、さらにSSOを唯一のサインイン方法にすることもできます。
サポートチームには、SSOを気にするはっきりした理由があります。担当者のアカウントを開けば、見られる範囲の WhatsApp、Instagram、Messenger の会話がすべて表示されるからです。氏名、電話番号、注文内容、ときには健康や支払いに関する相談も含まれます。このアカウントは社内の他のアカウントと同じルールに従うべきで、退職した日には使えなくなっているべきです。
日本では LINE が顧客対応の主役ですが、訪日のお客様、海外のお客様、東南アジアやインド、中東、中南米の取引先とやり取りする企業では WhatsApp を使う場面があります。海外向けのチャネルを担当者が共有する以上、サインインの管理は後回しにできません。
サポートチームにとってサインインが重要な理由
認証情報の盗難や悪用は、いまでも企業への侵入経路として最も多いものの一つです。Verizon の「2025 Data Breach Investigations Report」は、確認された12,195件の侵害を分析し、認証情報の悪用(22%)と脆弱性の悪用(20%)が最初の攻撃経路の上位であったと報告しています。
メッセージングプラットフォームが独自のパスワードを持つと、担当者ごとに認証情報がもう一組増えます。使い回されるパスワードが一つ増え、退職時に消し忘れるアカウントが一つ増え、多要素認証や条件付きアクセスの対象外になるログインが一つ増えます。SSOなら、プラットフォームはパスワードを一切目にしません。パスワードの確認、MFA やアクセスポリシーの適用はIDプロバイダーが行い、誰がサインインしたかだけをプラットフォームに伝えます。
OpenID Connect のサインインの流れ
OpenID Connect は OAuth 2.0 の上に載ったID層です。MonoChat が使うのは認可コードフローです。
- 担当者がサインインページの SSO ボタンをクリックします。MonoChat がポップアップでIDプロバイダーのサインインページを開きます。
- 担当者がそこでサインインします。MFA やポリシーはIDプロバイダー側のものが適用されます。
- IDプロバイダーが、ワンタイムコードを付けてブラウザーを MonoChat に戻します。
- MonoChat サーバーが、サーバー間通信でコードをIDトークンに交換します。トークンがブラウザーを通ることはありません。
- MonoChat がIDトークンを検証し、担当者をサインインさせます。
IDトークンとは、OpenID Connect の仕様の言葉を借りれば「a security token that contains Claims about the Authentication of an End-User」です。MonoChat は次の条件をすべて満たす場合にだけ受け付けます。
- IDプロバイダーの鍵のいずれかで署名されている。鍵は、サインインのたびにディスカバリードキュメント(
<issuer>/.well-known/openid-configuration)から読み込みます。 - 発行者(
iss)が自社の発行者で、対象者(aud)が MonoChat のクライアントIDであり、有効期限(exp)が切れていない。 - MonoChat がリクエストと一緒に送った
nonceを含んでいる。これでトークンがこのサインインに結び付き、再送攻撃を防げます。 - 本人のメールアドレスを含み、プロバイダーがそのアドレスを未確認だと示していない。
リクエストには PKCE(S256)と state 値も使われ、サインインリクエストの有効期間は10分で、一度しか使えません。
SSOを有効にする前に決める5つのこと
| 決めること | 選択肢 | サポートチームへのおすすめ |
|---|---|---|
| サインインできる人 | すべてのドメイン、または自社のメールドメインのみ | 自社のドメインに限定する |
| 初回サインイン時の動作 | アカウントを作成する、または招待された人だけ受け付ける | IDプロバイダーが在籍者を管理しているなら、アカウントを作成する |
| 既存アカウントの扱い | メールが確認済みなら初回サインインでSSOを連携、またはパスワードで一度サインインしたあとに連携 | プロバイダーが email_verified を送るかどうかによる |
| 他のサインイン方法 | パスワードとソーシャルサインインを残す、またはSSOのみ | 全員がSSOを連携したあとはSSOのみ |
| 新しいワークスペースを作れる人 | アカウントを持つ誰でも、または適切なロールを持つ人だけ | 社内向けのインストールでは、自由なワークスペース作成をオフにする |
設定を変更する前に、この5点を書き出しておきましょう。セキュリティ担当者から必ず聞かれる質問であり、答えによって必要な設定が決まります。
オンプレミス版 MonoChat でSSOを設定する
SSOはワークスペースごとではなく、サーバー設定でインストール全体に対して設定します。詳しい手順はヘルプセンターのシングルサインオンのページにあります。ここでは要点を紹介します。
1. IDプロバイダーに MonoChat を登録する
クライアントシークレット付きのウェブアプリケーションを作成し、次を設定します。
- リダイレクト URI は
https://<your MonoChat domain>/api/oauth/oidc/redirect。 - 認可コードグラント。
- スコープは
openid email profile。 - クライアント認証は、シークレットを HTTP Basic で送る方式(
client_secret_basic)。
IDトークンに email クレームが含まれることを確認し、クライアントID、クライアントシークレット、発行者を控えておきます。
2. 発行者を一字一句そのままコピーする
発行者は、プロバイダーのディスカバリードキュメントにある issuer の値です。代表的な形式は次のとおりです。
| IDプロバイダー | 発行者 |
|---|---|
| Microsoft Entra ID | https://login.microsoftonline.com/<tenant id>/v2.0 |
| Okta | https://<your Okta domain>/oauth2/default または https://<your Okta domain> |
| Keycloak | https://<your Keycloak host>/realms/<realm> |
| AD FS 2016 以降 | https://<your AD FS host>/adfs |
| Google Workspace | https://accounts.google.com |
ブラウザーで <issuer>/.well-known/openid-configuration を開き、末尾にスラッシュがあればそれも含めて、値を一文字ずつそのままコピーしてください。両者が一致しないと MonoChat はすべてのサインインを拒否します。最初のテストが失敗する原因として最も多いのがこれです。
3. 設定を追加して再起動する
公開してよい部分(発行者、クライアントID、リダイレクトのパス、スコープ、ボタンの文言)は public.oauth.oidc に、クライアントシークレットは oauth.oidc に置き、サーバー上にだけ残します。ここには、先ほどの表で決めた内容を反映する2つのオプションがあります。
autoCreateAccounts: trueは、サインアップが招待制であっても、SSOでの初回サインイン時に MonoChat のアカウントを作成します。allowedEmailDomains: ["yourcompany.com"]は、他のドメインのアドレスをすべて拒否します。Google Workspace では、個人の Google アカウントなら任意のドメインのアドレスを使えるため、MonoChat はメールアドレスではなくアカウントの Workspace ドメイン(hdクレーム)を確認します。
ボタンの文言は、各ユーザーの言語で「SSOでサインイン」と表示されるか、設定したラベルになります。たとえば「Northwind SSOでサインイン」のようにできます。
4. SSOを唯一の方法にする(安全に)
全員がSSOを連携し終えたら、許可するサインイン方法(public.auth.methods)を ["oidc"] に設定します。サインインページには SSO ボタンだけが表示され、サーバーはパスワードとソーシャルサインインを拒否します。ルートのスーパーユーザーは /auth/signin?fallback=1 でパスワードによるサインインを続けられるため、IDプロバイダーが停止してもインストールが使えなくなることはありません。新しいSSOアカウントが自分のワークスペースを作れないようにするには、public.disableTenantCreation を true にします。
5. 4パターンのサインインをテストする
- アカウントがある人:ポップアップが閉じ、サインインできる。
- アカウントがない人:アカウントが作成される。アカウント作成を有効にしていなければ拒否される。
- 別のドメインの人:ドメインを制限していれば拒否される。
- SSOのみの設定でのパスワードサインイン:拒否される。ルートの代替サインインは使える。
既存の担当者:アカウントはどう連携されるか
多くのチームは、すでに MonoChat のアカウントを持つ担当者がいる状態でSSOを有効にします。MonoChat は、同じメールアドレスの既存アカウントにSSOを次のどちらかの方法で連携します。
- 自動で連携:SSOでの初回サインイン時に、インストールが統合を許可していて、IDトークンがアドレスを確認済みだと示している場合(
email_verified: true)。 - パスワードで一度サインインしたあとに連携:それ以外のすべての場合。MonoChat は一度パスワードでサインインするよう促し、そのときにSSOを連携します。ワークスペースへの招待を承認した場合も連携されます。
Microsoft Entra ID と AD FS は email_verified を送りません。この2つを使う場合は、SSOのみに切り替える前に、全員がSSOを連携し終えるまでパスワードサインインを許可しておくか、全員を招待し直してください。
SSOは身元、ロールはアクセス権
サインインで得られるのはアカウントであり、会話へのアクセス権ではありません。MonoChat のアカウントは複数のワークスペースに所属でき、ワークスペースを選ぶ前にサインインします。ワークスペースから招待され、ロールを付与されて初めてそのワークスペースが表示され、ロールによって見られるチャネル、会話、設定が決まります。設定方法はチーム受信トレイのロールと権限をご覧ください。
この分担は、監査担当者が確認したがるポイントでもあります。
- 入社: IDプロバイダーで本人を作成し、ワークスペースの管理者が招待してロールを選ぶ。
- 異動: MonoChat でロールやワークグループを変更する。サインインは変わらない。
- 退職: IDプロバイダーで本人を無効化し、MonoChat のワークスペースからも削除する。
事前に把握しておきたい制限
- モバイルアプリ。 MonoChat の Android / iOS アプリは、まだSSOに対応していません。SSOだけをサインイン方法にすると、担当者はスマートフォンからサインインできなくなります。モバイルを使う担当者のために別の方法を残すか、デスクトップのみのシフトで運用する計画を立ててください。
- サインアウト。 MonoChat からサインアウトしても、IDプロバイダーからはサインアウトされません。IDプロバイダー側でサインアウトしても、MonoChat からはまだサインアウトされません。退職者をIDプロバイダーで無効化すれば新しいサインインは止まりますが、ワークスペースからも削除してください。
- ネットワーク。 利用者のブラウザーが
/api/oauth/oidc/authorizeとリダイレクトのパスに到達できること、そして MonoChat サーバーがプロバイダーのディスカバリードキュメント、トークンエンドポイント、鍵セットに HTTPS で到達できることが必要です。IPアドレスでインストールを制限している場合も、これらの経路を考慮してください。
MonoChat のなかでのSSOの位置づけ
SSOはインストール全体のサーバー設定で行うため、現時点ではオンプレミス版 MonoChat のものです。オンプレミスは、自社のサーバーでプラットフォームを動かし、独自の LLM とベクトルデータベースを使いたいチーム向けのエンタープライズのオプションです。エンタープライズのページでオンプレミスの内容を、セキュリティのページでロールベースのアクセス制御、ワークスペースの分離、認証・認定を紹介しています。AI 導入におけるデータの扱いについては、AI チャットボットのプライバシーチェックリストをご覧ください。
まず製品そのものを試したい場合は、app.monochat.ai の無料の Basic プランで、担当者1名とチャネル1つを利用できます。
出典
MonoChatで実践する