Soracom

Users

ドキュメント
Home ドキュメント SORACOM Endorse Getting Started

ユーザーデータを利用する

Endorse の認証トークンには、Endorse によって付与される情報 (IMSI、IMEI、MSISDN) に加えて、任意の Key Value ペアを soracom-endorse-claim.requestParameters に含められます。

たとえば、Web サイトや認証サーバーから、Endorse のエンドポイント (https://endorse.soracom.io) にクライアントをリダイレクトさせて認証トークンを発行する場合に、リダイレクト元の Web サイトで発行したセッション ID などを認証トークンに含めることができます。

ユーザーデータを利用するには

あらかじめ、Endorse を有効化する ときに、[認証トークンに含める項目][リクエストパラメータ] にチェックを入れてください。

(1) 認証トークンを発行する

Endorse を有効化 したグループに所属する IoT SIM を利用するデバイスで、Air for セルラーを利用して SORACOM に接続していることを確認してから、以下のコマンドを実行します。

  • GET の場合

    $ curl https://endorse.soracom.io?username=foo&sessionId=bar
    
    {"token":"eyJraWQiOiJ2MS1mMmZlYTA2MGI5M2Y1MTBiZmI3MjJmMmNkNGIzNzc0ZS14NTA5LnBlbSIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJodHRwczovL3NvcmFjb20uaW8iLCJhdWQiOiJzb3JhY29tLWVuZG9yc2UtYXVkaWVuY2UiLCJleHAiOjE2Nzk5Mjk1OTAsImp0aSI6Im5kUDFLYXUzMXMyZFVCaklZYnltR1EiLCJpYXQiOjE2Nzk5MjM1OTAsIm5iZiI6MTY3OTkyMzUzMCwic3ViIjoic29yYWNvbS1lbmRvcnNlIiwic29yYWNvbS1lbmRvcnNlLWNsYWltIjp7Imltc2kiOiIyOTUwNTA5MTMyNDQyMjMiLCJpbWVpIjoiODY3Njk4MDQ3NDM3NTgwIiwicmVxdWVzdFBhcmFtZXRlcnMiOnsidXNlcm5hbWUiOiJmb28ifX19.ZzgwvTEYG9xXNZwDgNsVPR3lCToZr7Pl1B6_y104XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}
    

    token の値 (eyJra...) が認証トークンです。

  • PUT の場合

    $ curl -X POST https://endorse.soracom.io \
    -d '{
      "username": "foo",
      "sessionId": "bar"
    }'
    
    {"token":"eyJraWQiOiJ2MS1mMmZlYTA2MGI5M2Y1MTBiZmI3MjJmMmNkNGIzNzc0ZS14NTA5LnBlbSIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJodHRwczovL3NvcmFjb20uaW8iLCJhdWQiOiJzb3JhY29tLWVuZG9yc2UtYXVkaWVuY2UiLCJleHAiOjE2Nzk5MjkxNjksImp0aSI6IldlR2tCamVsX0dySFd4UERkRzktR2ciLCJpYXQiOjE2Nzk5MjMxNjksIm5iZiI6MTY3OTkyMzEwOSwic3ViIjoic29yYWNvbS1lbmRvcnNlIiwic29yYWNvbS1lbmRvcnNlLWNsYWltIjp7Imltc2kiOiIyOTUwNTA5MTMyNDQyMjMiLCJpbWVpIjoiODY3Njk4MDQ3NDM3NTgwIiwicmVxdWVzdFBhcmFtZXRlcnMiOnsie1xuICAgICAgXCJ1c2VybmFtZVwiOiBcImZvb1wiLFxuICAgICAgXCJzZXNzaW9uSWRcIjogXCJiYXJcIlxuICAgIH0iOiIifX19.a_1TSEmrTJlKraFIMux4T68VN09g5-j0MRyMJ5nWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}
    

    token の値 (eyJra...) が認証トークンです。

リダイレクトするには

クライアントを特定の URL にリダイレクトするには、redirect_url クエリパラメータで、リダイレクト先 URL を指定します。以下は、https://example.com/login にリダイレクトする例です。

$ curl https://endorse.soracom.io?username=foo&sessionId=bar&redirect_url=https://example.com/login

あらかじめ、Endorse を有効化する ときに、[許可されたリダイレクト先 URL] に、redirect_url クエリパラメータに指定するリダイレクト先 URL を登録する必要があります。登録されていない URL を redirect_url に指定した場合は、リダイレクトリクエストは拒否されます。

(2) 認証トークンをお客様のサーバーに送信する

認証トークンを、任意の方法でお客様のサーバーに送信します。

リダイレクトされた場合は

認証トークンは soracom_endorse_token クエリパラメータを利用してリダイレクト先に渡されます。

(3) 公開鍵をダウンロードして認証トークンを検証する

認証トークンを検証する方法について詳しくは、(3) 公開鍵をダウンロードして認証トークンを検証する を参照してください。

なお、上記のリクエストを行った場合の、認証トークンのペイロードの例は以下のとおりです。

{
  "iss": "https://soracom.io",
  "aud": "soracom-endorse-audience",
  "exp": 1451116301,
  "jti": "hkK7qNyXzEMVAXfTq1MBuA",
  "iat": 1451116121,
  "nbf": 1451116061,
  "sub": "soracom-endorse",
  "soracom-endorse-claim": {
    "imsi": "440XXXXXXXXXXXX",
    "requestParameters": {
      "username": "foo",
      "sessionId": "bar"
    }
  }
}
認証トークンは必ず検証してください

Endorse が発行する認証トークンは、Endorse が持つ秘密鍵で署名されています。秘密鍵に対応する公開鍵を使って、認証トークンを検証してください。お客様サーバーに認証トークンと同じフォーマットのデータが届いたとしても、悪意を持つ第三者が発行した認証トークンの可能性があります。その場合は、IMSI、IMEI、ユーザーデータなどを利用してはいけません。認証トークンは必ず検証してください。