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 を有効化する ときに、 に、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、ユーザーデータなどを利用してはいけません。認証トークンは必ず検証してください。