クラウド・インフラ

OAuth

OAuth

OAuthは、ユーザーがパスワードを共有せずに、サードパーティアプリケーションが保護されたリソースにアクセスできる認可フレームワークです。

oauth 認可フレームワーク apiセキュリティ アクセストークン 認証プロトコル
作成日: 2025年12月19日 更新日: 2026年4月2日

OAuthとは?

OAuthは、ユーザーが自分のパスワードをサードパーティアプリケーションに知られることなく、保護されたリソースへのアクセスを安全に委譲するオープン標準です。 例えば、Googleアカウントで他のアプリにログインするときに使われています。

ひとことで言うと: 自分のGoogleパスワードを教えずに、「Googleフォトへのアクセスを許可する」という一時的な許可証をアプリに渡す仕組みです。

ポイントまとめ:

  • 何をするものか: ユーザーの認証情報を保護しながら、アプリケーションがリソースにアクセスできるフレームワーク
  • なぜ必要か: パスワード盗難のリスク軽減、きめ細かいアクセス制御、ユーザーの安心感向上
  • 誰が使うか: 大規模プラットフォームAPIを公開する企業、セキュリティを重視する開発者

なぜ重要か

かつてのウェブでは、Aのサービスを使うために、Bのプラットフォーム(例:Facebook)のパスワードをAに直接教える必要がありました。これは信じがたいほど危険です。パスワードを知られると、アプリケーションはユーザーのすべてのアクション(写真削除、設定変更など)ができてしまうからです。

OAuthは異なるアプローチを取ります。ユーザーは認可サーバー(Facebook、Googleなど)に直接ログインし、「このアプリにこの権限を与える」と明示的に許可します。その後、一時的なトークンのみがアプリに渡されます。トークンは権限が限定されており、期限が切れたら無効になります。これにより、セキュリティと利便性の両立が実現されました。

仕組みをわかりやすく解説

OAuthフローには複数のステップがあります。まずユーザーが写真印刷サービスで「Googleで連携する」をクリックすると、ブラウザがGoogleの認可サーバーに飛びます。そこでユーザーはGoogleアカウントでログインし、「この印刷サービスにフォトアクセスを許可する」と同意します。

Googleは認可コード(一時的な通行証)を発行し、印刷サービスに返します。印刷サービスはこのコードを使ってGoogleのAPIを呼び出し、アクセストークン(本物の許可証)を獲得します。以降、このトークンを使って、ユーザーのGoogleフォトにアクセス可能になります。

ユーザーが後でアクセスを取り消したい場合、Google の管理画面からアプリを削除するだけで、即座にトークンは無効になります。

実際の活用シーン

ソーシャルログイン - FacebookやGoogleアカウントで他のサイトにログインできる。

APIアクセス権限管理 - SlackボットがSlackワークスペースのメッセージを読むために必要な権限のみを取得する。

モバイルアプリ認証 - iPhoneアプリがユーザーの連絡先データにアクセスする際、OSが管理するOAuthで安全にアクセス権を制御する。

マイクロサービス間通信 - 複数のサービス間で相互認証を行う際、OAuthトークンで権限を管理する。

メリットと注意点

メリット - パスワード盗難のリスクが低下し、ユーザーはアプリごとに細かい権限制御ができます。アプリ開発者は認証実装の負担が軽減され、ユーザーは複数アプリ間でのシームレスなログインが可能です。

注意点 - OAuth実装が複雑で、開発者が誤った実装をするリスクがあります。また、不正なアプリが信頼できるアプリになりすまし、ユーザーを騙して権限を譲渡させることもあります。トークン管理も適切に行わないと、セキュリティ脆弱性が生じます。

関連用語

  • API — OAuthはAPIのセキュアなアクセス制御を実現します。
  • 認証 — ユーザーの身元確認はOAuthの前提です。
  • トークン — OAuthが発行する一時的なアクセス許可証です。
  • JWT — トークンの標準フォーマットの一つです。
  • OIDC — OAuthを拡張した認証フレームワークです。

よくある質問

Q: OAuthと従来のパスワード認証の違いは? A: 従来はパスワードを直接共有し、アプリが全権限を得ます。OAuthは限定的なトークンを時間制限付きで渡します。

Q: OAuthトークンが盗まれた場合、どうなりますか? A: 盗まれたトークンは権限が限定されており、期限も限定されているため、被害を最小化できます。ユーザーが長時間気づかなくても、トークンはいずれ無効になります。

Q: すべてのアプリでOAuthが使えますか? A: OAuthに対応するサービスは多いですが、全部ではありません。セキュリティを重視するサービスほど実装している傾向にあります。

関連用語

APIセキュリティ

APIセキュリティは、認証、暗号化、監視などを通じて、APIを不正アクセスやサイバー攻撃から保護する対策の総称です。...

API管理

API管理は、APIの設計から廃止までのライフサイクル全体を統合的に管理し、セキュリティと効率性を実現するプロセスです。...

APIレート制限

APIレート制限は、過度なリクエストからシステムを保護し、ユーザー間でリソースを公平に配分するためにリクエスト頻度を制御する仕組みです。...

×
お問い合わせ Contact