1.1: OAuth アカウントのリンク

概要とビジネスへの影響


Google API を利用するには、無料リスティングと有料広告にオンボーディングするために必要な販売者のアクセス権を、統合に OAuth で付与する必要があります。

Alt-OAuth

リクエストを承認するために、アプリケーションは OAuth 2.0 を使用する必要があります。これ以外の認証プロトコルはサポートされていません。

UX に関するガイダンス


目標: Google アプリでのデータ使用を共有する権限を販売者に与える。

設計原則: 適切なタイミングで適切な権限をリクエストします。販売者が権限を付与しなかった場合は、適切に処理を停止する。

販売者は、アクセス権限の提供を求められます。この手順を販売者に表示する方法の例を以下に示します。

oauth_1

oauth_2

販売者がこの最初のステップを完了すると、次の 3 つの結果が考えられます。

結果 #1: 販売者がすべての権限に同意した場合:

oauth_3

完全な権限を付与する場合、販売者はすべてのチェックボックスをオンにして、オンボーディング プロセスを続行するよう求められます。

結果 2: 販売者が Google 広告に同意しない場合

oauth_4

販売者は、Google 広告に関連する権限を除くすべてのチェックボックスにチェックを入れます。オンボーディング プロセスが続き、その後、新しい Google 広告アカウントを作成する際や既存のアカウントに接続する際に、権限を付与するように求められます。

oauth_5 oauth_6

結果 #3: 商品データまたはサイトの確認のチェックボックスがオフになっている場合、販売者はオンボーディングを続行できない

oauth_7

oauth_8

oauth_9

oauth_10

上記のどのオプションでも同じエラー メッセージが表示されます。

oauth_11

技術ガイダンス


OAuth 2.0 でのリクエストの承認を選択する

販売者の認証方法を選択するには、次の 2 つの方法があります。

サービス以外のアカウント向けの OAuth 2.0(強く推奨) サービス アカウント用の OAuth 2.0
OAuth 2.0 クライアントによってアプリケーションが識別され、エンドユーザーがアプリケーションに Google データへの制限付きアクセス権限を付与できるようになります。エンドユーザーに代わってアプリケーションが Google Cloud APIs にアクセスできるようにします。

上記のオカレンスによってアクセス トークンが無効になるので、コード内でそのことを考慮する必要があります。

● ユーザーがアクセス権を取り消した
● ユーザーがパスワードを変更した
● 付与された更新トークンの数が上限を超えた
● 更新トークンが 6 か月以内に使用されていなかった
サービス アカウントは、アプリケーションが OAuth 2.0 を使用してプログラムで Google API にアクセスするために使用できる特別な Google アカウントです。これは、人による認証を必要としない OAuth 2.0 フローを使用します。そのアプリケーションだけがアクセスできるキーファイルが使用されます。

注: 認証にサービス アカウントを使用するアプリケーションは、自身の Merchant Center アカウントにしかアクセスできません。クライアントの Merchant Center アカウントへのアクセスが必要なサードパーティ アプリケーションを作成する場合は、代わりにリクエストの承認ガイドをご覧ください。

注: Cloud プロジェクトが必要です。これにより、最大 100 個のサービス アカウントを作成できます。ドキュメントをご覧ください。

OAuth フローを設定する

OAuth 2.0 認可フレームワークを使用すると、サードパーティ アプリケーションは、リソース オーナーと HTTP サービス間の承認インタラクションをオーケストレートするか、サードパーティ アプリケーションが独自にアクセス権を取得できるように、リソース オーナーに代わって HTTP サービスへのアクセスを限定できます。

アプリは保護された(非公開)データにアクセスするため、OAuth 2.0 クライアント ID が必要です。Google API は、認証と認可に OAuth 2.0 プロトコルを使用します。Google は、ウェブサーバー、インストール済みアプリケーション、クライアントサイド アプリケーションなど、一般的な OAuth 2.0 のシナリオをサポートしています。

詳細

Content API for Shopping に OAuth を使用する際の注意点:

  1. access_type がオフラインに設定されていることを確認する: アクセス トークンは定期的に期限切れになり、関連する API リクエストの認証情報として無効になります。

  2. アクセス トークンを更新する:トークンに関連付けられたスコープへのオフライン アクセスをリクエストした場合、ユーザーに権限のプロンプトを表示せずに(ユーザーが存在しない場合を含む)、この処理を行うことができます(詳細)。

  3. ライブラリでの OAuth の実装: Google API クライアント ライブラリを使用することを強くおすすめします。

  4. スコープ: Google Merchant Center の OAuth スコープ(https://www.googleapis.com/auth/content)を使用して、Google アカウントに対する読み取り / 書き込みアクセス権を付与するよう販売者にリクエストする必要があります。

  5. OAuth を使用して鍵ユーザー プロフィール情報を取得できます。

統合に使用するスコープ

販売者のために構築を予定している統合のタイプに応じて、この時点で必要なスコープをすべてリクエストすることをおすすめします。

プログラム 範囲 必要なスコープの形式
Content API https://www.googleapis.com/auth/content 無料リスティング
サイトの確認 https://www.googleapis.com/auth/siteverification 無料リスティングと有料広告
関連 https://www.googleapis.com/auth/adwords 無料リスティングと有料広告

販売者が OAuth アクセスを許可しているかどうかを確認する

販売者は、特定のスコープへのアクセス権を付与するために OAuth 同意フローでチェックボックスをオンにする必要がある: 必要なスコープがない場合は、スコープが必要な理由を販売者に説明し、権限を再度リクエストします(詳細)。これらの権限のすべてにアクセスできない場合、販売者は完全にオンボーディングできません。

access

次の API エンドポイントを呼び出して、付与されたスコープを確認します。

https://www.oauth2.googleapis.com/token

この URL は次の情報を返します。

  • access_token
  • ユーザーに付与されたスコープ
  • トークンの有効期限が切れるまでの時間

request

機密スコープと OAuth 検証プロセス

OAuth API で使用されるスコープの中には、機密性が高いものと見なされ、検証プロセスを必要とするものもあります。詳細情報と例については、Content API の OAuth をご覧ください。

  1. ポリシーに準拠する必要がある機密性の高いアプリのスコープ: アプリが Google の API サービスのユーザーデータに関するポリシーに準拠している必要があります。また、API 利用規約に同意する必要があります。

  2. アプリが検証要件の例外に記載されているユースケースに該当しないことを確認します。

  3. プロジェクトの承認済みドメインの所有権を確認するには、Search Console を使用します。Cloud コンソール プロジェクトのプロジェクト オーナーまたはプロジェクト編集者のアカウントを使用します。

  4. OAuth 同意画面に表示されているすべてのブランディング情報が一致し、有効であることを確認してください。たとえば、ユーザーに表示するプロジェクト名、サポートメール、ホームページの URL、プライバシー ポリシーの URL が、アプリの ID を正確に表しているはずです。

  5. 検証プロセスでは、機密性の高いスコープについてアプリをリクエストします。プロセスに沿って、フォームに記入し、理由を示し、動画を送信する必要があります。