LwAモバイルSDKの概要
Dash Replenishmentサービス(DRS)にアクセスするDRS対応デバイスは、Login with Amazonのアクセストークンを取得する必要があります。すべてのリクエストは、このアクセストークンと一緒に送信されます。このドキュメントでは、Login with Amazon SDK for AndroidまたはLogin with Amazon SDK for iOSを使ってアクセストークンを取得する方法について説明します。
前提条件
コンパニオンアプリにLwA SDKを組み込むには、あらかじめ対象デバイスに、コードベリファイアを生成する機能とコードチャレンジを作成する機能が必要です。これらの値は、コードチャレンジの方法と共に、LwAに渡され、対象デバイスからのリクエストが検証された後、トークンが交換されます。LwAに実装されているSymmetric Proof of Possessionは、Proof Key for Code Exchange by OAuth Public Clientsに準拠しています。
-
コードベリファイア
コードベリファイアは、対象デバイスによって生成される暗号論的にランダムな文字列で、この文字列がハッシュ(SHA256)されてコンパニオンアプリに渡されます。この文字列は長さ43~128文字とし、URLとファイル名に使用できるアルファベット文字([A-Z]、[a-z]、[0-9]、「-」、「_」、「.」、「~」)で構成されている必要があります。
コードベリファイアは、機密を要するデータです。決して対象デバイスから転送されないようにしてください。
-
コードチャレンジ
クライアント/対象デバイスには、コードベリファイアからコードチャレンジを作成する機能が求められます。コードベリファイアに対しては、次のいずれかの変換方法を適用できますが、推奨されるのはSHA-256です。
-
plain コードチャレンジとコードベリファイアは等価
Note: Plainは、既存のデプロイメント、またはS256を許可しない環境のみでの使用に留めてください。 -
S256 コードベリファイアのSHA256ハッシュを
Base64url
でエンコーディングしたもの。Base64url
エンコーディングした文字列には、「=」、「+」、「/」のいずれの文字も含めないでください。JavaでCodeChallengeを生成する例:codeChallenge = base64UrlEncode(MessageDigest.getInstance(ALGORITHM_SHA_256) .digest(codeVerifier.getBytes(Charset.defaultCharset())));
Proof Key for Code Exchange by OAuth Public ClientsのAppendix Aを参照して
Base64url
エンコーディングの実装に関する詳細をご確認ください。 -
-
コードチャレンジの方法
コードチャレンジを得るための方法。LwAは、plainとSHA-256の両方に対応しています。
DRSでLwA SDKを使うためのプラットフォームの選択肢
Login with Amazon SDK for AndroidまたはLogin with Amazon SDK for iOSをDRSで使うための手順については、次のいずれかを参照してください。
Last updated: Aug 07, 2018