Marketplace
Account Deletion
Marketplace
Account Deletion
Overview
eBayアカウント削除/閉鎖通知のワークフロー
eBayには、ユーザーがeBayのシステムからだけでなく、ユーザーデータを保存/表示するすべてのeBayパートナーのシステムから自身の個人情報を削除するよう求めることができる仕組みがあります。eBay Developers Programを通じてeBay APIを使用するサードパーティ開発者のシステムも対象に含まれます。
サードパーティ開発者によるユーザーデータの削除をサポートするために、eBayでは、ユーザーから個人情報の削除およびアカウントの閉鎖を求められた場合にすべてのeBay Developers Programアプリケーションに通知するプッシュ通知システムを整備しました。このドキュメントでは、サードパーティ開発者がこうしたeBayアカウント削除/閉鎖通知の受信、応答、および検証を行うために何をすべきかを説明します。
eBayアカウント削除/閉鎖通知のワークフロー
既にeBay Developers Programを通じてeBay APIを使用しているサードパーティ開発者は、2021年8月31日までに、eBayアカウント削除/閉鎖通知を受信し、処理することが出来る実装をお願いします。新規のサードパーティ開発者は、最初のコールを行う前に、eBayアカウント削除/閉鎖通知に登録する必要があります。キーセットを作成しても、eBayアカウント削除/閉鎖通知を適切に処理されない限り無効な状態のままです。 eBayアカウント削除/閉鎖通知処理の要件を認識し、 eBayアカウント削除/閉鎖通知処理を適切に実装すると、App IDが有効化されます。
注意:何らかの理由でeBayのデータを保存していない一部の開発者に対しては、開発者ポータルを通じて例外的な対応を行うことを検討しています。詳細は追ってお知らせします。
eBayアカウント削除/閉鎖通知登録手順
eBay Developers Programアプリケーションは、eBayアカウント削除/閉鎖通知への登録が必須です。開発者は自身のデベロッパーアカウントに関連付けられている各アプリケーションについて、以下の手順で通知の処理をする値を登録する必要があります。
- デベロッパーアカウントにサインインします。
- Application Keysページに移動します。
- App IDの隣にあるNotificationsリンクをクリックします。下図のようなAlerts and Notificationsページが表示されます。
- Alerts and Notificationsページで、Event Notification Delivery Methodセクションの下のMarketplace Account Deletionラジオボタンをオンにします。
- Eメールアドレスを設定します。Eメールアドレスは必須ですが、使用されるのは、指定のEndpoint URLに通知が届かない場合のみです。このフィールドに値を入力するには、隣にあるEditボタンをクリックします。値を設定したら、Saveボタンをクリックします。
- 通知を受け取るためのEndpoint URLを設定します。Endpoint URLは「https」アドレスでなければなりません。このフィールドに値を入力するには、隣にあるEditボタンをクリックします。値を設定したら、Saveボタンをクリックします。
- 7. EメールアドレスとEndpoint URLを設定したら、Send Test Notificationボタンをクリックしてテスト通知を送信します。
テスト通知がEndpoint URLで正常に受信されたら、設定は完了です。これでeBayからアプリケーションにeBayアカウント削除/閉鎖通知が届くようになります。
eBayアカウント削除/閉鎖通知の受信と受信確認
アプリケーションがeBayアカウント削除/閉鎖通知に登録されたら、ユーザーが個人情報の削除を求めるたびに、コールバックURLがJSONベースのHTTP POST通知を受信するようになります。eBayアカウント削除/閉鎖通知のレスポンス例を以下に示します。
{ "metadata": { "topic": "MARKETPLACE_ACCOUNT_DELETION", "schemaVersion": "1.0", "deprecated": false }, "notification": { "notificationId": "49feeaeb-4982-42d9-a377-9645b8479411_33f7e043-fed8-442b-9d44-791923bd9a6d","eventDate": "2021-03-19T20:43:59.462Z", "publishDate": "2021-03-19T20:43:59.679Z", "publishAttemptCount": 1, "data": { "username": "test_user", "userId": "ma8vp1jySJC", "eiasToken": "nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wJnY+gAZGEpwmdj6x9nY+seQ==" }
}
}
通知レスポンスpayloadフィールドの概要は下表のとおりです。
フィールド | 説明 |
---|---|
metadata.topic | 通知の主旨 |
metadata.schemaVersion | スキーマのバージョン |
metadata.deprecated | 非推奨を示すブール値 |
notification.notificationId | 通知の一意の識別子 |
notification.eventDate | eBayユーザーがデータの削除を求めた日時を示すタイムスタンプ |
notification.publishDate | 最新の通知が送信された日時を示すタイムスタンプ |
notification.publishAttemptCount | この指定コールバックURLに対して通知が送信された回数を示す整数値 |
notification.data.username | 公開されているeBayユーザーID |
notification.data.userId | eBayユーザーの変更不能な識別名 |
notification.data.eiasToken | eBayユーザーのEIASトークン(eBayユーザーに使用される別の識別名) |
コールバックURLは、各eBayアカウント削除/閉鎖通知を受け取ると、すぐにレスポンスの成功を示すHTTPステータスコードを返す必要があります。 「200 OK」、「201 Created」、「202 Accepted」、「204 No Content」のいずれも使用可能です。eBayアカウント削除/閉鎖通知に応答しないコールバックURLに対しては、受信確認が送信されるまでeBayから通知が再送されます。通知が複数回再送されても24時間以内にコールバックURLから受信確認が送信されない場合、そのコールバックURLは無効とみなされ、eBayは開発者に対し、コールバックURLから応答がないことを伝えるアラートメールを送信します。開発者は、そのメールの受信後30日以内にeBayアカウント削除/閉鎖通知の受信確認に関するコールバックURLの問題を解決する必要あります。30日以内に問題が解決されない場合、開発者は不適格とみなされることになります。
開発者は、eBayアカウント削除/閉鎖通知を受け取って受信確認を送信したら、適切な措置を講じてユーザーデータを削除する必要があります。ただし、特定の明白な法的要件(税金、収集、AML規定など)への対応を目的とする場合に限り、データを保管できます。削除は、システムの最高権限者でも破棄できない方法で実行される必要があります。
eBayアカウント削除/閉鎖通知の正当性の検証
コールバックURLは各eBayアカウント削除/閉鎖通知を受け取ると、すぐに受信確認として「200 OK」、「201 Created」、「202 Accepted」、または「204 No Content」というHTTPステータスコードを返します。eBayアカウント削除/閉鎖通知の受信確認後、開発者はeBayアカウント削除/閉鎖通知が実際にeBayから届いたものであることを検証する必要があります。そこでeBayは、各通知の正当性を検証するための次の2種類のSDKを作成しました。
これらのSDKは、以下のことを実行します。
- 通知の署名ヘッダーをデコードしてキーIDを取得する
- キャッシュが有効なコールをNotification APIに実行して公開鍵を取得する
- 署名を通知のペイロードと照合する
- 署名が検証された場合、ペイロードはトピックの処理ロジックにデリゲートされて「200 OK」というHTTPステータスが返され、署名の検証に失敗した場合は、「412 - Precondition Failed」というHTTPステータスが返される
詳しくは、SDKのReadMeファイルを参照してください。
eBayアカウント削除/閉鎖通知がeBayから届いたものであることを検証する方法には、SDKを使用しないマニュアルプロセスもあります。概ね以下の手順で行います。
- eBayアカウント削除/閉鎖通知に対するx-ebay-signatureレスポンスヘッダーで返された値を、Base64デコード関数を使用してデコードします。
- このデコード値は、Notification APIのgetPublicKey URIの末尾に追加されます。
- Notification API Overviewページに移動し、このgetPublicKeyメソッドを使用して残りの検証プロセスを実行します。