Skip to content

MS_OAuthDeviceFlow

nishi_74322014 edited this page Sep 12, 2026 · 2 revisions

OAuth 2.0 Device Flow

概要

変更

http://self-issued.info/?p=1959

と言った理由で、下記「新仕様」に変更される。

旧仕様

  • 入力デバイスを持たないデバイスで OAuth2 を行う場合のフロー。

  • 別のデバイスで入力を始めるための (C) User Code & Verification URI には、
    以下が使用できる。

    • QR コード
      QRコード)や NFC、
    • e-mail や SMS(Remote Phishing に注意)
  • フロー

+----------+                                +----------------+
|          |>---(A)-- Client Identifier --->|                |
|          |                                |                |
|          |<---(B)-- Verification Code, --<|                |
|          |              User Code,        |                |
|          |         & Verification URI     |                |
|  Device  |                                |                |
|  Client  |         Client Identifier &    |                |
|          |>---(E)-- Verification Code --->|                |
|          |    polling...                  |                |
|          |>---(E)-- Verification Code --->|                |
|          |                                |  Authorization |
|          |<---(F)-- Access Token --------<|     Server     |
+----------+  (w/ Optional Refresh Token)   |                |
      v                                     |                |
      :                                     |                |
     (C) User Code & Verification URI       |                |
      :                                     |                |
      v                                     |                |
+----------+                                |                |
| End-user |                                |                |
|    at    |<---(D)-- User authenticates -->|                |
|  Browser |                                |                |
+----------+                                +----------------+

新仕様

OAuth 2.0 Device Authorization Grant

補足(何が変わったか): このページが記録しているのは
**ドラフト段階(draft-ietf-oauth-device-flow)の「Device Flow」**で、
その後 **RFC 8628「OAuth 2.0 Device Authorization Grant」**として
正式化された。名称が変わった理由は、
「Flow」という語が OAuth 2.0 の仕様用語ではなく、
他の拡張と同じ Grant Typegrant_type=urn:ietf:params:oauth:grant-type:device_code
として位置づけるためである。

中身の主な変更点は次のとおり。

旧(Device Flow ドラフト) 新(RFC 8628)
パラメタ名 verification_code device_code
ポーリング間隔 規定が緩い interval を返し、slow_down エラーで調整
QR コード 言及なし verification_uri_complete を定義(QR に載せやすい)

現在の実装(az login --use-device-codegh auth login
TV アプリのログインなど)はすべて RFC 8628 に従っている。

補足(Remote Phishing への注意は今も有効): 元ページが
「e-mail や SMS(Remote Phishing に注意)」と注記している点は、
その後 Device Code Phishing として実際に悪用が確認されている
(攻撃者がデバイス コードを発行し、それを標的にメールで送って
認可させ、トークンを奪う)。
Security BCP も、
ユーザーが物理的にそのデバイスを見ている前提でのみ使うことを
求めており、コードをネットワーク越しに配ってはならない。

詳細

移行メモ(未記述): 「詳細」節は元ページでも「...。」のみで、
内容が書かれていない。

参考

ritou

本 Wiki 内


Tags: IT国際標準, 認証基盤, クレームベース認証, OAuth

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally