情報処理安全確保支援士(OAuth2.0)

情報処理試験

OAuth 2.0(オーオース・ツー・ポイント・ゼロ)は、ユーザーのパスワードを他のサービスに渡さずに、アプリケーションへ限定的なアクセス権を与えるための認可(Authorization)フレームワークです。

「〇〇アプリでGoogleアカウントを使ってログインする」を考えてみましょう。

  1. ユーザーが〇〇アプリで「Googleでログイン」をクリック
  2. Googleの認証画面が表示される
  3. ユーザーがGoogleで本人確認し、許可を与える
  4. Googleが〇〇アプリに「アクセストークン」を発行
  5. 〇〇アプリはそのトークンを使って、許可された範囲の情報にアクセス

このとき、〇〇アプリはユーザーの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は「パスワードを共有せずに、他サービスへ安全にアクセス権を委譲する仕組み」**です。

コメント

タイトルとURLをコピーしました