OAuth 2.0(オーオース・ツー・ポイント・ゼロ)は、ユーザーのパスワードを他のサービスに渡さずに、アプリケーションへ限定的なアクセス権を与えるための認可(Authorization)フレームワークです。
例
「〇〇アプリでGoogleアカウントを使ってログインする」を考えてみましょう。
- ユーザーが〇〇アプリで「Googleでログイン」をクリック
- Googleの認証画面が表示される
- ユーザーがGoogleで本人確認し、許可を与える
- Googleが〇〇アプリに「アクセストークン」を発行
- 〇〇アプリはそのトークンを使って、許可された範囲の情報にアクセス
このとき、〇〇アプリはユーザーのGoogleパスワードを知りません。

OAuth 2.0の主な登場人物
- リソースオーナー(Resource Owner):ユーザー
- クライアント(Client):アクセスを求めるアプリ
- 認可サーバー(Authorization Server):認可を行うサーバー
- リソースサーバー(Resource Server):保護されたデータを持つサーバー
トークンの種類
- アクセストークン(Access Token)
- APIアクセスに使用
- 有効期限が短い
- リフレッシュトークン(Refresh Token)
- 新しいアクセストークンを取得するために使用
- 有効期限が比較的長い
OAuth 2.0と認証の違い
OAuth 2.0は本来「認可」の仕組みです。
- 認証(Authentication)
- 「あなたは誰ですか?」を確認
- 認可(Authorization)
- 「何にアクセスしてよいですか?」を決定
ただし、現在はOAuth 2.0を基盤とした OpenID Connect を利用して、ログイン機能(認証)を実現することが一般的です。
よく使われる場面
- Googleログイン
- GitHubログイン
- Microsoftアカウントログイン
- API連携(SNS投稿、クラウドストレージ連携など)
イメージ
ユーザー
↓許可
認可サーバー
↓アクセストークン発行
アプリ
↓トークン提示
APIサーバー
一言でいうと、**OAuth 2.0は「パスワードを共有せずに、他サービスへ安全にアクセス権を委譲する仕組み」**です。



コメント