できる限り簡単にPHPで「Google OpenID Connect」を使ってみる

OpenIDを理解するにあたってできる限り簡単にPHPで「Google OpenID Connect」を利用するプログラムを作成してみました。
(あくまでも理解する為に作成したプラグラムなので実際に運用する場合はセキュリティーを十分に高める施策が必要です。)

大まかな手順としては、まずGoogleのクライアントIDを取得する必要があります。

「Google OpenID Connect」の為の「クライアントID」の取得方法については下記の記事を参考にしてください。
Googleの「OpenID Connect」を利用する為の「クライアントID」の取得方法
Googleの「OpenID Connect」を利用するにあたり、 まずは「Google Developers Console」より「クラ...

「クライアントID」を取得したら実際にPHPに実装して動作させる事が可能です。

大まかな仕組みは下記の図のようになります。

この図のServerがPHPのプログラムを実装するサーバーです。

図のオレンジ色のPHPが作成対象になります。

index.php ボタン(リンク)を表示するだけのページ
auth.php 各種パラメタを設定してGoogleにリダイレクトするプログラム
callback.php Googleの認証が完了した際にコールバックされるプログラム
コールバックされた情報を元に詳細情報を取得処理も実行
※クライアントIDを取得する際に設定した「設定した認証済みのリダイレクトURI」に対応するファイル名(ファイルパス)にする必要があります。 必要があればファイル名(ファイルパス)を修正するかGoogle Developers Consoleにて「設定した認証済みのリダイレクトURI」を設定(修正)して下さい。

それでは、各種コードを紹介していきます。

index.php はい、もはやプログラムではありませんね。(汗

「google openid connect login」というリンクが表示されるだけのページです。

続いてこのリンクから呼び出される「auth.php」のコードです。

auth.php こちらもさほど難しいコードではありません。

先に取得した「クライアントID」と設定した「コールバックURL」を指定してGoogleのOAuthにリダイレクトするだけです。

そして最後にGoogleから実際に対象のデータを取得するコードです。

callback.php 最後のプログラムについては途中でgoogleに処理を投げたりして難しくなっていますが、 プログラムのはじめの方の「クライアントID」「クライアントシークレット」「コールバックURL」を設定するだけで 対象のユーザの情報が取得できます。

この中でも「sub」というパラメータがユーザーを特定することのできる値なので以後の認証はこれを元に構築できるかと思います。


プログラム一式
google_openid_connect.zip


【参考にしたサイト】
この記事は役に立ちましたか?
  • 役に立った(5)
  • もっと詳しい情報が必要(2)
  • 情報が古かった(0)
  • 目的の情報では無かった(0)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする