双方向SSL認証は、証明書をベースにした相互認証プロトコルで、双方の当事者が提供されたデジタル証明書を検証し合って、お互いに相手の身元を確認することです。それは、クライアント(Webブラウザやクライアントアプリケーション)がサーバー(Webサイトやサーバーアプリケーション)に対して自己認証を行い、さらに、サーバーも信頼できる認証局(CA)が発行したパブリックキー証明書/電子証明書を検証することにより、クライアントに対して自己認証を行うことを意味します。
Kore.aiの実装
Kore.ai Botsプラットフォームは、クラウドサービスにおいてこのサポートをデフォルトで提供しています。利用するサービスが双方向SSLを必要とする場合は、プラットフォームが証明書を提供します。
オンプレミスのユーザーについて
ボットプラットフォームをインストールするときは、インストールガイドに指定された手順に従ってSSL証明書を設定します。
必要条件
双方向のSSL(相互認証)接続を確立するためには、以下が必要となります。
-
- プライベートキー
- クライアント証明書
- 認証局ルート証明書
- 認証局中間証明書。
クライアントは、信頼できる任意の認証局(CA)から証明書を取得することができます。
作業
ボットプラットフォームが相互認証(または双方向SSL)を必要とするAPI呼び出し(サービスノードから)のためにバックエンドサービスを呼び出すときは常に、ボットプラットフォームは、設定済み証明書をAPIエンドポイントに提示し、SSLハンドシェイクを行います。証明書が有効でない場合や、APIサービスから信頼されていない場合、ボットはその呼び出しを行うことができません。ボットプラットフォームとAPIサーバーとの間のSSLハンドシェイクにおける認証メッセージのやり取りは、以下の手順で行われます。
- ボットプラットフォームは、設定済みAPIエンドポイントにリクエストを行います。
- APIサーバーは、その証明書をボットプラットフォームに提示します。
- ボットプラットフォームは、サーバーの証明書を検証します。
- 成功した場合、ボットプラットフォームは、設定済み双方向SSL証明書をAPIサーバーに送信します。
- APIサーバーは、提示された資格情報証明書を検証します。
成功した場合、サーバーはボットプラットフォームにAPIアクセスを許可します。このプロセスは、ボット内のサービスノード(サービスノードについての詳細はこちら)に適用されます。