はじめに
App Engine使って構築中のウェブアプリにログイン機能がつけたくてOpenID Connectを勉強しようかと。
そのために、以下のページを要約してみます。英語スキル低いので、誤訳があったら指摘してほしいです(自分用なので、直訳でなかったり言い換えていたりします)。
※ 書いてる最中
OpneID Connet
GoogleのOAuth 2.0 APIは認証(authentication)と認可(authorization)の両方で使えます。この文書は、GoogleのOpneID Connectの仕様に沿ったOAuth 2.0による認証の実装を説明します。OpenID ConnectはOpenIDに認証されています。この文章は、OpenID Connetを使ってOAuth 2.0を通じたoogle APIにアクセスの説明も含みます。通信プロトコルの中身を閲覧したい時は、Google OAuth 2.0 Playgroundをおすすめします。Stack Overflowに助けを求める時は、google-oauthのタグで質問してください。
Note: Webサイトやアプリに「Google でサインイン」ボタンをつけるつもりなら、OpenID Connectプロトコルに準じたsign-in client libraryとOpenID Connect形式のIDトークンを使うことを推奨します。
Setting up OAuth 2.0
ログイン機能を実装する前に、OAuth 2.0を使うための認証設定をGoogle Cloud Platformでしてください。
Obtain OAuth 2.0 credentials
OpenID Connectを使うには、OAuth 2.0の認証設定をしてclient IDとclient secretを獲得してください。。
- 認証情報のページを開いてください。
- 設定がまだの場合、[認証情報を作成]>[OAuthクライアントID]をクリックしてプロジェクトのOAuth 2.0利用設定をします。利用に必要な情報を入力してください。
- OAuth 2.0クライアントIDの[クライアントID]の項目を見てください。
要約者補足:3番の項目ですが、クライアントIDを見るより鉛筆アイコンを押して、JSONファイルをダウンロードしたほうがいいと思います。
Set a redirect URI
リダイレクトURIは、認証要求に対する応答が帰ってくるURI(URL)です。
リダイレクトURIは以下の手順で確認します。
- APIコンソールの認証情報のページを開きます。
- 設定がまだの場合、[認証情報を作成]>[OAuthクライアントID]をクリックしてプロジェクトのOAuth 2.0利用設定をします。利用に必要な情報を入力してください。
- 認証情報を作ったら、OAuth 2.0クライアントIDの名前をクリックしてください。ページが切り替わり、承認済みのリダイレクトURI項目が表示されます。同じページで設定もできます。
Customize the user consent screen
あなたのアプリが使う利用者情報を確認するため、ログインユーザーに表示する接続画面を設定できます。
ログインユーザーへ表示する接続画面には、プロジェクト名、ロゴ、WebページURLといった情報を配置できます。あなたはブランド情報をAPIコンソールで設定できます。
接続画面は次の手順で設定します。
- Google API Consoleの[OAuth同意画面]タブを開いてください。もしなにかを要求する画面が表示されたら、プロジェクトを選ぶか新しいプロジェクトを作ってください。
- フォームに入力して[保存]をクリックしてください。
下の接続画面は、OAuth 2.0と連携し、Google Driveのスコープを要求するときに利用者に表示されるものです(これはGoogle OAuth 2.0 Playgroundで生成されたもののため、API Consoleで設定したブランド情報は表示されていません)。
Accessing the service
Googleやサードパーティは利用可能な多くのライブラリを提供しています。それらは詳細な認証やGoogle APIへのアクセスを慎重に実施します。例えばGoogle Sign-InとGoogleクライアントライブラリは、様々なプラットフォームで使えます。
要約者コメント:以下はサーバー間の通信に関する説明なので省略。