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

