Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

About me •  ⼤瀧隆太 Ryuta Otaki ID : @takipone •  おしごと プリセールス/エンジニア @クラスメソッド •  好きなSORACOMサービス SORACOM Beam classmethod.jp 2

Slide 3

Slide 3 text

About us •  クラスメソッドは本⽇、SPSインテグレー ションパートナーに認定されました。 •  事業会社に向けてSORACOM&クラウドを 活⽤したITシステムの構築をご⽀援します。 •  AWSを⽤いたデータ分析・可視化が得意です。 classmethod.jp 3 NEW!!

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

例えばこれ •  JWTの解説記事、 あります。 •  「jwt 電⼦署名」 で検索 •  これから紹介する 構成もブログで 公開済みです。 classmethod.jp 5

Slide 6

Slide 6 text

今回構築したところ 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

Slide 7

Slide 7 text

1. トークンの取得 classmethod.jp 7 OK

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

今回構築したところ 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キー発⾏

Slide 10

Slide 10 text

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);

Slide 11

Slide 11 text

デモ1 classmethod.jp 11

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

作ってみました •  USBのプログラミングを知らないのでBLE(Bluetooth Low Energy)で作ってみました。 classmethod.jp 14 SORACOM Endorse BLEペリフェラル (OpenBlocks IoT BX1) BLEセントラル (Macbook) トークン 取得 ReadCharacteristic トークン⽂字列

Slide 15

Slide 15 text

•  Enjoy happy Endorse life!! classmethod.jp 15