Logo
Logo
CTRLK

共有コンポーネント

ユーザーと認証

Live Chat を通じてビジネスとやり取りするユーザーは、ユーザー と見なされます。

デフォルトでは、Live Chat ユーザーは 認証されていない 機能やチャット履歴へのアクセスが制限されています。メールアドレスや電話番号などの一意の識別子を指定することで、ユーザーを認証できます。

認証されたユーザーには、次の利点があります。

  • 常設チャット履歴
  • 一意のユーザー識別子
  • 複数のデバイス間でのチャット履歴へのアクセス
備考

チャット履歴の保持は、アカウントのデータ保持設定の対象となります。

各ユーザーは ユーザー で自動的に追跡され、リード顧客 の 2 つのユーザーの種類が区別されます。

認証されていないすべてのユーザーには Lead プロファイルが割り当てられ、認証されると、自動的に Customer に昇格します。

ウィジェットの設定を使用して、認証されたユーザーをリードとして保持できます。

ユーザー認証

ユーザーがチャットセッションを開始する前、またはユーザーがチャットを開始した後に、ユーザーを認証することができます。既存のチャット履歴を持つユーザーを認証すると、認証されたユーザーはそのチャット履歴を継承します。

**初めてユーザーを認証すると、その識別子を持つユーザープロファイルが People にまだ存在しない場合、Live Chat は指定された一意の識別子を持つ新しいプロファイルを自動的に作成します。

Live Chat での認証は、Web サイトとモバイルアプリのどちらでユーザーを認証するかによって、異なる方法で実現されます。

Web 認証

Web ユーザー認証は、パーソナライゼーショントークン、具体的にはウィジェットの秘密鍵で署名された JSON Web Token (JWT) によって管理されます。

備考

トークンが正しく署名されている限り、Live Chat は、トークン内にエンコードされたデータが正しく、ユーザーから提供されたものであることを完全に信頼します。NTT CPaaSは、たとえば、ユーザーが別のユーザーのチャット履歴を表示する可能性のある誤ったデータについて責任を負いません。

重要

JWTにアクセスできる人なら誰でも、その内容を読むことができます。**パスワードなどの機密情報をトークン ペイロードに含めないでください。

インテグレーターは、パーソナライゼーショントークンを生成し、それを Live Chat ウィジェットに提供する責任があります。

ユーザーを認証するには、以下のステップを実行します。

  1. ウィジェットの秘密鍵を取得します。
  2. ユーザーの 一意の識別子 を取得します。
  3. パーソナライゼーション トークン を生成します。
  4. パーソナライゼーショントークンをウィジェットに送信します。

