[13] WSSE は HTTP の認証の仕組みの一種です。 2000年代の中頃、いわゆる Web 2.0 時代に、 Web API の認証方式として広く用いられました。その後の OAuth の標準化と普及により、 WSSE は使われなくなりました。
[32] OAuth の普及により、 WSSE が新たに使われることはなくなりました。 既存の Web API も徐々に廃止されています。
[33] WSSE でのみ提供される Web API もほとんど残っていないと思われるので、 クライアントライブラリーも WSSE に対応する必要は無さそうです。
[12] WSSE の解説の多くは仕様あるいは詳細として WS-Security 関連の仕様や解説記事を参照しているが、 HTTP の認証としての WSSE を本当に説明しているものは少ない。 WSSE は歴史的に WS-Security の認証方式を流用して Web API に適用したものであるが、実態として WS-* / SOAP とは関係ない。
[10] おそらく >>8 が唯一仕様と呼べるレベルのもので、 >>9 がおそらく最初の実装リファレンス。 >>9 や >>14 の方が少し緩い。
[11] >>3 によれば >>8、>>9 の digest の計算方法は後に誤りと考えられるようになったが、 >>1 にあるように、未だに両方の実装が存在している。
[16] Atom とセットで使われてきたけど IETF の AtomPub は既存の HTTP の認証を使えばいいということになっている。
[19] WSSE では利用者名と合言葉の組を使いますが、 クライアントも鯖も、この組を平文 (に復号可能な形) で保持しておく必要があります。
[20] 一般に利用者が指定した生のパスワードをサーバーで保存するのは悪手と考えられています。 利用者が指定した生のパスワードを保持することを防ぐため、 一方向ハッシュ関数を適用した結果や、 鯖側で生成した合言葉とは関係のないトークンを合言葉として使う実装もあります。
[35] challenge は HTTP認証の仕組みに則っていますが、 HTTP要求は独自の HTTPヘッダーだけを使っており、 HTTP認証の仕組みから外れています。
[36]
そのため HTTPキャッシュとの関係を考慮しHTTP要求と HTTP応答に適切な
Cache-Control:
ヘッダーや Vary:
ヘッダーを指定する必要があります。
[26] どうやら credentials を Authorization:
ではなく独自のヘッダーで送っているのは、 CGI が Authorization:
ヘッダーを CGIスクリプトに提供していなかったため >>25 のようです。
[2] LWP::Authen::Wsse を使うとき,なぜ use LWP::Authen::Wsse しなくて良いのか - 理系学生日記 ( 版) http://d.hatena.ne.jp/kiririmode/20081004/p1
[5] 各サービスにおいてWSSE認証を厳密に確認するようになりました - Hatena Developer Blog ( ( 版)) http://developer.hatenastaff.com/entry/20110121/1295588374
[6] はてなサービスにおけるWSSE認証 - Hatena Developer Center ( ( 版)) http://developer.hatena.ne.jp/ja/documents/auth/apis/wsse
[4] Section 11.1. Data Feeds ( 版) http://82.157.70.109/mirrorbooks/buildingwebsites/0596102356/web2apps-CHP-11-SECT-1.html
Authorization: WSSE profile="cal" X-WSSE: UsernameToken Username="cal", Created="2005-11-14T18:40:04-0800", Nonce="bf59559401b2d9e14964823a37836a76", PasswordDigest="WgUU6xmxOsGYqhNun9gJZ//C9ew="
Authorization: WSSE profile="cal"
[17] はてな各種APIでのパスワードによるWSSE認証を終了しました(開発者向け) - Hatena Developer Blog ( 版) http://developer.hatenastaff.com/entry/2014/03/05/185138
[18] WSSEとHTTPダイジェスト認証 | Livingdeadの日記 | スラッシュドット・ジャパン ( 版) http://slashdot.jp/~Livingdead/journal/488927/
[21] 2.5.個人認証について|アメばた会議API ( 版) http://ameblo.jp/amebabbs-api/entry-10097322688.html
[22] WSSE認証とパスワードに関する疑問 - F.Ko-Jiの「一秒後は未来」 ( 版) http://blog.fkoji.com/2009/01261051.html
[23] 【続報】mixi Connect WSSE認証の終了について << mixi Developer Center (ミクシィ デベロッパーセンター) ( 版) http://developer.mixi.co.jp/news/news_connect/011558.html
[27] mixi Connect WSSE認証の終了について << mixi Developer Center (ミクシィ デベロッパーセンター) ( 版) http://developer.mixi.co.jp/news/news_connect/011125.html
[31] >>30 でも冒頭で SOAP 云々と言っていますが、以後まったく SOAP と関係ない説明が続いていますw
[34] WSSE Authentication | Adobe Developer Connection ( ()) https://marketing.adobe.com/developer/ja/documentation/authentication-1/wsse-authentication-2