OAuth

更新日:

用語解説

OAuthは、利用者のパスワードを他のアプリに渡さずに、そのアプリに限られたアクセスの権限を与える(委譲する)ための仕組みです。

■ 試験で押さえるポイント

  • 認可サーバが、アクセストークンをアプリ(クライアント)に発行します。

  • トークンには、使える範囲(スコープ)と有効期間を限定します。

  • 利用者の認証の規格ではなく、ログインの連携にはOAuthの上に作られたOpenID Connectを使います。

■ 過去問での着眼点

OAuthは認証ではなく認可(権限の委譲)の仕組みである点を押さえます。

例: 写真の印刷アプリに、SNSのパスワードを渡さず、選んだ写真を読む権限だけを与えます。

■ 認可コード・PKCEと漏えい時の対応

  • 認可コードはアクセストークンそのものではなく、トークンエンドポイントで交換する短寿命の値である。PKCEでは事前のcode_challengeと交換時のcode_verifierを照合し、コードだけを奪った第三者の交換を防ぐ。

  • redirect_uriを登録値と照合し、stateなどで開始した要求と応答を結び付ける。PKCE、要求の対応付け、クライアント認証、トークンの適用先・scopeの検証は、それぞれ作用する箇所が異なる。

  • Bearerトークンは持つ者が利用できるため、URLやログへの露出を避ける。アクセストークンはAPIで使い、ID Tokenをその代わりとして扱わない。

  • 漏えい時は更新トークンと関連セッションの失効・交換も調べる。パスワード変更だけで発行済みトークンが無効になるとは限らない。更新トークンのローテーションや送信者への結び付けは再利用への対策になる。

音声で聞く

同じ分野の用語