-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrfc7009.ja.xml
857 lines (766 loc) · 50.1 KB
/
rfc7009.ja.xml
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
<?xml version="1.0" encoding="UTF-8"?>
<!--
This template is for creating an Internet Draft using xml2rfc, which
is available here: http://xml.resource.org.
-->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!--
For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html.
-->
<!--
Below are generally applicable Processing Instructions (PIs) that most
I-Ds might want to use. (Here they are set differently than their
defaults in xml2rfc v1.32)
-->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!--
control vertical white space (using these PIs as follows is
recommended by the RFC Editor)
-->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<!--
<rfc category="std" docName="draft-ietf-oauth-revocation-11" ipr="trust200902">
-->
<rfc submissionType="IETF" category="std" consensus="yes" ipr="trust200902" number="7009">
<!--gran
category values: std, bcp, info, exp, and historic ipr values:
full3667, noModification3667, noDerivatives3667 you can add the
attributes updates="NNNN" and obsoletes="NNNN" they will automatically
be output with "(if approved)"
-->
<!-- ***** FRONT MATTER ***** -->
<front>
<!--
The abbreviated title is used in the page header - it is only
necessary if the full title is longer than 39 characters
-->
<title abbrev="Token Revocation">OAuth 2.0 Token Revocation</title>
<author fullname="Torsten Lodderstedt" initials="T." role="editor"
surname="Lodderstedt">
<organization>Deutsche Telekom AG</organization>
<address>
<email>torsten@lodderstedt.net</email>
</address>
</author>
<author fullname="Stefanie Dronia" initials="S." surname="Dronia">
<address>
<email>sdronia@gmx.de</email>
</address>
</author>
<author fullname="Marius Scurtescu" initials="M." surname="Scurtescu ">
<organization>Google</organization>
<address>
<email>mscurtescu@google.com</email>
</address>
</author>
<date month="August" year="2013"/>
<!-- Meta-data Declarations -->
<area>Security Area</area>
<workgroup>OAuth Working Group</workgroup>
<!--
WG name at the upperleft corner of the doc, IETF is fine for
individual submissions. If this element is not present, the default
is "Network Working Group", which is used by the RFC Editor as a nod
to the history of the IETF.
-->
<keyword>token revocation</keyword>
<keyword>oauth2</keyword>
<!--
Keywords will be incorporated into HTML output files in a meta tag
but they have no effect on text or nroff output. If you submit your
draft to the RFC Editor, the keywords will be used for the search
engine.
-->
<abstract>
<!--
<t>This document proposes an additional endpoint for OAuth authorization
servers, which allows clients to notify the authorization server that a
previously obtained refresh or access token is no longer needed. This
allows the authorization server to clean up security credentials. A
revocation request will invalidate the actual token and, if applicable,
other tokens based on the same authorization grant.</t>
-->
<t>
このドキュメントは、OAuth 認可サーバのための追加エンドポイントを提案する。
そのエンドポイントは事前に取得されているリフレッシュトークンあるいはアクセストークンが不要になったことを認可サーバへ通知することをクライアントに許可する。
これは認可サーバにセキュリティクレデンシャルを削除させる。
無効化リクエストは実際のトークンと、もし該当するものがあれば同じ認可に基づく他のトークンを無効にする。
</t>
</abstract>
</front>
<middle>
<!--
<section anchor="Introduction" title="Introduction">
-->
<section anchor="Introduction" title="はじめに">
<!--
<t>The OAuth 2.0 core specification <xref target="RFC6749"/> defines
several ways for a client to obtain refresh and access tokens. This
specification supplements the core specification with a mechanism to
revoke both types of tokens. A token is a string representing an
authorization grant issued by the resource owner to the client. A
revocation request will invalidate the actual token and, if applicable,
other tokens based on the same authorization grant and the authorization
grant itself.</t>
-->
<t>
OAuth 2.0 core specification <xref target="RFC6749"/> はクライアントがリフレッシュトークンとアクセストークンを取得するためにいくつかの方法が定義している。
この仕様書は両タイプのトークンを取り消すための仕組みによって core specification を補足する。
トークンはリソースオーナーによってクライアントに発行された認可を表している文字列である。
無効化リクエストは、実際のトークンと、もし該当するものがあれば同じ認可に基づくその他のトークンとその認可自体を無効にする。
</t>
<!--
<t>From an end-user's perspective, OAuth is often used to log into a
certain site or application. This revocation mechanism allows a client
to invalidate its tokens if the end-user logs out, changes identity, or
uninstalls the respective application. Notifying the authorization
server that the token is no longer needed allows the authorization
server to clean up data associated with that token (e.g., session data)
and the underlying authorization grant. This behavior prevents a
situation in which there is still a valid authorization grant for a
particular client of which the end-user is not aware. This way, token
revocation prevents abuse of abandoned tokens and facilitates a better
end-user experience since invalidated authorization grants will no
longer turn up in a list of authorization grants the authorization
server might present to the end-user.</t>
-->
<t>
エンドユーザの視点から、OAuth はしばしばあるサイトやアプリケーションへのログインのために用いられる。
この無効化の仕組みは、エンドユーザがログアウト、アイデンティティの切り替え、あるいは各アプリケーションがアンインストールされた場合に、クライアントにそのトークンを無効にさせる。
トークンが不要になったという認可サーバへの通知は、認可サーバにトークン(例えば、セッションデータ)と認可に関連したデータを取り消させる。
この振る舞いは、エンドユーザが気づいていない特定のクライアントのまだ有効な認可があるという状況を防ぐ。
この方法で、トークンの無効化は放棄されているトークンの乱用を防ぎ、認可サーバがエンドユーザに送ったかもしれない認可の一覧で、無効になった認可をみつける必要がないので、より良いエンドユーザの体験を促進する。
</t>
</section>
<!--
<section title="Requirements Language">
-->
<section title="表記規約">
<!--
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref
target="RFC2119">RFC 2119</xref>.</t>
-->
<t>
このドキュメントで用いられているキーワード「MUST(しなければならない)」、「MUST NOT(してはいけない)」、「REQUIRED(必須である)」、「SHALL(するものとする)」、「SHALL NOT(しないものとする)」、「SHOULD(すべきである)」、「SHOULD NOT(すべきではない)」、「RECOMMENDED(推奨される)」、「MAY(してもよい)」、「OPTIONAL(任意である)」は <xref target="RFC2119">RFC 2119</xref> に述べられている通りに解釈する。
</t>
</section>
<section anchor="Revocation" title="Token Revocation">
<!--
<t>Implementations MUST support the revocation of refresh tokens and
SHOULD support the revocation of access tokens (see <xref format="title"
target="impl"/>).</t>
-->
<t>
実装はリフレッシュトークンの無効化はサポートしなければならなく(MUST)、アクセストークンの無効化はサポートすべきである(SHOULD)(<xref format="title" target="impl"/> を参照)。
</t>
<!--
<t>The client requests the revocation of a particular token by making an
HTTP POST request to the token revocation endpoint URL. This URL MUST
conform to the rules given in <xref target="RFC6749"/>, Section 3.1.
Clients MUST verify that the URL is an HTTPS URL.</t>
-->
<t>
クライアントは、トークン無効化エンドポイント URL に HTTP POST リクエストすることによって特定のトークンを取り消しを要請する。
この URL は Section 3.1 <xref target="RFC6749"/> に与えられた規則に従わなければならない(SHOULD)。クライアントはその URL が HTTPS URL であることを検証しなければならない(MUST)。
</t>
<!--
<t>The means to obtain the location of the revocation endpoint is out of
the scope of this specification. For example, the client developer may
consult the server's documentation or automatic discovery may be used.
As this endpoint is handling security credentials, the endpoint location
needs to be obtained from a trustworthy source.</t>
-->
<t>
無効化エンドポイントの場所を得るための方法はこの仕様書の範囲外である。
例えば、クライアント開発者はサーバのドキュメントを調べてもよく、もしくは自動検出を使ってもよい。
このエンドポイントはセキュリティクレデンシャルを取り扱っている際には、エンドポイントの場所は信頼できる資料から得られる必要がある。
</t>
<!--
<t>Since requests to the token revocation endpoint result in the
transmission of plain text credentials in the HTTP request, URLs for
token revocation endpoints MUST be HTTPS URLs. The authorization server
MUST use Transport Layer Security (TLS) in a version compliant with
<xref target="RFC6749"/>, Section 1.6. Implementations MAY also support
additional transport-layer security mechanisms that meet their security
requirements.</t>
-->
<t>
トークン無効化エンドポイントへのリクエストは、HTTP リクエスト中に平文クレデンシャルの伝達を生じるため、トークン無効化エンドポイントのための URL は HTTPS でなければならない(MUST)。
認可サーバは、Section 1.6 <xref target="RFC6749"/> のバージョンに準拠した Transport Layer Security(TLS)を利用しなければならない(MUST)。
実装のセキュリティ要求に合った追加の transport-layer security 機構もサポートしてもよい(MAY)。
</t>
<!--
<t>If the host of the token revocation endpoint can also be reached over
HTTP, then the server SHOULD also offer a revocation service at the
corresponding HTTP URI, but it MUST NOT publish this URI as a token
revocation endpoint. This ensures that tokens accidentally sent over
HTTP will be revoked.</t>
-->
<t>
トークン無効化エンドポイントのホストが HTTP 経由で到達可能ならば、HTTP でも無効化サービスも提供すべきである(SHOULD)が、トークン無効化エンドポイントとしてこの URI を明示してはいけない(MUST NOT)。
HTTP 経由でのトークン無効化エンドポイントの提供は、誤って HTTP 経由で送信されたトークンも期待通り無効化されることを保証する。
</t>
<section title="Revocation Request">
<!--
<t>The client constructs the request by including the following
parameters using the "application/x-www-form-urlencoded" format in the
HTTP request entity-body:</t>
-->
<t>
クライアントは HTTP リクエストエンティティボディに "application/x-www-form-urlencoded" 形式を使った以下のパラメータを含んでいるリクエストを構成する:
</t>
<t><list hangIndent="8" style="hanging">
<!--
<t hangText="token">REQUIRED. The token that the client wants to
get revoked.</t>
-->
<t hangText="token">必須(REQUIRED)。クライアントが無効化したいトークン。
</t>
<!--
<t hangText="token_type_hint">OPTIONAL. A hint about the type of
the token submitted for revocation. Clients MAY pass this
parameter in order to help the authorization server to optimize
the token lookup. If the server is unable to locate the token
using the given hint, it MUST extend its search across all of its
supported token types. An authorization server MAY ignore this
parameter, particularly if it is able to detect the token type
automatically. This specification defines two such values:<list
style="symbols">
<t>access_token: An access token as defined in <xref
target="RFC6749"/>, Section 1.4</t>
<t>refresh_token: A refresh token as defined in <xref
target="RFC6749"/>, Section 1.5</t>
</list>Specific implementations, profiles, and extensions of
this specification MAY define other values for this parameter
using the registry defined in <xref target="hint-reg"/>.</t>
</list></t>
-->
<t hangText="token_type_hint">任意である(OPTIONAL)。無効化のために送信されるトークンのタイプについてのヒント。
クライアントは認可サーバがトークンを効率的に発見するための補助としてこのパラメータを送ってもよい(MAY)。
サーバが与えられたヒントを使っているトークンが特定できない場合、サポートしているトークンタイプ全てにおける検索を施さなければならない(MUST)。
認可サーバが自動的にトークンタイプをみつけることができるならば、このパラメータを無視してもよい(MAY)。
この仕様は2つの値を定義している:
<list style="symbols">
<t>access_token: Section 1.4 の <xref target="RFC6749"/> にアクセストークンとして定義されている。
</t>
<t>refresh_token: Section 1.5 の <xref target="RFC6749"/> にリフレッシュトークンとして定義されている。
</t>
</list>
特定の実装、プロファイル、この仕様の拡張機能は <xref target="hint-reg"/> で定義されているレジストリを利用してこのパラメータの他の値を定義してもよい(MAY)。
</t>
</list></t>
<!--
<t>The client also includes its authentication credentials as
described in Section 2.3. of <xref target="RFC6749"/>.</t>
-->
<t>
クライアントは <xref target="RFC6749"/> の Section 2.3 に説明されている認証クレデンシャルも含んでもよい。
</t>
<!--
<t>For example, a client may request the revocation of a refresh token
with the following request:</t>
-->
<t>
例えば、クライアントは以下のようなリクエストでリフレッシュトークンの無効化を要求してもよい。
</t>
<figure>
<artwork><![CDATA[
POST /revoke HTTP/1.1
Host: server.example.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
token=45ghiukldjahdnhzdauz&token_type_hint=refresh_token]]></artwork>
</figure>
<!--
<t>The authorization server first validates the client credentials (in
case of a confidential client) and then verifies whether the token was
issued to the client making the revocation request. If this validation
fails, the request is refused and the client is informed of the error
by the authorization server as described below.</t>
-->
<t>
認可サーバは始めに(非公開なクライアントの場合)クライアントクレデンシャルの有効性を確認してから無効化を要求したクライアントに発行されたトークンかどうかを検証する。
この有効性の確認に失敗した場合、そのリクエストは拒否され、そのクライアントは後述の認可サーバによってエラーが通知される。
</t>
<!--
<t>In the next step, the authorization server invalidates the token.
The invalidation takes place immediately, and the token can not be
used again after the revocation. In practice, there could be a
propagation delay, for example, in which some servers know about the
invalidation while others do not. Implementations should minimize that
window, and clients must not try to use the token after receipt of an
HTTP 200 response from the server.</t>
-->
<t>
次に、認可サーバはそのトークを無効にする。その無効はただちにおこなわれ、そのトークンは無効化後は再び利用できなくなる。
実際には、例えば、数台のサーバがその無効化について認知しているが、他のサーバが認知してない間、実際には通信遅延してもよい。
実装者は受け口を最小限にすべきであり、クライアントはサーバから HTTP 200 レスポンスの受信後にトークンを利用しようとしてはいけない。
</t>
<!--
<t>Depending on the authorization server's revocation policy, the
revocation of a particular token may cause the revocation of related
tokens and the underlying authorization grant. If the particular token
is a refresh token and the authorization server supports the
revocation of access tokens, then the authorization server SHOULD also
invalidate all access tokens based on the same authorization grant
(see <xref format="title" target="impl"/>). If the token passed to the
request is an access token, the server MAY revoke the respective
refresh token as well.</t>
-->
<t>
認可サーバの無効化ポリシーによって、特定のトークンの無効化は関連したトークンとその元となる認可の無効化を行ってもよい。
特定のトークンがリフレッシュトークンで認可サーバがアクセストークンの無効化をサポートする場合には、認可サーバはその同じ認可のもととなる全てのアクセストークンを無効にすべきでる(SHOULD)( <xref format="title" target="impl"/> を参照)。
要求を満たしたトークンがアクセストークンであった場合には、サーバは同様に各リフレッシュトークンを無効化してもよい(MAY)。
</t>
<!--
<t>Note: A client compliant with <xref target="RFC6749"/> must be
prepared to handle unexpected token invalidation at any time.
Independent of the revocation mechanism specified in this document,
resource owners may revoke authorization grants, or the authorization
server may invalidate tokens in order to mitigate security threats.
Thus having different server policies with respect to cascading the
revocation of tokens should not pose interoperability problems.</t>
-->
<t>
参考:<xref target="RFC6749"/> に遵守したクライアントは随時予期せぬトークンの無効化を扱うための準備をしなければならない。
このドキュメントに明記されている無効化の仕組みとは別に、リソースオーナーは認可を無効化してもよく、あるいは認可サーバはセキュリティ上の脅威を軽減するためにトークンを無効にしてもよい。
このようなトークンの無効化を段階的に行うことに関して異なるサーバポリシーを持つことによって互換性の問題を提起すべきではない。
</t>
</section>
<section title="Revocation Response">
<!--
<t>The authorization server responds with HTTP status code 200 if the
token has been revoked successfully or if the client submitted an
invalid token.</t>
-->
<t>
トークンが正常に無効化されるもしくはクライアントが無効なトークンを送信した場合、認可サーバは HTTP ステータスコード 200 を返却する。
</t>
<!--
<t>Note: invalid tokens do not cause an error response since the
client cannot handle such an error in a reasonable way. Moreover, the
purpose of the revocation request, invalidating the particular token,
is already achieved.</t>
-->
<t>
参考:エラーを返してもクライアントは特に適切はエラー処理はできないため、無効なトークンが送られてきてもエラーレスポンスを返してはいけない。
さらに、無効化リクエストの目的は、当該トークンが無効であれば、成功しているといえる。
</t>
<!--
<t>The content of the response body is ignored by the client as all
necessary information is conveyed in the response code.</t>
-->
<t>
レスポンスコードが必要な情報を全て示しているため、クライアントはレスポンスボディーの内容を無視すること。
</t>
<!--
<t>An invalid token type hint value is ignored by the authorization
server and does not influence the revocation response.</t>
-->
<t>
無効なトークンタイプのヒントの値は認可サーバによって無視され、無効化レポンスに影響してはいけない。
</t>
<section title="Error Response">
<!--
<t>The error presentation conforms to the definition in Section 5.2
of <xref target="RFC6749"/>. The following additional error code is
defined for the token revocation endpoint: <list hangIndent="8"
style="hanging">
<t hangText="unsupported_token_type">: The authorization server
does not support the revocation of the presented token type.
That is, the client tried to revoke an access token on a server not
supporting this feature.</t>
</list></t>
-->
<t>
エラーの説明は <xref target="RFC6749"/> の Section 5.2 の定義に従う。
以下の追加エラーコードはトークン無効化エンドポイントのために定義されている。
<list hangIndent="8" style="hanging">
<t hangText="unsupported_token_type">: 認可サーバは提示されたトークンタイプの無効化はサポートしてはいけない。
つまり、クライアントはこの機能をサポートしていないサーバ上でアクセストークンの無効化を試したということである。
</t>
</list>
</t>
<!--
<t>If the server responds with HTTP status code 503, the client must
assume the token still exists and may retry after a reasonable
delay. The server may include a "Retry-After" header in the response
to indicate how long the service is expected to be unavailable to
the requesting client.</t>
-->
<t>
サーバが HTTP ステータスコード 503 で応答した場合、クライアントはそのトークンがまだ存在しているとみなし、適切な遅延の後再び試してもよい。
サーバは、サービスがどのくらいの間利用できないと想定されているかを示す "Retry-After" ヘッダーを含んでもよい。
</t>
</section>
</section>
<section anchor="cross-orgin" title="Cross-Origin Support">
<!--
<t>The revocation endpoint MAY support <xref format="title"
target="W3C.WD-cors-20120403">Cross-Origin Resource Sharing(CORS)</xref> if it is aimed at use in
combination with user-agent-based applications.</t>
-->
<t>
ユーザエージェントベースアプリケーションとの組み合わせで使用することを目的とする場合、無効化エンドポイントは <xref format="title" target="W3C.WD-cors-20120403">Cross-Origin Resource Sharing(CORS)</xref> をサポートしてもよい。(MAY)。
</t>
<!--
<t>In addition, for interoperability with legacy user-agents, it MAY
also offer <xref format="title" target="jsonp">JSONP</xref> by
allowing GET requests with an additional parameter: <list
hangIndent="8" style="hanging">
<t hangText="callback">OPTIONAL. The qualified name of a
JavaScript function.</t>
</list></t>
-->
<t>
加えて、レガシーなユーザエージェントとの互換性のために、以下のパラメータをつかった GET リクエストを許可することによって <xref format="title" target="jsonp">JSONP</xref> をサポートしてもよい(MAY):
<list hangIndent="8" style="hanging">
<t hangText="callback">任意である(OPTIONAL)。JavaScript 関数の修飾名。</t>
</list>
</t>
<!--
<t>For example, a client may request the revocation of an access token
with the following request (line breaks are for display purposes
only):</t>
-->
<t>
例えば、クライアントは以下のリクエスト(改行は表記のためである)でアクセストークンの無効化をリクエストできる:
</t>
<figure>
<artwork><![CDATA[
https://example.com/revoke?token=agabcdefddddafdd&
callback=package.myCallback
]]></artwork>
</figure>
<t>Successful response:</t>
<figure>
<artwork><![CDATA[
package.myCallback();
]]></artwork>
</figure>
<t>Error response:</t>
<figure>
<artwork><![CDATA[
package.myCallback({"error":"unsupported_token_type"});
]]></artwork>
</figure>
<!--
<t>Clients should be aware that when relying on JSONP, a malicious
revocation endpoint may attempt to inject malicious code into the
client.</t>
-->
<t>
クライアントは、JSONP を利用する場合、悪意のある無効化エンドポイントがクライアントへ悪意あるコードの注入を試みるかもしれないということを認識すべきである。
</t>
</section>
</section>
<section anchor="impl" title="Implementation Note">
<!--
<t>OAuth 2.0 allows deployment flexibility with respect to the style of
access tokens. The access tokens may be self-contained so that a
resource server needs no further interaction with an authorization
server issuing these tokens to perform an authorization decision of the
client requesting access to a protected resource. A system design may,
however, instead use access tokens that are handles referring to
authorization data stored at the authorization server. This consequently
requires a resource server to issue a request to the respective
authorization server to retrieve the content of the access token every
time a client presents an access token.</t>
-->
<t>
OAuth 2.0 はアクセストークンの形式を柔軟に実装可能にしている。
アクセストークンは、リソースサーバが認可サーバとのインタラクションなしにトークンの有効性を検証できるよう、self-contained であってもよい。
また、アクセストークンを参照 (handle) として、アクセストークンに紐づく認可情報を認可サーバーに問い合わせるように設計することもできる。
この結果リソースサーバは、クライアントがアクセストークンを提供するたびにアクセストークンの内容を取り出すためそれぞれの認可サーバへのリクエストを発行する必要がある。
</t>
<!--
<t>While these are not the only option, they illustrate the implications
for revocation. In the latter case, the authorization server is able to
revoke an access token previously issued to a client when the resource
server relays a received access token. In the former case, some
(currently non-standardized) backend interaction between the
authorization server and the resource server may be used when immediate
access token revocation is desired. Another design alternative is to
issue short-lived access tokens, which can be refreshed at any time
using the corresponding refresh tokens. This allows the authorization
server to impose a limit on the time revoked when access tokens are in
use.</t>
-->
<t>
選択肢はこれらに限ったものではないが、この2つの違いはトークン無効化の仕組みにも影響する。
後者の場合、認可サーバは、リソースサーバが当該トークンを認可サーバに問い合わせたタイミングで、発行済トークンが無効であることを伝えることができる。
前者はの場合、即時のアクセストークンの無効化が望まれるとき、認可サーバとリソースサーバとの間でいくつかの(現在は標準化されていない)エンドポイントのインタラクションが使用されるかもしれない。
また、そういったインタラクションを行う代わりに、有効期限の短いアクセストークンを発行し、適宜リフレッシュトークンを用いてリフレッシュさせるようにすることもできる。
そうすることで、認可サーバはトークンが無効化された際に発行済アクセストークンの残り有効期限が切れた時点でトークン無効化を完了することができるようになる。
</t>
<!--
<t>Which approach of token revocation is chosen will depend on the
overall system design and on the application service provider's risk
analysis. The cost of revocation in terms of required state and
communication overhead is ultimately the result of the desired security
properties.</t>
-->
<t>
どういったトークン無効化手法を採用するかは、全体のシステム設計とアプリケーションサーバ提供者のリスク分析に依存するだろう。
ステート管理とコミュニケーションオーバーヘッドといったトークン無効化にかかるコストは、結局のところ必要なセキュリティプロパティの結果である。
</t>
</section>
<section anchor="IANA" title="IANA Considerations">
<!--
<t>This specification registers an error value in the "OAuth Extensions
Error Registry" and establishes the "OAuth Token Type Hints" registry.</t>
-->
<t>この仕様は "OAuth Extensions Error Registry" にエラー値を登録し、 "OAuth Token Type Hints" レジストリを確立する。</t>
<section title="OAuth Extensions Error Registration">
<!--
<t>This specification registers the following error value in the
"OAuth Extensions Error Registry" defined in <xref
target="RFC6749"/>.</t>
-->
<t>この仕様は <xref target="RFC6749"/> に定義されている "OAuth Extensions Error Registry" に以下のエラー値を登録する。</t>
<section title="The "unsupported_token_type" Error Value">
<t><list hangIndent="8" style="hanging">
<t hangText="Error name">: unsupported_token_type</t>
<!--
<t hangText="Error Usage Location">: Revocation endpoint error
response</t>
-->
<t hangText="Error Usage Location">: Revocation エンドポイントエラーレスポンス</t>
<!--
<t hangText="Related Protocol Extension">: Token Revocation
Endpoint</t>
-->
<t hangText="Related Protocol Extension">: Token Revocation エンドポイント</t>
<t hangText="Change controller">: IETF</t>
<t hangText="Specification document(s)">[RFC7009]</t>
</list></t>
</section>
<section anchor="hint-reg" title="OAuth Token Type Hint Registry">
<!--
<t>This specification establishes the "OAuth Token Type Hints"
registry. Possible values of the parameter "token_type_hint" (see
Section 2.1) are registered with a Specification Required (<xref
target="RFC5226"/>) after a two-week review period on the
oauth-ext-review@ietf.org mailing list, on the advice of one or more Designated
Experts. However, to allow for the allocation of values prior to
publication, the Designated Expert(s) may approve registration once
they are satisfied that such a specification will be published.
Registration requests must be sent to the oauth-ext-review@ietf.org mailing list
for review and comment, with an appropriate subject (e.g., "Request
for parameter: example"). Within the review period, the Designated
Expert(s) will either approve or deny the registration request,
communicating this decision to the review list and IANA. Denials
should include an explanation and, if applicable, suggestions as to
how to make the request successful. IANA must only accept registry
updates from the Designated Expert(s) and should direct all requests
for registration to the review mailing list.</t>
-->
<t>この仕様は "OAuth Token Type Hints" レジストリを確立する。 パラメーター "token_type_hint" (Section 2.1 を参照) の値の候補は 1名以上の Designated Experts の勧告に従い、 oauth-ext-review@ietf.org のメーリングリストで2週間の審査を経て、 Specification Required <xref target="RFC5226"/> な状態で登録される。しかしながら、発行に先立ってそれらの値を用いることができるように、Designated Experts はそれらの値が公開できる状態になった時点で登録を許可することもありうる。登録要請は審査とコメントのために、適切な件名 (例: "Request for parameter: example") で oauth-ext-review@ietf.org メーリングリストに通知しなければならない。審査期間内に、 Designated Expert(s) は登録を承認または拒否し、レビューが行われるメーリングリストおよび IANA へその決定を告げる。要請が拒否された場合は、その理由が通知され、可能な場合は承認に向けた提案が行われるべきである。 IANA は Designated Expert(s) からのレジストリ更新のみを受け付けなければならず、すべての登録要請をレビューメーリングリストに送信しなければならない。</t>
<section title="Registration Template">
<t><list style="hanging">
<!--
<t hangText="Hint Value:">The additional value, which can be
used to indicate a certain token type to the authorization
server.</t>
-->
<t hangText="Hint Value:">追加する値、認可サーバーへ信頼のあるトークンタイプを指し示すために使用できる。</t>
<!--
<t hangText="Change controller:">For Standards Track RFCs,
state "IETF". For others, give the name of the responsible
party. Other details (e.g., postal address, email address,
and home page URI) may also be included.</t>
-->
<t hangText="Change controller:">Standards Track RFCs に従う際には、 "IETF" と記載する。それ以外の場合には、責任ある団体の名称を記載する。その他の詳細 (例えば, 郵便番号, メールアドレス, ホームページの URL) も記載してもよい。</t>
<!--
<t hangText="Specification document(s):">Reference to the
document(s) that specifies the type, preferably including a URI
that can be used to retrieve a copy of the document(s). An
indication of the relevant sections may also be included but
is not required.</t>
-->
<t hangText="Specification document(s):">タイプ仕様を記載したドキュメントへの参照を記載する。ドキュメントを取得することのできる URI が記載されていることがことが望ましい。明確な記載箇所への参照が含まれることが望ましいが必須ではない。</t>
</list></t>
</section>
<section title="Initial Registry Contents">
<!--
<t>The OAuth Token Type Hint registry's initial contents are as follows.</t>
-->
<t>OAuth Token Type Hint レジストリの初期の項目は以下の通りである。</t>
<texttable>
<ttcol align="center">Hint Value</ttcol>
<ttcol align="center">Change Controller</ttcol>
<ttcol align="center">Reference</ttcol>
<c>access_token</c>
<c>IETF</c>
<c>[RFC7009]</c>
<c>refresh_token</c>
<c>IETF</c>
<c>[RFC7009]</c>
</texttable>
<t>Table 1: OAuth Token Type Hints initial registry contents</t>
</section>
</section>
</section>
</section>
<section anchor="Security" title="Security Considerations">
<!--
<t>If the authorization server does not support access token revocation,
access tokens will not be immediately invalidated when the corresponding
refresh token is revoked. Deployments must take this into account when
conducting their security risk analysis.</t>
-->
<t>認可サーバーがアクセストークンの無効化をサポートしない場合、関連するリフレッシュトークンを無効化してもアクセストークンは直ちに無効化されないであろう。それらのセキュリティリスクの分析を行う際、実装はこのことを考慮しなければならない。</t>
<!--
<t>Cleaning up tokens using revocation contributes to overall security
and privacy since it reduces the likelihood for abuse of abandoned
tokens. This specification in general does not intend to provide
countermeasures against token theft and abuse. For a discussion of
respective threats and countermeasures, consult the security
considerations given in Section 10 of the OAuth core specification <xref
target="RFC6749"/> and the OAuth threat model document <xref
target="RFC6819"/>.</t>
-->
<t>トークンを適切に無効化すると、不要になったトークンの乱用の可能性を低減させ、全般的なセキュリティとプライバシーの向上につながる。一般的にこの仕様は、トークンの窃取と乱用に対する対策を提供するわけではない。それぞれの脅威と対策の議論について、 OAuth core specification <xref target="RFC6749"/> の Section 10 と OAuth threat model document <xref target="RFC6819"/> で与えられているセキュリティ考慮事項を参照すること。</t>
<!--
<t>Malicious clients could attempt to use the new endpoint to launch
denial-of-service attacks on the authorization server. Appropriate
countermeasures, which should be in place for the token endpoint as
well, MUST be applied to the revocation endpoint (see <xref
target="RFC6819"/>, Section 4.4.1.11). Specifically, invalid token type
hints may misguide the authorization server and cause additional
database lookups. Care MUST be taken to prevent malicious clients from
exploiting this feature to launch denial-of-service attacks.</t>
-->
<t>悪意のあるクライアントは認可サーバー上で DoS 攻撃を目的としてこの新しいエンドポイントを使用する可能性がある。DoS 攻撃に対する適切な対策 (これはトークンエンドポイントにも適用されるべき (SHOULD) であり) が、無効化エンドポイントに適用されなければいけない (MUST) (<xref target="RFC6819"/> の Section 4.4.1.11 を参照) 。特に、無効なトークンタイプのヒントは認可サーバーを誤認させ、余計なデータベース検索を引き起こす。悪意のあるクライアントが DoS 攻撃を起動するためにこの機能を使用することを防がなければならない。(MUST)</t>
<!--
<t>A malicious client may attempt to guess valid tokens on this endpoint
by making revocation requests against potential token strings. According
to this specification, a client's request must contain a valid
client_id, in the case of a public client, or valid client credentials,
in the case of a confidential client. The token being revoked must also
belong to the requesting client. If an attacker is able to successfully
guess a public client's client_id and one of their tokens, or a private
client's credentials and one of their tokens, they could do much worse
damage by using the token elsewhere than by revoking it. If they chose
to revoke the token, the legitimate client will lose its authorization
grant and will need to prompt the user again. No further damage is done
and the guessed token is now worthless.</t>
-->
<t>悪意のあるクライアントは任意のトークン文字列に対して無効化を要求することによって、このエンドポイントで有効なトークンを推測しようとするかもしれない。この仕様によると、パブリッククライアントの場合、クライアントは有効な client_id を、あるいはコンフィデンシャルクライアントの場合、有効なクライアントクレデンシャルを含まなければいけない。また、無効化されているトークンは要求しているクライアントに属していなければならない。攻撃者が公開されているクライアントの client_id とそれらのトークンのひとつ、あるいは非公開のクライアントクレデンシャルとそれらのトークンのひとつを正常に推測できる場合、トークンを無効化することより他の場所でトークンを使用することによってはるかに悪い損害を与える可能性がある。彼らがトークンを無効化する選択をする場合、正当なクライアントはその認可を失い、ユーザー認証を再び必要とするだろう。それ以上の損害は行われず、推測されたトークンはその時点で価値はない。</t>
<!--
<t>Since the revocation endpoint is handling security credentials,
clients need to obtain its location from a trustworthy source only.
Otherwise, an attacker could capture valid security tokens by utilizing
a counterfeit revocation endpoint. Moreover, in order to detect
counterfeit revocation endpoints, clients MUST authenticate the
revocation endpoint (certificate validation, etc.).</t>
-->
<t>無効化エンドポイントはセキュリティクレデンシャルを取り扱っているため、クライアントは信頼できるリソースのみから位置を取得する必要がある。そうしなければ、攻撃者が偽の無効化エンドポイントを利用することによって有効なセキュリティトークンを読み取れてしまう。さらに、偽の無効化エンドポイントを見つけるために、クライアントはその無効化エンドポイントを認証しなければならない (証明書の検証など) 。</t>
</section>
<section anchor="Acknowledgements" title="Acknowledgements">
<t>We would like to thank Peter Mauritius, Amanda Anganes, Mark Wubben,
Hannes Tschofenig, Michiel de Jong, Doug Foiles, Paul Madsen, George
Fletcher, Sebastian Ebling, Christian Stübner, Brian Campbell, Igor
Faynberg, Lukas Rosenstock, and Justin Richer for their valuable
feedback.</t>
</section>
<section title="翻訳者" anchor="Translator">
<t>
本仕様の翻訳は, <xref target='oidfj'>OpenIDファウンデーションジャパン</xref> <xref target='oidfj-trans'>翻訳・教育ワーキンググループ</xref>を主体として, 有志のメンバーによって行われました.
質問や修正依頼などについては, <xref target='oidfj-github'>Githubレポジトリー</xref> にご連絡ください.
</t>
<t>
<list style='symbols'>
<t>
Masaru Kurahayashi (Yahoo! Japan)
</t>
<t>
Nov Matake (YAuth.jp)
</t>
</list>
</t>
</section>
</middle>
<!-- *****BACK MATTER ***** -->
<back>
<references title="Normative References">
<?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml' ?>
<?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml' ?>
<?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.5246.xml' ?>
<?rfc include='http://xml.resource.org/public/rfc/bibxml/reference.RFC.6749.xml' ?>
</references>
<references title="Informative References">
<?rfc include='http://xml.resource.org/public/rfc/bibxml4/reference.W3C.WD-cors-20120403.xml' ?>
<reference anchor="jsonp"
target="http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp">
<front>
<title>Remote JSON - JSONP</title>
<author fullname="Bob Ippolito" initials="B." surname="Ippolito">
<organization/>
</author>
<date day="5" month="December" year="2005"/>
</front>
<format target="http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp"
type="HTML"/>
</reference>
<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6819.xml"?>
</references>
<references title='翻訳プロジェクト'>
<reference anchor="oidfj">
<front>
<title>OpenIDファウンデーションジャパン</title>
<author>
<organization>OpenIDファウンデーションジャパン</organization>
</author>
</front>
<format type='html' target='http://www.openid.or.jp/' />
</reference>
<reference anchor="oidfj-trans">
<front>
<title>翻訳・教育ワーキンググループ</title>
<author>
<organization>OpenIDファウンデーションジャパン</organization>
</author>
</front>
<format type='html' target='http://openid-foundation-japan.github.com/' />
</reference>
<reference anchor="oidfj-github">
<front>
<title>Githubレポジトリー</title>
<author>
<organization>OpenIDファウンデーションジャパン</organization>
</author>
</front>
<format type='html' target='https://github.com/openid-foundation-japan' />
</reference>
</references>
</back>
</rfc>