Google Identity Services JavaScript ライブラリ(google.accounts.oauth2)を使用してウェブアプリで Google API へのアクセスを承認するには、まず次のことを行う必要があります。
- OAuth 2.0 クライアント ID を取得します。
- OAuth 同意画面とスコープを構成します。
- クライアント ライブラリを読み込みます。
- 必要に応じて、コンテンツ セキュリティ ポリシー(CSP)とクロスオリジン オープナー ポリシー(COOP)を設定します。
Google API クライアント ID を取得する
ウェブサイトで Google アカウント認証を有効にするには、まず Google API クライアント ID を設定する必要があります。次の手順を行います。
- Google Cloud コンソールの [クライアント] ページを開きます。
- Cloud コンソール プロジェクトを作成または選択します。本番環境アプリケーションを作成する場合は、複数のプロジェクトが必要になることがあります。管理するプロジェクトごとに、このセクションの残りの手順を繰り返します。
- [クライアントを作成] をクリックし、[アプリケーションの種類] で [ウェブ アプリケーション] を選択して、新しいクライアント ID を作成します。既存のクライアント ID を使用するには、[ウェブ アプリケーション] タイプのいずれかを選択します。
ウェブサイトの URI を [承認済みの JavaScript 生成元] に追加します。URI には、スキームと完全修飾ホスト名のみが含まれます。例:
https://www.example.comux_mode: 'redirect'で認証コードモデルを使用する場合(またはバックエンド エンドポイントで認証コードを交換する場合)、リダイレクト URI を [承認済みのリダイレクト URI] に追加します。リダイレクト URI には、スキーム、完全修飾ホスト名、パスが含まれます。また、リダイレクト URI の検証ルールに準拠している必要があります。例:https://www.example.com/oauth2callback。
構成が完了したら、作成されたクライアント ID をメモします。この値は、initCodeClient() または initTokenClient() を初期化するときに client_id プロパティで渡します。(クライアント シークレットも作成されます。これは機密情報として扱い、サーバーサイドのトークン交換オペレーションにのみ使用する必要があります)。
OAuth 同意画面を構成する
ウェブアプリが OAuth 2.0 スコープを使用してユーザーデータへのアクセスをリクエストすると、Google は同意画面を表示して、アクセスをリクエストしているアプリケーション、リクエストされているデータスコープ、適用される利用規約をユーザーに示します。
- Cloud コンソールの Google Auth Platform セクションの [ブランディング ページ] を開きます。
- プロンプトが表示されたら、構成したプロジェクトを選択します。
- ブランディング フォーム(アプリケーション名、アプリケーション ロゴ、サポートメール、承認済みドメイン、アプリケーション ホームページ リンク、プライバシー ポリシー リンク)に入力し、[保存] をクリックします。
- [データアクセス] ページに移動して、アプリケーションに必要な Google API スコープを構成します。ベスト プラクティスは、アクセスが必要になった時点でスコープを段階的にリクエストすることです。
- 適格性確認のステータスを確認します。アプリケーションが機密性の高いスコープや制限付きスコープをリクエストする場合は、アプリケーションを提出して検証作業を受ける必要があります。詳細については、OAuth の確認要件をご覧ください。
コンテンツ セキュリティ ポリシーと COOP
ウェブ アプリケーションでコンテンツ セキュリティ ポリシー(CSP)を適用している場合は、次の Google Identity Services のオリジンを許可します。
script-src:https://accounts.google.com/gsi/clientframe-src:https://accounts.google.com/gsi/connect-src:https://accounts.google.com/gsi/
ポップアップ認証フロー(ux_mode: 'popup' を使用する initTokenClient または initCodeClient)の場合、ダイアログ ウィンドウが認証レスポンスをページに返すことができるように、Cross-Origin-Opener-Policy(COOP)HTTP レスポンス ヘッダーを same-origin-allow-popups に構成します。
次のステップ
次に、ウェブページにクライアント ライブラリを読み込み、認可クライアントの初期化を開始します。