本文へ移動

Web

OAuth、仕組みを説明できる?

「Googleでログイン」ボタンの裏側で何が起きているか、パスワードを渡さずに連携できる仕組みを説明できるか確認します。

6問約6分基礎

この問題のねらい

OAuthを「ログインに使う便利なボタン」という表面的な理解ではなく、認可の仕組みであってそれ自体は認証のためのものではないこと、アクセストークンによって権限を渡す仕組みまで説明できるかを確かめます。

はじめる前に

この問題では、すぐに正解は表示しません。まず自分の言葉で回答してみてください。

最後まで回答すると、問題とあなたの回答をまとめてコピーできます。普段使っているAIチャットに貼り付けると、理解度をチェックしてもらえます。

こんな問題が出ます

  1. Q1

    OAuth(OAuth 2.0)とはどのような仕組みですか? 「認可(authorization)」という言葉を使って、何のための仕組みかを説明してください。

  2. Q2

    「Googleでログイン」のようなボタンは、OAuthを使ったログイン機能としてよく紹介されます。 しかしOAuth自体は本来「認証(authentication)」のための仕組みではないとされています。なぜそう言われるのか説明してください。

  3. Q3

    OAuthの代表的な流れ(認可コードフロー)では、ユーザーがクライアントのアプリから認可サーバーの画面にリダイレクトされ、そこで許可を出したあと、最終的にクライアントがアクセストークンを受け取ります。 この間、クライアントのアプリはユーザーのID・パスワードを一度でも受け取りますか?流れの概要とあわせて説明してください。

  4. Q4

    OAuthでは、認可を受けた範囲を表すために「スコープ(scope)」という概念があります。 スコープはどのような役割を果たしていますか?具体例を挙げて説明してください。

  5. Q5

    OAuthでは「アクセストークン」に加えて「リフレッシュトークン」が発行されることがあります。 なぜ2種類のトークンを分けているのでしょうか?

  6. Q6

    同僚がこう言いました。どこに問題があるか指摘してください。 「うちのアプリでは他社サービス連携のためにOAuthを使っている。連携を許可した後は、その他社サービスに関する操作は何でも自由にできるようになるから、細かい権限設定なんて気にしなくていいよ」