マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

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

と言った理由で、OAuth 2.0 Device Flowから変更された(v15から)。

前提

  1. Deviceは、既にインターネットに接続されている状態。
  2. Deviceは、アウトバウンドHTTPS要求を作成できる。
  3. Deviceは、UserにURIとコードを表示または通信できる。
  4. Userは、セカンダリデバイス(PCやスマホなど)を持っている。

フロー

     +----------+                                +----------------+
     |          |>---(A)-- Client Identifier --->|                |
     |          |                                |                |
     |          |<---(B)-- Device Code,      ---<|                |
     |          |          User Code,            |                |
     |  Device  |          & Verification URI    |                |
     |  Client  |                                |                |
     |          |  [polling]                     |                |
     |          |>---(E)-- Device Code,      --->|                |
     |          |          & Client Identifier   |                |
     |          |                                |  Authorization |
     |          |<---(F)-- Access Token      ---<|     Server     |
     +----------+   (& Optional Refresh Token)   |                |
           v                                     |                |
           :                                     |                |
          (C) User Code & Verification URI       |                |
           :                                     |                |
           v                                     |                |
     +----------+                                |                |
     | End user |                                |                |
     |    at    |<---(D)-- End user reviews  --->|                |
     |  Browser |          authorization request |                |
     +----------+                                +----------------+
  1. ClientはAuthZ(AuthN)からの認可要求にclient_idを含める(A)。
  2. AuthZ(AuthN)は、Clientの認可要求に対して下記を応答する(B)。
    • デバイス・コード
    • エンドユーザ・コード
    • エンドユーザ検証URI
  3. Clientは、Resource Owner(EndUser?)に(別のデバイス上の)User-Agentを使用し、
    エンドユーザ検証URIにアクセスしエンドユーザ・コードを入力するように指示(C)。
  4. User-Agent
    • AuthZ(AuthN)はUser-Agentを介しResource Owner(EndUser?)を認証。
    • 許可要求に同意した場合、User-Agentからエンドユーザ・コードを入力、AuthZ(AuthN)で検証(D)。
  5. Client
    AuthZ(AuthN)を繰り返しポーリング(デバイス・コードとclient_id)
  6. AuthZ(AuthN)は、Clientから提供されたデバイス・コードとclient_idを検証し、
    Resource Owner(EndUser?)が、アクセスを、
    • 許可した場合はaccess_tokenで応答し、
    • 拒否した場合はエラーを返す。

詳細

認可エンドポイント

認可リクエスト

client_id=459691054427

認可レスポンス

     {
       "device_code": "GmRhmhcxhwAzkoEqiMEg_DnyEysNkuNhszIySk9eS",
       "user_code": "WDJB-MJHT",
       "verification_uri": "https://example.com/device",
       "verification_uri_complete":
           "https://example.com/device?user_code=WDJB-MJHT",
       "expires_in": 1800,
       "interval": 5
     }

Tokenエンドポイント

ポイント

クライアント認証

参考

内部リンク

OAuth 2.0 Device Flow

CIBA(Client Initiated Backchannel Authentication)


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


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS