-
Notifications
You must be signed in to change notification settings - Fork 4
/
787.txt
96 lines (76 loc) · 4.28 KB
/
787.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
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
[16] [DFN[[[OAuth 2.0]]]] は、 [[Webアプリケーション]]の[[認証]]に関する仕様です。
[17] [[OAuth 1.0]] を[[廃止]]し置き換える後継版ですが、 [[OAuth 1.0]]
との互換性はまったくありません。そのため [[OAuth 1.0]] を実装していた[[鯖]]は現在も引き続き
[[OAuth 1.0]] を使っていることが多いですし、[[クライアント]]は[[鯖]]に応じて
[[OAuth 1.0]] と [[OAuth 2.0]] を使い分ける必要があります。
* 仕様書
[REFS[
- [8] [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>
-- [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-1.1>
-- [13] [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.8>
]REFS]
* プロトコル
[10] [[OAuth 2.0]] では当事者が次の通り名付けられています。
[FIG(short list)[
- [[鯖]]
-- [[資源鯖]]
-- [[認可鯖]]
--- [[認可エンドポイント]]
- [[クライアント]]
- [[資源所有者]]
]FIG]
[11] 次のような概念が存在します。
[FIG(short list)[
- [[クライアント登録]]
- [[クライアント認証]]
- [[認可承諾]]
-- [[認可符号]]
-- [[暗示的承諾]]
-- [[資源所有者合言葉credentials]]
-- [[クライアントcredentials]]
- [[アクセストークン]]
- [[更新トークン]]
]FIG]
[12] [[OAuth 2.0]] では[[認可鯖]]から[[アクセストークン]]を得るための方法が幾つもありますが、
いずれにせよ最終的には[[クライアント]]が[[アクセストークン]]を得ることになりますから、
[[資源鯖]]は多数の[[認証]]方式に対応せずとも、[[アクセストークン]]にさえ対応すれば良いこととなります。
[19] [[HTTP]] などの次の機能を使います。
[FIG(short list)[
- [[基本認証]]
- [CODE(MIME)@en[[[application/x-www-form-urlencoded]]]]
]FIG]
[20] [[URL query]] では次の[[引数]]が使われます。
[FIG(short list)[
- [CODE(URI)@en[[[response_type]]]]
]FIG]
[18] [[payload body]] では次の[[引数]]が使われます。
[FIG(short list)[
- [CODE(URI)@en[[[client_id]]]]
- [CODE(URI)@en[[[client_secret]]]]
]FIG]
[14] [[OAuth 2.0]] には沢山のオプション機能や未定義としている部分があり、
[[相互運用性]]を妨げる虞があることを [[RFC]] も認めています [SRC[>>13]]。
;; [15] [[RFC]] は将来の[[プロファイル]]や拡張により改善されることを期待する [SRC[>>13]]
としていますが、そのような態度で状況が良くなった例などあるのでしょうかね...
* 歴史
[1] [CITE@en[OAuth 2.0 — OAuth]]
([TIME[2010-12-10 09:38:02 +09:00]] 版)
<http://oauth.net/2/>
[2] [CITE[単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる « .Nat Zone]]
([TIME[2012-02-03 12:55:56 +09:00]] 版)
<http://www.sakimura.org/2012/02/1487/>
[3] [CITE[OAuthにおける「クライアントサイドに対する認可」なのか「サーバーサイドに対する認可」なのか明確でない問題 - 金利0無利息キャッシング – キャッシングできます - subtech]]
( ([TIME[2012-02-19 10:46:54 +09:00]] 版))
<http://subtech.g.hatena.ne.jp/mala/20120214/1329199851>
[4] [CITE@en[RFC 6819 - OAuth 2.0 Threat Model and Security Considerations]]
( ([TIME[2013-06-28 00:10:34 +09:00]] 版))
<http://tools.ietf.org/html/rfc6819>
[5] [CITE@en[draft-ietf-oauth-v2-http-mac-05 - OAuth 2.0 Message Authentication Code (MAC) Tokens]]
( ([TIME[2014-10-16 11:57:15 +09:00]] 版))
<http://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05>
[6] [CITE@en[draft-yusef-sipcore-sip-oauth-01 - The Session Initiation Protocol (SIP) OAuth]]
( ([TIME[2014-10-15 09:03:21 +09:00]] 版))
<https://tools.ietf.org/html/draft-yusef-sipcore-sip-oauth-01>
[7] [CITE@en[draft-ietf-kitten-sasl-oauth-16 - A set of SASL Mechanisms for OAuth]]
( ([TIME[2014-10-16 12:17:28 +09:00]] 版))
<https://tools.ietf.org/html/draft-ietf-kitten-sasl-oauth-16>