MWSへの登録の際には3つのモデルがあることをご存知ですか?
- 自分自身がアクセスするためのアクセスキーを取得する
- アプリケーションのアクセスを許可する
- 開発者のアクセスを許可する
アクセス許可の有用性
出品者が自社のためだけに使用するMWSアプリケーションでは、出品者のアクセスキーでMWSへアクセスするので構いませんが、多数の出品者に使用させる目的でインテグレーターが開発するアプリケーションは、MWSアクセスと出品者データへのアクセス許可を分離する必要があります。
これにより、インテグレーターは機密情報である出品者の秘密キーを入手することなくAmazonにある出品者データにアクセスすることができ、出品者はインテグレーターのアプリケーションが自分のデータへアクセスすることを許可したり、逆にアプリケーションを使わなくなった際にアクセスを取り消したりすることができます。
同じような目的で、アプリケーションではなく開発者に対して、出品者のデータへアクセスすることを許可することもできます。
アプリケーションアクセス許可モデルのデザイン方針
MWSを通じて情報のやり取りをする際には、以下のアクセス情報が必要です。
- アクセスキー
- 秘密キー
- マーケットプレイスID
- 出品者ID
MWSアプリケーションを作成する際に、インテグレーター自身が持つアクセスキーと秘密キーのペアに対して、出品者から入手した出品者固有のマーケットプレイスIDと出品者IDを組み合わせて、MWSにアクセスするようにデザインします。ユーザによってマーケットプレイスIDと出品者IDは違うので、これらの情報は設定画面やパラメータとして設定できるようにデザインするのがよいでしょう。
- 開発者IDに応じたアクセスキーと秘密キーのペア - インテグレーターのもの
- マーケットプレイスIDと出品者ID - ユーザとなる出品者のもの
以下は、Javaクライアントライブラリを使用したサンプルの初期化部分です。
MarketplaceWebServiceOrders service = new MarketplaceWebServiceOrdersClient(
OrdersSampleConfig.accessKeyId,
OrdersSampleConfig.secretAccessKey,
OrdersSampleConfig.applicationName,
OrdersSampleConfig.applicationVersion,
OrdersSampleConfig.config);
ListOrdersRequest request = new ListOrdersRequest();
request.setSellerId(OrdersSampleConfig.sellerId);
request.setMarketplaceId(OrdersSampleConfig.marketplaceIdList);
DatatypeFactory df;
try {
df = DatatypeFactory.newInstance();
request.setCreatedAfter(df.newXMLGregorianCalendar(2011, 1, 1, 0, 0, 0, 0, 9));
} catch (DatatypeConfigurationException e) {
e.printStackTrace();
}
ListOrdersResponse response = service.listOrders(request);
MWSで設けている回数制限もこのアクセスキーと出品者IDの組み合わせ単位で適用されます。
ユーザ登録の手順
事前準備として、インテグレーターはアプリケーション名(ASCII文字の名前を推奨します)を決めて、自分の出品者アカウントを使用してMWSのユーザ登録をしておきます。
- MWSポータルサイトにアクセスして「登録する」ボタンをクリック
- インテグレーターの出品者アカウントでログイン
- 1つ目の選択肢「出品用アカウントでマーケットプレイスWebサービスを利用します」を選択して「次へ」をクリック
- ライセンス契約が表示されるので確認して「次へ」をクリック
- 以下の情報が表示されるのでメモを取るなどして保存
- 開発者アカウント番号(例: 1234-3214-4321)
- アクセスキー(例: 022QF0EXAMPLEH9DHM02)
- 秘密キー(例: kWcrlEXAMPLEM/LtmEENI/aVmYvHNif5zB+d9+ct)
表示された開発者アカウント番号と事前に決めておいたアプリケーション名をユーザとなる出品者に伝えて、出品者データへのアクセスを許可してもらいます。
- MWSポータルサイトにアクセスして「登録する」ボタンをクリック
- ユーザとなる出品者の出品者アカウントでログイン
- 2つ目の選択肢「アプリケーションを使って、マーケットプレイスWebサービスにアクセスすることを希望します」を選択して、開発者アカウント番号とアプリケーション名を入力して「次へ」をクリック
- ライセンス契約が表示されるので確認して「次へ」をクリック
- 以下の情報が表示されるのでアプリケーションで参照するように設定
- マーケットプレイスID
- 出品者ID
最後に
今回の記事はいかがでしたでしょうか?ご意見などありましたら、フォーラムやお問い合わせフォームへお願いします。
出品者がアプリケーションを通じて安全にアクセスを許可できるアプリケーションの開発にお役だて下さい! [Hirotaka]