SORACOM Endorseによる SIMカードとAWSの認証連携

Ecd0c945f6911dbf75358a8addee15f7?s=47 takipone
January 27, 2016

SORACOM Endorseによる SIMカードとAWSの認証連携

SORACOM Conference 2016 “Connected” T4セッション ゲストスピーカー

Ecd0c945f6911dbf75358a8addee15f7?s=128

takipone

January 27, 2016
Tweet

Transcript

  1. SORACOM Endorseによる SIMカードとAWSの認証連携 SORACOM Conference 2016 “Connected” classmethod.jp 1 2016/1/27

    ⼤瀧隆太
  2. About me •  ⼤瀧隆太 Ryuta Otaki ID : @takipone • 

    おしごと プリセールス/エンジニア @クラスメソッド •  好きなSORACOMサービス SORACOM Beam classmethod.jp 2
  3. About us •  クラスメソッドは本⽇、SPSインテグレー ションパートナーに認定されました。 •  事業会社に向けてSORACOM&クラウドを 活⽤したITシステムの構築をご⽀援します。 •  AWSを⽤いたデータ分析・可視化が得意です。

    classmethod.jp 3 NEW!!
  4. About us •  クラスメソッドは技術ブログの会社です。 •  Developers.IO http://dev.classmethod.jp/ •  SORACOMネタで30本あります。 classmethod.jp

    4
  5. 例えばこれ •  JWTの解説記事、 あります。 •  「jwt 電⼦署名」 で検索 •  これから紹介する

    構成もブログで 公開済みです。 classmethod.jp 5
  6. 今回構築したところ SORACOMが提供 SIMカードとAWSの認証連携 classmethod.jp 6  Endorse 公開鍵 in S3 AWS

    API Endorse SORACOM API Amazon API Gateway AWS Lambda AWS IAM SORACOM Air SIM トークンを リクエスト、取得 トークンを渡して AWS APIキーを取得 AWS APIキーで APIをコール 1 2 3
  7. 1. トークンの取得 classmethod.jp 7 OK

  8. 1. トークンの取得 classmethod.jp 8 Air SIM経由以外の経路、 Endorseが無効のAir SIMからの アクセスはエラーになる NG

  9. 今回構築したところ SORACOMが提供 2. トークン検証とAWS⼀時キー発⾏ classmethod.jp 9  Endorse 公開鍵 in S3

    SORACOM API API Gateway (ディスパッチャ) AWS Lambda (ロジック) AWS IAM (APIキー発⾏者) リクエスト : JWT署名済トークン レスポンス : AWS APIキー Endorse a. JWT公開鍵を 取得して トークンを検証 b. トークンに 含まれるIMSI をリスト照会 c. APIキー発⾏
  10. 2. トークン検証とAWS⼀時キー発⾏ classmethod.jp 10 3: var jwt = require('jsonwebtoken'); :

    17: // トークンをデコード 18: var decoded = jwt.decode(event.token, {complete: true}); 19: // デコードしたペイロードからIMSIを取得 20: var imsi = decoded.payload['soracom-endorse-claim'].imsi; 21: // デコードしたヘッダに含まれるキー名からキーストアのURLを⽣成し、取得 22: request(sora_keystore + decoded.header.kid, function (err, response, body){ 23: var pubkey = body; 24: try { 25: // トークンの検証が成功すればtryブロックを継続 26: jwt.verify(event.token, pubkey);
  11. デモ1 classmethod.jp 11

  12. ONE MORE!(デモ2) classmethod.jp 12

  13. Endorseトークン取得をデバイスで •  USBトークン/3Gモデム兼⽤のデバイスがあるといいなぁ •  PCのネットワークは接続させずトークン取得専⽤にすれ ば、SORACOMの従量課⾦で維持費は少額で済む •  SIMの有効/無効はリモートからAPIで操作できるので、デ バイスの有効/無効は思いのまま。 • 

    IMEI(デバイス固有ID)でSIM盗難対策もOK classmethod.jp 13 USBトークン 3Gモデム
  14. 作ってみました •  USBのプログラミングを知らないのでBLE(Bluetooth Low Energy)で作ってみました。 classmethod.jp 14 SORACOM Endorse BLEペリフェラル

    (OpenBlocks IoT BX1) BLEセントラル (Macbook) トークン 取得 ReadCharacteristic トークン⽂字列
  15. •  Enjoy happy Endorse life!! classmethod.jp 15