プログラミングノート

プログラミングの備忘録です

Google APIを使用するための設定(認証情報の登録) 第2回

  第1回に引き続きGoogle APIを使用するための設定をします。今回はAPIとやり取りをするための認証情報を登録します。

 認証は大きく分けて2種類あります。①APIキーを使う認証と②OAuth2.0を使う認証の2種類です。それぞれの認証に必要な情報を登録する方法を書きます。

 

認証情報を登録する前に

 APIコンソールで、①プロジェクトの作成と②使用するAPIの設定を行った後、認証情報を登録します。

 

1.プロジェクトの作成

Google APIを使用するための設定(プロジェクトの作成 ・ 使用するAPIの設定) 第1回 - プログラミングノートの「1.プロジェクトを作成」をご覧ください。

 

2.使用するAPIの設定

Google APIを使用するための設定(プロジェクトの作成 ・ 使用するAPIの設定) 第1回 - プログラミングノートの「1.プロジェクトで使用するAPIを設定」をご覧ください。

 

 

1.APIキーを使う認証

  APIキーについては、下の記事をご参考ください。

Google APIを使用するための設定(APIキーの作成) 第3回 - プログラミングノート

 

2.OAuth2.0を使う認証

 アプリケーションがAPIを使用してGoogleユーザーのデータにアクセスする場合、こちらを行います。

 OAuth2.0証明書を使う認証とサービスアカウントを使う認証の2種類があります。

 OAuth2.0証明書を使う場合、ユーザーに対して同意画面を表示し、ユーザーにレスポンスを求めます。一方、サービスアカウントを使う場合、ユーザーに対して同意画面を表示しません。そのため、プログラムからAPIへ問い合わせすることができます。

 

OAuth2.0証明書

 アプリケーションがOAuth2.0証明書で認証されると、アプリケーションのユーザーに同意画面が表示されます。同意画面でユーザーが同意すると、アプリケーションがユーザーデータにアクセスするための認証コードが生成されアプリケーションに送信されます。アプリケーションは認証コードを使ってアクセストークンを取得し、アクセストークンを使ってユーザーデータにアクセスします。

 

