MENU

Soracom

Users

SORACOM Krypton の仕組み

Krypton で使用する用語

サービスプロバイダー - デバイスを認証し、デバイスにサービスを提供します。AWS IoT や Google IoT などの IoT に特化したクラウドサービス、各種 Web サービスのように認証を行うことで適切な権限に基づくアプリケーションサービスへのアクセスを認可する動作を行うサービスプロバイダー全般を指します。Krypton では、利用したいサービスによって、当サービスプロバイダーを利用するためのプロビジョニング用 API を提供しています。

プロビジョニング API - サービスプロバイダーを利用するために、Krypton が提供しているプロビジョニングのための API です。Amazon Cognito, AWS IoT, SORACOM Inventory に対応しており、それぞれのサービスプロバイダー向けのプロジョニングサービスを提供しています。

Amazon Cognito 向けプロビジョニング API

  • /v1/provisioning/aws/cognito/credentials
  • /v1/provisioning/aws/cognito/open_id_tokens

AWS IoT 向けプロビジョニング API

  • /v1/provisioning/aws/iot/bootstrap

SORACOM Inventory 向けプロビジョニング API

  • /v1/provisioning/soracom/inventory/devices

API の詳細は、 Krypton プロビジョニング API リファレンスをご確認ください。

Krypton の仕組みと構成

AWS IoT の証明書を発行しデバイス登録

SORACOM Krypton では AWS IoT を自動的にプロビジョニングして、証明書を発行しデバイス登録ができます。あらかじめ証明書をデバイスにセットする必要はなく、デバイスの起動の初期設定として、プロビジョニングできます。

以下のような手順となります。

  • あらかじめ AWS IoT ポリシー、および IAM ユーザーを作成します。
  • Krypton のグループ設定を行います。

上記の処理が完了すると、IoT SIM および Krypton クライアントを搭載したデバイスは自動的に AWS IoT で自身をプロビジョニングし、MQTTS に接続できます。

Amazon Cognito から AWS サービスを利用するための期限付き認証情報を取得

Krypton では Amazon Cognito から AWS サービスを利用するための期限付き認証情報を取得できます。たとえば、Amazon S3 などの AWS サービスを一時的に利用できます。

Krypton では Amazon Cognito 開発者ガイド内にある「開発者が認証した ID の認証フロー」の「拡張認証フロー」をサポートしています。

Krypton は SIM を使用したデバイスを認証し、Amazon Cognito の GetOpenIdTokenForDeveloperIdentity API を呼び出し、OpenID トークンを受け取ります。さらに GetCredentialsForIdentity を呼び出して一時的な AWS クレデンシャルを受け取ることができます。

当連携を利用することで、お客様はデバイスにあらかじめ AWS 認証情報を埋め込むことなく AWS の任意のサービス対して AWS SDK を用いたアクセスが可能となります。さらに通信はセルラー回線である必要はなく、コストの低い WiFi や有線を主回線として用いながら、セルラーをバックアップに使うといった使い方も可能となります。

Krypton クライアント

Krypton クライアントは、 プロビジョニングのための認証方法のうち「SORACOM Endorse による SIM 認証」を使用する場合に使用します。

SORACOM Endorse による SIM 認証の場合、外部から読めない形で保存された SIM の秘密情報を使用して計算を行い認証を行います。当方式の場合、WiFi や Ethernet 等、IoT SIM を使用したセルラー回線での通信は不要です。 Krypton クライアントは以下の一連の処理を行います。

  • SIM 認証オプションが指定された場合は SORACOM Endorse による SIM 認証
  • Krypton API を使用し各サービスのプロビジョニング
  • Krypton API レスポンスの出力

動作環境として、Java が動作することが必要です。

  • Krypton Java クライアントの前提: JavaSE 8 以上

入手および利用方法については soracom-krypton-client-for-java をご確認ください。

Krypton プロビジョニング API

Krypton プロビジョニング API の詳細は、 Krypton プロビジョニング API リファレンスをご確認ください。