Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
21
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

Organization

Google APIの認証の種類

Google APIの認証方法は三種類あるのですが、説明を読んでもいまいち理解できず、触ってみてようやく理解できたので、まとめておきます。認証情報の作成方法については、検索すればいくらでも出るのでそちらを参照してください。

ポイントは、APIを利用するためのAPI認証と、ユーザーデータを利用するためのユーザー認証は別だということです。ここで作成するのは、APIを利用するための認証情報であり、その認証情報の種類が、APIアクセスの中で行うユーザー認証の方法によって変わる、ということを覚えておいてください。

APIキー

一般的なAPIキーです。APIキーを用いる場合は、ユーザー認証ができないため、一般公開されているデータ(Google Mapなど)にしかアクセスできません。

OAuth 2.0

よくあるやつです。ユーザー認証をOAuth2で行います。一度は必ずGoogleの認証ページにアクセスして対話的に認証を行う必要があるため、全自動化が必要なサービス等には向きません。コンソールアプリの場合は、APIから取得したURLにアクセスすることで、認証を行うことができます。

サービスアカウント

アプリ専用のGoogleアカウントを作成し、そのアカウントでユーザー認証を行います。[アカウント名]@[プロジェクト名+suffix].iam.gserviceaccount.comのようなメールアドレスが発行され、これをアカウント名として用います。サービスアカウントは、ユーザーアカウントに代理ログインするためのアカウントなので、作成時点ではどこにもログインすることはできません。そのため、APIの利用の前に、ユーザーアカウントとサービスアカウントを紐づける必要があります。この紐づけ作業は、基本的にGoogleの各種サービス(Google Analyticsなど)の管理ページで行います。

サービスアカウントは、キーさえあれば対話的なログイン作業が必要ないため、全自動のサービス等に向いています。

使い分け

APIキーは、ユーザーデータにアクセスする必要がない場合に使います。OAuth 2.0は、不特定多数のユーザーのデータにアクセスする必要がある場合に向いています。ウェブサービス等におけるGoogleアカウントでのログインもこれに当たります。サービスアカウントは、特定のユーザーのデータ(自身のアカウントや、会社の顧客など)にアクセスする場合に向いています。ユーザーアカウントにサービスアカウントを紐づけてもらう手間が発生しますが、そのあとは対話的なログインなしにユーザーデータにアクセスできます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
21
Help us understand the problem. What are the problem?