下の手順で、OAuth2.0証明書を作成します。

  1.  APIコンソール(https://console.developers.google.com/)にアクセスしAPI Magenerを開きます。
  2. Google APIsの右横に表示されているプロジェクト名を確認します。プロジェクトを変更したい場合やプロジェクトを作成したい場合は、プロジェクト名の右横の「▼」をクリックします。
  3. 左メニューに表示されている「認証情報」をクリックすると、「認証情報」画面が表示されます。
  4. 「認証情報を作成」をクリックします。
  5. 「OAuthクライアントID」をクリックすると、「クライアントIDの作成」画面が表示されます。
  6. プロジェクト内ではじめてクライアントIDを作成する場合は、同意画面の設定が求められます。「同意画面を設定」をクリックします。(画面中央にある「OAuth同意画面」をクリックしても同じ画面が表示されます。)
  7. 「OAuth同意画面」で必須のメールアドレスとサービス名を入力します。(その他に、ホームページのURL、サービスロゴのURL、プライバシーポリシーのURL、利用規約のURLの項目があります。)
  8. 入力後「保存」ボタンを押すと、保存後「クライアント ID の作成」画面に戻ります。

  9. 「クライアント ID の作成」画面で「アプリケーションの種類」を選択します。

    アプリケーションの種類ごとに入力内容が違います。今回は「ウェブアプリケーション」を選択します。

  10. アプリケーションの名前、ブラウザからのリクエストで使用するJavaScript生成元 URI、認証後ユーザーがリダイレクトされるアプリケーション内のURI を、入力します。
  11. 「作成」をクリックします。
  12. 作成後、OAuthクライアント画面に、クライアントIDとクライアントシークレットが表示されます。クライアントIDとクライアントシークレットをコピーして保存します。(右端のコピーマークをクリックすると、コピーしやすいです。)

  13.  「OK」をクリックします。

  14. 作成したクライアントIDは「認証画面」タブで確認することができます。

 

作成したOAuth2.0証明書の使い方は、下の記事をご覧ください。

Google APIをPHPウェブアプリケーションから呼び出す 第4回 - プログラミングノート

 

 

サービスアカウント

 「サービスアカウントは、アプリケーションがプログラムによりGoogleサービスにアクセスするために使用できる特別なGoogleアカウントです。」(Cloud Identity and Access Management https://cloud.google.com/iam/docs/service-accountsより引用)

 サービスアカウントを使うとアプリケーションによる認証を行うことができます。アプリケーションがAPIを使用するためには、サービスアカウントキーを作成する必要があります。

 

サービスアカウント作成

 デフォルトで「App Engine default service account」と「Compute Engine default service account」というサービスアカウントが用意されていますが、今回は、別のサービスアカウントを新規作成します。

  1. Google Apis の左横にあるメニューマークをクリックし、表示されるメニューから「IAMと管理」を選択します。
  2. 左メニューの「サービスアカウント」をクリックすると、プロジェクトのサービスアカウントが表示されます。
  3. 「サービス アカウント」(タイトル)の右横にある「サービスアカウントを作成」リンクをクリックすると、サービスアカウントの作成画面が表示されます。
  4. サービスアカウントの作成画面に入力します。

 

 サービスアカウントの作成画面には下の入力項目があります。

  • サービスアカウント名(このサービスアカウントで行うことを入力)
  • 役割
  • 新しい秘密鍵の提供
  • G Suite ドメイン全体の委任を有効にする

 「新しい秘密鍵の提供」を選択した場合、「キーのタイプ」を選択します。

 「新しい秘密鍵の提供」を選択してサービスアカウントを作成すると、「キーのタイプ」で選択した種類のファイルをダウンロードします。ダウンロードしたファイルは保存し大切に保管します。

 

 

 サービスアカウントキーの作成

  1.  APIコンソール(https://console.developers.google.com/)にアクセスしAPI Magenerを開きます。
  2. Google APIsの右横に表示されているプロジェクト名を確認します。プロジェクトを変更したい場合やプロジェクトを作成したい場合は、プロジェクト名の右横の「▼」をクリックします。
  3. 左メニューに表示されている「認証情報」をクリックすると、「認証情報」画面が表示されます。
  4. 「認証情報を作成」をクリックします。
  5. 「サービスアカウントキー」をクリックすると、「サービスアカウントキーの作成」画面が表示されます。
  6.  「サービスアカウントキーの作成」画面で、サービスアカウントキーを作成するサービスアカウントを選択します。キーのタイプでJSONかP12を選択します。
  7. 入力後、「作成」をクリックすると、Windowsのダウンロード画面が表示されます。ダウンロードしたファイルを保存し大切に保管します。
  8.  作成したサービスアカウントキーに関しては「認証画面」タブで確認することができます。

 

 

サービスアカウントキーの使い方

Google APIをPHPウェブアプリケーションから呼び出す(サービスアカウント) 第5回 - プログラミングノート をご覧ください。

 

 

デフォルトのサービスアカウントについて補足

 サービスアカウント「APP Engine default service account」はGoogle App Engineサービスで、サービスアカウント「Compute Engine default service account」はGooge Compute Engineサービスで使います。

Google App Engineサービスについては、下記ページをご覧ください。

Google App Engine とは?  |  App Engine  |  Google Cloud Platform

Google Compute Engineサービスについては、下記ページをご覧ください。

 Compute Engine - IaaS  |  Google Cloud Platform

 

 

記事一覧

第1回 Google APIを使用するための設定(使用するAPIの選択)

第2回 Google APIを使用するための設定(認証情報の登録)

第3回 Google APIを使用するための設定(APIキーの作成)

第4回 Google APIをPHPウェブアプリケーションから呼び出す

第5回 Google APIをPHPウェブアプリケーションから呼び出す(サービスアカウント)

第6回 Google APIへの問い合わせ状況と割り当てを確認する方法

第7回 Google APIをPHPウェブアプリケーションから呼び出す(APIキー)

 

 

参照

「Manage APIs in the API Console - API Console Help」

https://support.google.com/googleapi/answer/7037264?hl=en&ref_topic=7013279

「Credentials, access, security, and identity」と「Setting up OAuth 2.0」を参照しました。

 

「Cloud Identity and Access Management」

https://cloud.google.com/iam/docs/service-accounts