ウィジェットの秘密鍵を取得する [#obtain-your-widgets-secret-key-web-authentication]

各 Live Chat ウィジェットには、パーソナライゼーショントークンの署名に使用される 1 つ以上の秘密鍵を含めることができます。

秘密鍵を取得するには、次のようにします。

  1. ウィジェットの設定ページに移動します。
  2. インストールとセキュリティセクション→秘密鍵の生成に移動します。
Live Chat - Obtain secret key

キー構造の例:

json
1{
2 "id": "43f7a6d6-f064-4a6b-8890-fff70b1363ca",
3 "key": "0wQGQwukZLkJNShlHS0Nm3SCiIwrWNfm7NEPOhukJhM="
4}
  • id: 秘密鍵の一意の識別子。この値は、JWT の ski フィールドに含まれます。
  • key: Base64 でエンコードされたシークレット値で、JWT の署名に使用されます。このキーは機密として扱い、パスワードと同じ注意を払って取り扱ってください。

秘密鍵は、設定インターフェイスからいつでも削除できます。

ユーザーの一意の識別子を取得する [#obtain-the-unique-identifier-of-your-user-web-authentication]

各ユーザーを区別するには、一意の識別子を指定する必要があります。Live Chat では、次の 3 種類の識別子がサポートされています。

  • メール - ユーザーのメール アドレス
  • MSISDN - ユーザーの電話番号 (MSISDN 形式)
  • 外部 ID - ユーザーごとに一意のシステムからの任意の文字列 ID
備考

ユーザーのプロファイルに複数の識別子が含まれている場合は、そのうちの 任意 を認証に使用できます。

パーソナライゼーショントークンを生成する [#generate-the-personalization-token-web-authentication]

備考

JSON Web トークン (JWT) に慣れていない場合は、先に進む前に、その構造と作成プロセスを確認することを 強くお勧めします。

パーソナライゼーショントークンを生成するには、JWT ジェネレーターを実装する必要があります。生成されるトークンは、次の条件を満たす必要があります。

  • JWT ペイロード構造 セクションで定義されている構造に従います
  • 最初のステップで取得した秘密鍵で署名する**
  • Base64 でエンコードされている

トークンが生成されてエンコードされたら、Live Chat が埋め込まれているフロントエンドにトークンを提供します。

トークンは、ユーザーの認証に 一度だけ使用できます**。認証の試行ごとに新しいトークンを生成する必要があります。Live Chat は、ユーザーの認証を明示的に解除するまで、認証されたセッションを維持します。

JWTジェネレータの例は、トークンジェネレータの例セクションにあります。

JWT ペイロードの構造

分野必須項目説明
algはい(ヘッダー値) 暗号化アルゴリズム。サポートされている値: HS256
typはい(ヘッダー値) トークンの種類。サポートされている値: JWT
iatはい発行時刻: Unix timestamp in seconds when the token created.
'ISS'はい発行者: ウィジェットの ID
'JTI'はいJWT ID: トークンごとに一意である必要があります。任意の文字列、最大 50 文字。
'スキー'はい秘密鍵 ID: トークンの署名に使用している秘密鍵の ID (値ではありません)。
stpはいサブジェクトタイプ:「サブジェクト」の識別子のタイプ。
許可された値:
•「電子メール」:標準化された電子メール形式。
msisdn: MSISDN 形式の電話番号。
externalPersonId: システムに固有の任意の文字列ユーザー識別子 (最大 100 文字)。
'サブ'はい件名: stp の型に一致する一意の識別子の値。
'経験値'いいえ有効期限: Unix タイムスタンプ トークンの有効期限が 秒単位。設定されていない場合、デフォルトはiat + 15 secondsです。
iat + 15 seconds ** より小さい値は推奨されません
sidいいえセッション ID: セッション無効化 API に使用される一意のユーザー セッション識別子。最大 50 文字です。

デコードされたトークンの例

json
1{
2 "alg": "HS256",
3 "typ": "JWT"
4}.
5{
6 "iat": 1748599897,
7 "iss": "da73dfca-7e33-43de-9e97-ece90aaada22",
8 "jti": "c0625f5a-676c-4dcc-883d-eea8f06f4ae5",
9 "ski": "43f7a6d6-f064-4a6b-8890-fff70b1363ca",
10 "stp": "email",
11 "sub": "john.doe@infobip.com",
12 "exp": 1748599912,
13 "sid": "8b52e759-5955-49d9-bb44-bc1b1ca22745"
14}.
15e4OIOAxyyjLNOk2TglcOmx4tpstrc4rBzYL-_gU1_I0

エンコードされたトークンの例

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NDg1OTk4OTcsImlzcyI6ImRhNzNkZmNhLTdlMzMtNDNkZS05ZTk3LWVjZTkwYWFhZGEyMiIsImp0aSI6ImMwNjI1ZjVhLTY3NmMtNGRjYy04ODNkLWVlYThmMDZmNGFlNSIsInNraSI6IjQzZjdhNmQ2LWYwNjQtNGE2Yi04ODkwLWZmZjcwYjEzNjNjYSIsInN0cCI6ImVtYWlsIiwic3ViIjoiam9obi5kb2VAaW5mb2JpcC5jb20iLCJleHAiOjE3NDg1OTk5MTIsInNpZCI6IjhiNTJlNzU5LTU5NTUtNDlkOS1iYjQ0LWJjMWIxY2EyMjc0NSJ9.e4OIOAxyyjLNOk2TglcOmx4tpstrc4rBzYL-_gU1_I0

パーソナライゼーショントークンをウィジェットに送信する [#submit-the-personalization-token-web-authentication]

トークンを生成したら、SDK の Auth コマンドを使用してウィジェットに送信します。トークンは必ず Base64 でエンコードされた形式で指定してください

トークンをウィジェットに正常に送信すると、ユーザーが認証されます。

モバイルアプリ認証

モバイルアプリのインストールの場合、Live Chat は Mobile SDK (AndroidiOS) を使用して People でユーザを管理します。

Mobile SDK によるユーザの管理方法についての詳細は、Android または iOS ドキュメントの「ユーザとインストール」セクションを参照してください。

プッシュ通知登録 ID (ユーザーのデバイスに対する NTT CPaaS の一意の識別子) も匿名ユーザーを一意に識別するため、**People にプロファイルを持つすべてのモバイル ユーザーは、リード または 顧客 の状態に関係なく、チャット履歴を無期限に保持します。

セキュリティの強化 [#additional-security-mobile-app-authentication]

セキュリティを強化するために、モバイルアプリの認証時にパーソナライゼーショントークンを要求できます。トークンは、Web 認証の場合と同じ方法で生成し、Mobile SDK に提供する必要があります。

Mobile SDK にトークンを提供する方法の詳細については、Android または iOS のドキュメントを参照してください。

パーソナル化トークンを使用してモバイルで認証する場合、Live Chat は、ユーザーの People プロファイルに一意の識別子を自動的に追加したり、新しいプロファイルを作成したりしません。トークンで指定される一意の識別子は、ユーザーのプロファイルに既に存在している必要があります。

これは、次のいずれかの方法で確認できます。

  • ユーザー プロファイルを手動で更新する
  • Mobile SDK のパーソナライズ機能の使用
  • プッシュ インスタンスのパーソナル化 REST API を呼び出す

モバイル・ユーザーのセキュリティーを強化するには、次のようにします。

  1. ウィジェットの設定ページに移動します。
  2. インストールとセキュリティセクションに移動します。
  3. モバイル アプリの顧客認証 をオンにします。
Live Chat - Mobile app auth

おすすめの方法

モバイルでユーザーを認証する場合は、より長いTTL(トークンのexpフィールドで設定される有効期限)を使用することをお勧めします。パーソナライゼーショントークンは、初期認証と、特定のエラーが発生した場合の自動再認証の両方をサポートします。TTL を長く設定すると、ユーザーの認証が維持され、チャット エクスペリエンス中の中断が軽減されます。

ユーザーの認証解除

通常、ユーザーがプラットフォームに認証またはログインするときに、Live Chat を使用してユーザーを認証します。シームレスなエクスペリエンスとセキュリティの向上のために、ログアウト時にユーザーの認証を解除することをお勧めします。

次の方法でユーザーの認証を解除できます。

  • Web - ログアウト Live Chat SDK コマンドを使用します。
  • モバイルアプリ - Mobile SDK の 非個人化 機能を使用します (Android, iOS)。
  • Web アプリとモバイル アプリ - セッションの 無効化 API を呼び出します。この API を使用するには、パーソナライゼーション トークンに セッション識別子 (sid) を含める必要があることに注意してください。

トークンジェネレータの例

備考

署名に使用する前に、Base64から秘密鍵をデコードすることを忘れないでください。

Node.js [#node-js-token-generator-examples]



ジャワ [#java-token-generator-examples]



Kotlin (英語) [#kotlin-token-generator-examples]



速い [#swift-token-generator-examples]



PHPの [#php-token-generator-examples]