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

目次

概要

OAuth 2.0 コア仕様を補足

トークン(refresh_token, access_token)のメタデータ(JSON)を取得するメカニズム(Token Introspection)
(Token Introspection : Resource ServerがClientから受け取ったTokenのメタデータをAuthorization Serverに要求する方法)

目的

以下のトークンのメタデータのセットを判断する。

  • 期限、無効化
  • アクセス権(scope)
  • 承認者(Issuer)
  • 対象クライアント(audience)

ケース

シーケンス

仕様

  • Authorization Serverに照会することを許可するプロトコルを定義。
  • メタデータを取得するメカニズムには、
    • SAML, JWT
    • 独自のサービス間通信メカニズム

などの構造化トークンフォーマットの使用が含まれる。

Introspection Endpoint

  • Authorization Endpointの規則と同様
    • HTTP要求の平文認証情報の送信
    • SSL/TLS(サーバ証明)の利用
  • 自動検出など、URLを取得する手段は、この仕様の範囲外

Request

HTTP POST要求(application/x-www-form-urlencoded)を使用して、
以下のパラメタをRevocation Endpointに送信する。

  • パラメタ
    • token(必須):取り消したいトークン
    • token_type_hint(オプション):失効のためのトークンのタイプに関するヒント。
      • access_token
      • refresh_token
      • 無効なトークン・タイプは無視される。
    • その他、必要時応じて拡張可能
    • ヘッダ
      POST /introspect HTTP/1.1
      Host: server.example.com
      Accept: application/json
      Content-Type: application/x-www-form-urlencoded
      Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
    • ボディ
      token=mF_9.B5f-4.1JqM&token_type_hint=access_token

Process

  • クライアント認証
  • トークン検証

Response

  • application / json
  • 成功
    • パラメタ
      #パラメタ説明
      1iss発行者
      2token_typeトークンのタイプ
      3client_idclient_id
      4audClientの可読識別子(≠client_id)
      5subResource Ownerの機械可読識別子
      6usernameResource Ownerの人間可読識別子
      7exp有効期限
      8iat発行日時
      9nbfNot Beforeタイムスタンプ
      10activetrue, false
      11scopeスペース区切りのscopeリスト
      12jtiトークン識別子
    • 例(有効)
      • ヘッダ
        HTTP/1.1 200 OK
        Content-Type: application/json
      • ボディ
        {
          "active": true,
          "client_id": "l238j323ds-23ij4",
          "username": "jdoe",
          "scope": "read write dolphin",
          "sub": "Z5O3upPC88QrAjx00dis",
          "aud": "https://protected.example.net/resource",
          "iss": "https://server.example.com/",
          "exp": 1419356238,
          "iat": 1419350238,
          "extension_field": "twenty-seven"
        }
    • 例(無効)
      • ヘッダ
        HTTP/1.1 200 OK
        Content-Type: application/json
      • ボディ
        {
          "active": false
        }
  • 失敗
    • ケース
      • クライアント認証に失敗
      • トークン検証に失敗
    • レスポンス
      • HTTP 401 (Unauthorized)
      • OAuth 2.0 のError Responseのエラーコードを返す。

実装

参考

OAuth 2.0 Token Revocation


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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-10-09 (火) 22:15:12 (70d)