戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報処理安全確保支援士 2023年 秋期 午前214


問題文

OAuth2.0に関する記述のうち、適切なものはどれか。

選択肢

認可を行うためのプロトコルであり、認可サーバが、アクセスしてきた者が利用者(リソースオーナー)本人であるかどうかを確認するためのものである。
認可を行うためのプロトコルであり、認可サーバが、利用者(リソースオーナー)の許可を得て、サービス(クライアント)に対し、適切な権限を付与するためのものである。(正解)
認証を行うためのプロトコルであり、認証サーバが、アクセスしてきた者が利用者(リソースオーナー)本人であるかどうかを確認するためのものである。
認証を行うためのプロトコルであり、認証サーバが、利用者(リソースオーナー)の許可を得て、サービス(クライアント)に対し、適切な権限を付与するためのものである。

🔒 解説は解答すると表示されます

OAuth2.0の認可機構【午前2解説】

正解の理由

OAuth 2.0 はリソースオーナー(利用者)の許可に基づいてクライアント(第三者アプリ)にリソースアクセスの権限を与えるための「認可(authorization)」フレームワークです。認可サーバは利用者の同意とクライアントの認証などを踏まえて、クライアントにアクセストークンを発行し、クライアントがリソースサーバに対して権限付与されたアクセスを行えるようにします。したがって、選択肢のうち正しく OAuth 2.0 の役割を表しているのは です。
補足的に重要な点として、OAuth 2.0 の設計原則では「クライアントが利用者のパスワードを直接受け取らない」ことが望まれますが、仕様上は Resource Owner Password Credentials (ROPC) というグラントタイプが例示されており、これにより例外的にクライアントがパスワードを受け取るケースが存在します。ただし ROPC は推奨されず、セキュリティ上の理由で避けるべき方式とされています。

解法ステップ

  1. 「認可」と「認証」の違いを明確にする
    • 認可(authorization):誰がどのリソースにどの範囲でアクセスできるかを決める。
    • 認証(authentication):アクセスしてきた者が本人であるかを確認する。
  2. 文中の主体(認可サーバ/認証サーバ)と動詞(確認する/許可を得て権限を付与する)を照合する。
  3. OAuth 2.0 の目的は「クライアントに権限を付与するための仕組み」である点を基準に正誤を判定する。
  4. 例外(ROPC)や関連仕様(OpenID Connect)について短く注意する。

選択肢別の誤答解説

  • ア: 「認可を行うためのプロトコルであり、認可サーバが…本人であるかどうかを確認するためのもの」
    誤り。OAuth 2.0 は認可が目的であり、認可サーバはリソースオーナーからの同意を得てトークンを発行します。認可サーバは認証(本人確認)を行うことが多いものの、OAuth 自体は「本人確認」を主目的とするプロトコルではありません(本人確認が必要な場面では認証処理を組み合わせます)。
  • ウ: 「認証を行うためのプロトコルであり、認証サーバが…本人であるかどうかを確認するためのもの」
    誤り。これは認証プロトコルの説明であり、OAuth 2.0 の定義とは合致しません。認証を目的とする場合は OpenID Connect のような上位仕様を用います。
  • エ: 「認証を行うためのプロトコルであり、認証サーバが、利用者の許可を得てサービスに対し権限を付与するためのもの」
    誤り。説明が認証と認可を混同しており不適切です。認証サーバは本人確認が目的であり、「利用者の許可を得てサービスに権限を付与する」役割は認可の説明です。

よくある誤解

  • OAuth 2.0 は「ログイン(本人確認)」のための仕組みである:誤り。OAuth は認可が目的で、ログイン機能が欲しい場合は OpenID Connect を使うのが正しい選択です。
  • クライアントが常に利用者のパスワードを扱わない:原則としてそうですが、ROPC グラントのように仕様上例示されている例外が存在します。セキュリティ上は避けるべきです。
  • アクセストークンは同じ意味でどこでも使える認証情報:誤り。アクセストークンはリソースサーバごとにスコープや寿命が設定され、取り扱いに注意が必要です。

補足コラム

  • 代表的なグラントタイプ(簡単に)
    • Authorization Code:一般的で安全なブラウザ/サーバ型フロー。認可コードを交換してアクセストークンを取得。
    • Implicit(非推奨):単一ページアプリ向けに設計されたがセキュリティ上の問題から推奨されない。
    • Client Credentials:サーバ間でクライアント自身の権限でアクセスする際に使用。
    • Resource Owner Password Credentials(ROPC):利用者のユーザ名・パスワードを直接クライアントが扱う方式。仕様上存在するが非推奨で、使用は極力避けるべき。
  • OpenID Connect(OIDC)は OAuth 2.0 を拡張して「認証」を提供する仕様で、ログインや ID トークンの発行を扱います。
  • 実務上の注意点:トークンの保護、スコープの最小化、リフレッシュトークンの運用、暗号化・TLS必須などを徹底すること。

FAQ

Q1: OAuth 2.0 を使えばユーザーログインを実装できますか?
A1: 厳密には OAuth 2.0 は認可のための仕組みです。ログイン(認証)機能が必要なら OpenID Connect を使うのが推奨です。
Q2: クライアントはユーザーのパスワードを受け取りますか?
A2: 原則として受け取りません。例外的に Resource Owner Password Credentials(ROPC)というグラントが仕様上存在し、これを使うとクライアントがパスワードを扱いますが、これはセキュリティ上の理由で非推奨です。
Q3: アクセストークンとリフレッシュトークンの違いは?
A3: アクセストークンはリソースアクセスに用いる短期的な証明で、リフレッシュトークンは新しいアクセストークンを取得するための長期的なクレデンシャルです。取り扱いは厳重に行う必要があります。

関連キーワード: OAuth2.0、認可、アクセストークン、リフレッシュトークン、スコープ、Authorization Code、Resource Owner Password Credentials、OpenID Connect
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

情報処理安全確保支援士
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について