/
454.txt
121 lines (92 loc) · 6.3 KB
/
454.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
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
[13] [DFN[[[WSSE]]]] は [[HTTP]] の[[認証]]の仕組みの一種であり、2000年台の中頃、いわゆる [[Web 2.0]]
の時代に [[Web API]] の認証方式として広く用いられたものである。現在では [[OAuth]]
が一般的になっており、 [[WSSE]] は滅多に使われなくなった。
* プロトコル
[12] [[WSSE]] の解説の多くは仕様あるいは詳細として [[WS-Security]] 関連の仕様や解説記事を参照しているが、
[[HTTP]] の認証としての [[WSSE]] を本当に説明しているものは少ない。 [[WSSE]] は [[WS-Security]]
の認証方式を流用して [[Web API]] に適用したものであるが、実態として [[WS-*]] / [[SOAP]]
とは関係ない。
[REFS[
- [14] [CITE@en[Rewriting Microsoft web services '''['''dive into mark''']''']] ([TIME[2013-07-18 06:44:04 +09:00]] 版) <http://web.archive.org/web/20110411003501/http://diveintomark.org/archives/2003/09/08/msweb-rest>
-[8] [CITE[XML.com]]
( ([[Mark Pilgrim]] 著, [TIME[2013-07-18 05:53:18 +09:00]] 版))
<http://www.xml.com/pub/a/2003/12/17/dive.html>
-[9] [CITE[TypePad Atom API]]
( ([TIME[2013-07-18 05:57:35 +09:00]] 版))
<http://web.archive.org/web/20050810011757/http://www.sixapart.com/pronet/docs/typepad_atom_api>
]REFS]
[10] おそらく >>8 が唯一[[仕様]]と呼べるレベルのもので、 >>9 がおそらく最初の実装リファレンス。
>>9 や >>14 の方が少し緩い。
[REFS[
-[3] [CITE[Atom APIのWSSE認証について - こせきの技術日記 - 技術日記]]
( ([TIME[2013-07-18 05:12:13 +09:00]] 版))
<http://tech.g.hatena.ne.jp/koseki/20050520/AtomWSSE>
- [1] [CITE[Windows Live Writer の WSSE 認証 - 大西日記 - はてなダイアリー]] ([TIME[2009-03-31 09:29:58 +09:00]] 版) <http://d.hatena.ne.jp/onishi/20080831/1220159168>
]REFS]
[11] >>3 によれば >>8、>>9 の digest の計算方法は後に誤りと考えられるようになったが、
>>1 にあるように、未だに両方の実装が存在している。
[REFS[
- [15] [CITE[DifferentlyAbledClients - Atom Wiki]] ([TIME[2012-02-14 22:15:19 +09:00]] 版) <http://www.intertwingly.net/wiki/pie/DifferentlyAbledClients>
]REFS]
[16] [[Atom]] とセットで使われてきたけど [[IETF]] の [[AtomPub]] は既存の [[HTTP]] の認証を使えばいいということになっている。
* セキュリティー
[19] [[WSSE]] では[[利用者名]]と[[合言葉]]の組を使いますが、
[[クライアント]]も[[鯖]]も、この組を[[平文]] (に[[復号]]可能な形)
で保持しておく必要があります。
;; [20] [[利用者]]が指定した生の[[合言葉]]を保持することを防ぐため、
[[一方向ハッシュ関数]]を適用した結果や、
[[鯖]]側で生成した[[合言葉]]とは関係のない[[トークン]]を[[合言葉]]として使う実装もあります。
* メモ
[26] どうやら [[credentials]] を [CODE(HTTP)@en[[[Authorization:]]]]
ではなく独自の[[ヘッダー]]で送っているのは、 [[CGI]] が [CODE(HTTP)@en[[[Authorization:]]]]
[[ヘッダー]]を [[CGIスクリプト]]に提供していなかったため [SRC[>>25]] のようです。
[REFS[
- [25] [CITE[New AtomAPI Implementation Release | BitWorking | Joe Gregorio]] ([TIME[2015-02-21 01:29:03 +09:00]] 版) <http://web.archive.org/web/20101213023745/http://bitworking.org/news/New_AtomAPI_Implementation_Release2>
]REFS]
[2] [CITE[LWP::Authen::Wsse を使うとき,なぜ use LWP::Authen::Wsse しなくて良いのか - 理系学生日記]]
([TIME[2010-12-06 17:15:35 +09:00]] 版)
<http://d.hatena.ne.jp/kiririmode/20081004/p1>
[5] [CITE@en[各サービスにおいてWSSE認証を厳密に確認するようになりました - Hatena Developer Blog]]
( ([TIME[2013-07-18 05:18:02 +09:00]] 版))
<http://developer.hatenastaff.com/entry/20110121/1295588374>
[6] [CITE[はてなサービスにおけるWSSE認証 - Hatena Developer Center]]
( ([TIME[2013-07-18 05:18:19 +09:00]] 版))
<http://developer.hatena.ne.jp/ja/documents/auth/apis/wsse>
[4] [CITE[Section 11.1. Data Feeds]] ([TIME[2007-06-25 13:34:05 +09:00]] 版) <http://82.157.70.109/mirrorbooks/buildingwebsites/0596102356/web2apps-CHP-11-SECT-1.html>
[PRE(HTTP code)[
Authorization: WSSE profile="cal"
X-WSSE: UsernameToken Username="cal",
Created="2005-11-14T18:40:04-0800",
Nonce="bf59559401b2d9e14964823a37836a76",
PasswordDigest="WgUU6xmxOsGYqhNun9gJZ//C9ew="
]PRE]
[7]
[PRE(HTTP code)[
Authorization: WSSE profile="cal"
]PRE]
<http://books.google.co.jp/books?id=Cd32Nk6TSoUC&pg=PA283&lpg=PA283&dq=%22authorization:+wsse%22&source=bl&ots=IyXc_uvgzW&sig=4hq1wDbUyyNJgqvSETzJwi1Rv-U&hl=ja&sa=X&ei=7HvnUbLFF8eGkgXxrIAo&ved=0CEQQ6AEwAzhG#v=onepage&q=%22authorization%3A%20wsse%22&f=false>
[17] [CITE@en[はてな各種APIでのパスワードによるWSSE認証を終了しました(開発者向け) - Hatena Developer Blog]]
([TIME[2015-02-21 01:10:49 +09:00]] 版)
<http://developer.hatenastaff.com/entry/2014/03/05/185138>
[18] [CITE@ja[WSSEとHTTPダイジェスト認証 | Livingdeadの日記 | スラッシュドット・ジャパン]]
([TIME[2015-02-21 01:12:07 +09:00]] 版)
<http://slashdot.jp/~Livingdead/journal/488927/>
[21] [CITE@ja[2.5.個人認証について|アメばた会議API]]
([TIME[2015-02-21 01:18:23 +09:00]] 版)
<http://ameblo.jp/amebabbs-api/entry-10097322688.html>
[22] [CITE@ja[WSSE認証とパスワードに関する疑問 - F.Ko-Jiの「一秒後は未来」]]
([TIME[2015-02-21 01:19:41 +09:00]] 版)
<http://blog.fkoji.com/2009/01261051.html>
[23] [CITE@ja[【続報】mixi Connect WSSE認証の終了について << mixi Developer Center (ミクシィ デベロッパーセンター)]]
([TIME[2015-01-21 14:05:14 +09:00]] 版)
<http://developer.mixi.co.jp/news/news_connect/011558.html>
[FIG(quote)[
[FIGCAPTION[
[24] [CITE@ja[AtomPub API について - livedoor Blog ヘルプセンター]]
([TIME[2015-02-21 01:22:24 +09:00]] 版)
<http://help.blogpark.jp/archives/52372407.html>
]FIGCAPTION]
> WSSE 認証は Atom Authentication で言及されている認証方法です。
> ユーザ名: ライブドアID
> パスワード: ブログ設定に表示されている、AtomPub用パスワード (ライブドアIDのパスワードではありません)
]FIG]