/
434.txt
71 lines (47 loc) · 4.16 KB
/
434.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
* 仕様書
[REFS[
- [1] [CITE@en[RFC 6749 - The OAuth 2.0 Authorization Framework]] ([TIME[2014-12-15 14:15:35 +09:00]] 版) <http://tools.ietf.org/html/rfc6749#section-1.5>
- [9] [CITE@en[RFC 6749 - The OAuth 2.0 Authorization Framework]] ([TIME[2014-12-15 14:15:35 +09:00]] 版) <http://tools.ietf.org/html/rfc6749#section-4.2.2>
- [11] [CITE@en[RFC 6749 - The OAuth 2.0 Authorization Framework]] ([TIME[2014-12-15 14:15:35 +09:00]] 版) <http://tools.ietf.org/html/rfc6749#section-5.1>
- [14] [CITE@en[RFC 6749 - The OAuth 2.0 Authorization Framework]] ([TIME[2014-12-15 14:15:35 +09:00]] 版) <http://tools.ietf.org/html/rfc6749#section-6>
]REFS]
* 意味
[2] [DFN[[RUBYB[更新トークン]@en[refresh token]]]]は、
[[アクセストークン]]を得るために使う [[credentials]] です [SRC[>>1]]。
[[更新トークン]]は、[[資源所有者]]の[[クライアント]]への[[認可承諾]]を表す[[文字列]]です [SRC[>>1]]。
;; [7] 通常はこの[[文字列]]は[[クライアント]]には[[不透明]]です [SRC[>>1]]。
[3] [[更新トークン]]は、[[認可鯖]]が[[クライアント]]に発行します [SRC[>>1]]。
[4] [[クライアント]]は現在の[[アクセストークン]]が[[非妥当]]や[[満期]]になって新しい[[アクセストークン]]を得たい時や、
同じかより狭い[[適用範囲]] ([[scope]]) の[[アクセストークン]]を追加で取得したい時に使います [SRC[>>1]]。
;; [5] [[アクセストークン]]は、[[資源所有者]]が[[認可]]した[[寿命]]や許可よりも短く狭いものかもしれません [SRC[>>1]]。
[16] [[認可鯖]]は、各[[更新トークン]]について次の情報を保持しています。
[FIG(list members short)[
- 発行先の[[クライアント]]
- 承諾した[[資源所有者]]
- [[資源所有者]]が承諾した[[適用範囲]]
- [[寿命]] ([[満期]]となる[[時刻]])
]FIG]
[17] [[更新トークン]]は[[寿命]]に到達する前に取り消し ([[revoke]]) されることがあります。
* 構文
[12] [[更新トークン]]の長さは、 [[OAuth]] 仕様としては制限を設けていません。
[[鯖]]は、発行する[[更新トークン]]の長さを明文化する[['''べきです''']]。 [SRC[>>11]]
* 文脈
[6] [[更新トークン]]を発行するかどうかは、[[認可鯖]]が決めることができます [SRC[>>1]]。
発行する場合には、[[トークンエンドポイント]]による[[アクセストークン]]の発行時に[[更新トークン]]を含めます [SRC[>>1, >>11]]。
;; 具体的な発行方法は、[[トークンエンドポイント]]を参照。
;; [8] [[更新トークン]]は[[認可鯖]]でのみ使うもので、[[アクセストークン]]のように[[資源鯖]]に送ることはありません
[SRC[>>1]]。
[10] [[暗示的承諾型]]フローでの[[認可エンドポイント]]でのアクセスでは[[認可鯖]]は[[更新トークン]]を発行しては[['''なりません''']] [SRC[>>9]]。
[18] [[更新トークン]]は、[[トークンエンドポイント]]で[[アクセストークン]]を取得するために使うことができます。
;; [[トークンエンドポイント]]を参照。
* [CODE@en[refresh_token]] 引数
[13] [[トークンエンドポイント]]の[[アクセストークン]]を含む [[JSON]] [[応答]]の
[DFN[[CODE@en[[[refresh_token]]]]]] [[引数]] [SRC[>>11]] には、
[[認可鯖]]が発行した[[更新トークン]]を指定して[[クライアント]]に通知できます。
[19] [[トークンエンドポイント]]で[[更新トークン]]から[[アクセストークン]]を得る要求における
[DFN[[CODE(URI)@en[[[refresh_token]]]]]] [[引数]] [SRC[>>14]] は、
[[クライアント]]が保持している[[更新トークン]]を指定するものです。
* [CODE(URI)@en[grant_type=refresh_token]]
[15] [[トークンエンドポイント]]の [CODE(URI)@en[[[grant_type]]]] [[引数]]の値
[DFN[[CODE(URI)@en[[[refresh_token]]]]]] [SRC[>>14]] は、
[[更新トークン]]から[[アクセストークン]]を取得しようと試みていることを表します。