OAuth2 認証フレームワーク
署名サービスを利用することで、ユーザーは別プロバイダーで既に保持する資格情報をアプリケーション内で使えるようになります。サービスのアカウントへのログイン時に次のような画像を見たことがある人も多いでしょう。
これが所謂 OAuth2 認証フローと呼ばれるものを利用しています。OAuth2 認証は承認メカニズムの 1 つです。これにより、作成した Web アプリケーションは様々な HTTP サービス (Microsoft、Google など) のユーザー・アカウントに限定的なアクセスが出来るようになります。厳密に言えば、OAuth2 認証だけではなく、それ以上の権限の承認でもあります。
(Google アカウントの) 基本的な流れは次のようになります。
- 自身の Web アプリケーションでは、ブラウザで Google OAuth2 のログイン・フォームにリダイレクトします。この時、 ログイン・フォームが認証完了時にリダイレクトする自身のアプリケーション URL (リダイレクト URL) を指定します。
- エンド・ユーザーは Google ログイン・フォームにユーザー名とパスワードを入力します。
- Google ログイン・フォームが Google のサーバーに送信されます。
- Google は提供されたユーザー名とパスワードを検証します。
- すべて OK であれば、Google は Web アプリケーションにブラウザをリダイレクトし、認証コードを (URL のクエリ文字列に) 引き渡します。
- この認証コードは自身のサーバー・プログラムに引き渡されます。
- サーバー・プログラムはこの認証コードを Google サーバーに送信します。これでアクセス・トークンが返されるはずです。
- アクセス・トークンを正常に取得できれば、ユーザーが正しく認証されたことになります。
- アクセス・トークンの本文には、絶対認証が含まれていることに注意してください。本文に有効期限日時がありますが、アクセス・トークンをキャンセルする方法はありません。アクセス・トークンの機密を守り、サーバー外に漏れないように (つまり、アクセス・トークンをブラウザに送信しないよう注意) する必要があります。
次は: OAuth2 クライアント・シークレットとクライアント ID の生成