OAuth2 と Authorization Server
OAuth2 と Authorization Server、フロー(authorization code、client credentials)、resource server、scopes
1OAuth2 とは何ですか?
OAuth2 とは何ですか?
回答
OAuth2 は、ユーザーの credentials を公開することなく、サードパーティアプリケーションがユーザーに代わって HTTP サービスへの限定的なアクセスを取得できるようにする認可プロトコルです。パスワードではなく access token を介して動作します。OAuth2 は委任認証(Google、GitHub などによるログイン)やセキュアな REST API で広く使用されています。
2Web アプリケーションにとって最も安全な OAuth2 フローはどれですか?
Web アプリケーションにとって最も安全な OAuth2 フローはどれですか?
回答
Authorization Code flow は、access token がブラウザに公開されることがないため最も安全なフローです。バックエンドアプリケーションは、セキュアなチャネル(backend-to-backend)を介して一時的な authorization code を access token と交換します。PKCE(Proof Key for Code Exchange)を使用すると、このフローはインターセプト攻撃に対してさらに安全になります。
3Client Credentials flow はどのような場合に使用すべきですか?
Client Credentials flow はどのような場合に使用すべきですか?
回答
Client Credentials flow は、ユーザーコンテキストのない machine-to-machine(service-to-service)通信のために設計されています。クライアントアプリケーションは、独自の credentials(client_id と client_secret)で直接認証して access token を取得します。バッチジョブ、マイクロサービス、または自身の名義で動作するバックエンド API に使用されます。
OAuth2 における PKCE(Proof Key for Code Exchange)とは何ですか?
OAuth2 で Implicit flow が非推奨になっているのはなぜですか?
+17 面接問題