LoginSignup
43
22

More than 5 years have passed since last update.

Google APIの認証の種類

Posted at

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アカウントでのログインもこれに当たります。サービスアカウントは、特定のユーザーのデータ(自身のアカウントや、会社の顧客など)にアクセスする場合に向いています。ユーザーアカウントにサービスアカウントを紐づけてもらう手間が発生しますが、そのあとは対話的なログインなしにユーザーデータにアクセスできます。

43
22
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
22