クッキーでセッション管理しようとするといつも悩まされるクッキー問題。 コンパクト・ポリシー (コンパクトなプライバシーポリシー) をHTTPヘッダに埋め込むと多少制御ができるらしい。
ファーストパーティと共通のドメイン名を持ち、ディレクトリが異なるだけなら、同じくファーストパーティとして認識される。 また、ホスト名が異なるだけのドメイン名(例えば、「www.atmarkit.co.jp」と「ad.atmarkit.co.jp」など)も同一とみなされる。 ただし、セキュリティで保護されたHTTPSプロトコルを用いるページ内に、HTTPSを使用しないコンテンツが含まれた場合には、 上記ドメイン名の規則を満たしていても、サードパーティとして識別される。
このへん微妙。HTTPSで認証た結果をクッキーに保存しつつ、暗号化でないサイトに戻すには、同一ドメイン名でないとダメ。
P3P ヘッダにCP="UNI CUR OUR"を指定すれば受け入れ可能になる。
「IDの認証結果をクッキーで引き回してます」みたいなところはこれで正しいポリシーのはず。
しかし所詮自己申告でX509証明書みたいに保証する仕掛けがなさげなので、 とりあえず受け入れ可能なコンパクトポリシー設定しときゃいいや、みたいになりそうだ。
うちのIPFilterのステート保持時間の調整は現在以下の通り。
net.inet.ipf.fr_tcpidletimeout=14400 net.inet.ipf.fr_tcpclosewait=120 net.inet.ipf.fr_tcplastack=120 net.inet.ipf.fr_tcptimeout=240 net.inet.ipf.fr_tcpclosed=10 net.inet.ipf.fr_tcphalfclosed=120 net.inet.ipf.fr_udptimeout=90 net.inet.ipf.fr_icmptimeout=35
net.inet.ipf.fr_tcphalfclosedが一番効く気がする。
片方閉じたソケットで1分以上通信し続けることを期待するアプリケーションなんて存在するのか?
と思ったのでデフォルトの14400から120に縮小。
mknmzの問題であろうことが見当ついただけに、左の索引のnamazu以下のセクションがノーマークだった…
mknmz時に--indexing-lang=ja_jp.EUCを指定すればOK。Charsetが指定されているHTML文書に対しては自動認識して欲しかったナリ。
コンピュータアカウントの作成をして /etc/krb5.keytab を作らなくてもActiveDirectory認証してる?
FreeBSD-5.1R(Heimdal)で実験してみた。man krb5.conf すると dns_lookup_kdc っていかにもActiveDirectoryで利用している
DNSのSRV RR(RFC2782)
の参照っぽいので、realmsのところにKDCの指定をしないで dns_lookup_kdc = true 勝負。
[libdefaults]
default_realm = HOGE.G.MIMORI.ORG
; for Heimdal
default_etypes = des-cbc-crc
default_etypes_des = des-cbc-crc
; for MIT kerberos
; default_tgs_enctypes = des-cbc-crc
; default_tkt_enctypes = des-cbc-crc
dns_lookup_kdc = true
dns_lookup_realm = false
kdc_timesync = false
ticket_lifetime = 43200
renew_lifetime = 86400
forwardable = true
proxiable = true
[domain_realm]
hoge.mimori.org = HOGE.G.MIMORI.ORG
[realms]
[kdc]
[kadmin]
default_keys = v5 v4
[logging]
default = SYSLOG:INFO:AUTH
[domain_realm] のところは、hostnameでひけるドメイン(*.mimori.org)を無理やりActiveDirectoryのrealm(HOGE.G.MIMORI.ORG)にねじ曲げる設定。
この時点でkinit,klist,kdestroyしてみるとうまくいっているようだ。
更に /etc/pam.d/telnetd を書き換えてtelnetログインの認証をKerberos経由にしてみる。
# auth auth required pam_nologin.so no_warn auth sufficient pam_opie.so no_warn no_fake_prompts auth requisite pam_opieaccess.so no_warn allow_local auth sufficient pam_krb5.so no_warn try_first_pass #auth sufficient pam_ssh.so no_warn try_first_pass auth required pam_unix.so no_warn try_first_pass # account account required pam_krb5.so account required pam_login_access.so account required pam_unix.so # session #session optional pam_ssh.so session required pam_lastlog.so no_fail # password password sufficient pam_krb5.so no_warn try_first_pass password required pam_unix.so no_warn try_first_pass
…さくっとログインできた。vipwで /etc/master.passwd のパスワードのところを*でつぶしてから試しても大丈夫。 昔の苦労は何だったんだ〜。
しかもWindowsのActiveDirectoryのドメイン下でhostnameをつけることにすれば、 /etc/krb5.conf は汎用で使えるぞ。すんごい楽ちん。 今回 krb5.keytab なしでKerberos認証できるようになったということは Apache とかでの使い勝手もかなり上昇。 。 mod_auth_kerbの設定を久々にしてみるかしら。
ちなみにLDAP経由でActiveDirectoryに認証させるのは楽にならなそうな雰囲気。
この前交換したばかりの開発用マシンのHDDでセクターエラー発生。 やはりそこらに転がってるHDDを使うのは良くなかったか…