- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>OAuth#me8f72f8]]
* 目次 [#rfe8abc9]
#contents
*概要 [#db4237a9]
[[OAuth]] 2.0 のトークン(refresh_token, access_token)のメタデータ(JSON)を取得するメカニズム(Token Introspection)でコア仕様を補足~
(Token Introspection : Resource ServerがClientから受け取ったTokenのメタデータをAuthorization Serverに要求する方法)
**目的 [#r1c2965c]
以下のトークンのメタデータのセットを判断する。
-期限、無効化
-アクセス権(scope)
-承認者(Issuer)
-対象クライアント(audience)
**ケース [#x50e8cdf]
**シーケンス [#heb04ca7]
*仕様 [#f2899592]
-Authorization Serverに照会することを許可するプロトコルを定義。
-メタデータを取得するメカニズムには、
--[[SAML]], [[JWT]]
--独自のサービス間通信メカニズム
>などの構造化トークンフォーマットの使用が含まれる。
**Introspection Endpoint [#bdbc2f04]
-Authorization Endpointの規則と同様
--HTTP要求の平文認証情報の送信
--SSL/TLS(サーバ証明)の利用
-自動検出など、URLを取得する手段は、この仕様の範囲外
***Request [#m3ad291c]
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 [#q9f84581]
-クライアント認証
-トークン検証
***Response [#oc1de99e]
-application / json
-成功
--パラメタ
|#|パラメタ|説明|h
|1|iss|発行者|
|2|token_type|トークンのタイプ|
|3|client_id|client_id|
|4|aud|Clientの可読識別子(≠client_id)|
|5|sub|Resource Ownerの機械可読識別子|
|6|username|Resource Ownerの人間可読識別子|
|7|exp|有効期限|
|8|iat|発行日時|
|9|nbf|Not Beforeタイムスタンプ|
|10|active|true, false|
|11|scope|スペース区切りのscopeリスト|
|12|jti|トークン識別子|
--例(有効)
---ヘッダ
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のエラーコードを返す。
*実装 [#l5787600]
**注意 [#q943bdbd]
**考察 [#y4d88852]
*参考 [#t88656a7]
-RFC 7662 - OAuth 2.0 Token Introspection~
https://tools.ietf.org/html/rfc7662
-OAuth2.0の備忘録的まとめ - Ari-Press~
http://www.ari-hiro.com/blog/2012/12/30/oauth2-summary
--Manually Build a Login Flow - Facebook Login~
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.4
-RFC7662として発行されたOAuth Token Introspectionとは - r-weblife~
http://d.hatena.ne.jp/ritou/20151021/1445438454
**[[OAuth 2.0 Token Revocation]] [#vcc8a4db]
----
Tags: [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]