eli-new · visual explainer

OAuth 2.0 パスワードを渡さず、必要な操作だけを任せる

OAuth 2.0は、あるサービスが持つ情報の一部を、別のアプリに「限定付きで使ってよい」と許可するための枠組みです。

1何のためにある?

危険な任せ方

アプリにパスワードを渡すと、そのアプリは本人と同じことを幅広くできてしまいます。

OAuth 2.0の任せ方

できることを限り、後から取り消せる「許可証」だけをアプリに渡します。

2写真プリントの例

「選んだ写真を印刷してほしい」

プリントアプリに必要なのは、写真サービスの中身を全部変更する権限ではありません。選んだ写真を読む許可だけがあれば十分です。OAuth 2.0は、この「必要な分だけ任せる」を実現します。

3例と実際の用語をつなぐ

USER

あなた

写真と、どのアプリに何を許すかを管理する人です。

CLIENT

プリントアプリ

あなたの許可を受け、写真を使いたい別のアプリです。

AUTHORIZATION SERVER

許可を確認する係

本人かと許可内容を確認し、許可を表す情報を発行します。

ACCESS TOKEN

限定付きの許可証

クライアントがAPIに示す、限られた操作のための情報です。

44つの要素で流れを見る

  1. 1

    あなた

    プリントアプリで「写真サービスとつなぐ」を選びます。

  2. 2

    許可サーバー

    本人確認を行い、アプリが求める許可の範囲を示します。

  3. 3

    プリントアプリ

    同意後、写真を読むためのアクセストークンを受け取ります。

  4. 4

    写真API

    トークンの範囲を確かめ、許可された写真データだけを返します。

ポイント:プリントアプリに、写真サービスのパスワードは渡りません。

5重要な境界

OAuth 2.0の中心は「認証」ではなく「認可」です。 つまり、別のアプリに何を許すかを扱う枠組みです。「その人は誰か」をアプリへ伝えてログインさせるときは、通常はOpenID Connectという仕組みをOAuth 2.0の上で使います。

One level deeper

権限の範囲

許す操作の範囲は「スコープ」と呼ばれます。

有効期限

アクセストークンには、通常は有効期限があります。

許可の取り消し

許可した連携は、サービスの設定画面などから取り消せます。