azurewebsites.netにcookieがセットできない


Public Suffix ListとAzure

今日の出来事

とあるweb appsがサブドメイン(abcdefg.example.com)、親Webサイトが主のドメイン(example.com)としたかった。
現状、本物のドメインは手元になかったので、hosts書き換えでとりあえず動かす。
web appsは本物のドメインを持っていないとドメイン名変更ができないので、親Webサイトのほうをhostsで設定。
web apps(abcdefg.azurewebsites.net)がサブドメインなら、親Webサイトのほうはazurewebsites.netとなるようにしたらよいなっと。
あれ、親WebサイトのCookieがうまくセットできないぞ。

問題

👆この設定では、親Webサイトに対するSet-Cookieで、"Domain=.azurewebsites.net"と書いてあると、cookieが設定が無視される。。

理由

Cookieも意外と難しいのねと思って、頑張ってプログラムとにらめっこしていても、分からず。
それなら、「azurewebsites.net cookie」でググったらstack overflowがヒットしました。

http://stackoverflow.com/questions/24310264/browser-ignores-cookie-if-domain-is-set
http://stackoverflow.com/questions/23024351/chrome34-ignores-cookies-with-domain-cloudapp-net/

public suffix listは知りませんでしたが、.jpとか.netとかにcookieセットできないことを、指し示すために一覧化しているようです。
https://publicsuffix.org/list/public_suffix_list.dat

cookieがセットできないもののうち、azureのドメイン名も含まれていました。
- azurewebsites.net
- cloudapp.net
- azure-mobile.net

なるほどね。。知らなかった。。

参考

public suffix list

https://publicsuffix.org/
https://publicsuffix.org/list/ ← ExampleにCookie設定時の解説がある