話題:ベーシック認証のトラブル
Android 4.x以降では発生する頻度が下がったが、Android 2.x時代に頻発したトラブル。
基本認証で保護したページを、他の端末からは閲覧できるのに、
Android 2.xの端末からだけは閲覧できない
何回id/pwを入力しても、幾度でも尋ね直してくる無間地獄。
#解決方法
##前提
URI | ユーザ名 | パスワード |
---|---|---|
https://foo.net | user | password |
の場合 | ||
##解決方法 |
https://user:password@foo.net
これだけ。
もしSSL未対応なら
http://user:password@foo.net
でも全然OK。
いったんこのURIでアクセスした後は既に認証が通っている状態になるらしく
https://foo.net
http://foo.net
とアドレス欄の内容を修正してから再アクセスしてもid/pwを尋ね直されることは、もう、ない。
#注意点・リスク
- idとpwの文字列が(リクエストURIとして)インターネット上を流れていく、ということの危険性を理解し、割り切ったうえで使用せねばなりません。
- ひとたび
https://user:password@foo.net
でアクセスすると、サイト内の遷移リンク、たとえば<a href="directory">link</a>
を押下しても、https://user:password@foo.net/directory/
という具合にホスト名の前にuser:password
がズ~ッとついて来続けます(外れません)。- つまり、その試験中のスクリーンショットを開発チーム内で共有したりすると、ついでにid/pwを喧伝しているようなことになります。危険。
*あとがき
ベーシック認証をURLに直接書く
を参照にしました。というかこのテクニック自体は他の場面で以前から利用していたけれど、 Android 2.xでのトラブルに効く、と教えてくれたのは仕事場の同僚のおかげです。感謝。