11章 システムの運用管理
12. Cookie に Secure 属性をつける
WebRelease をパブリックなネットワークを経由して利用する場合は TLS 環境下で利用することが必須です。そうしないとログイン時の id / password は平文でネット上を流れることになりアカウント情報を摂取される可能性があります。また、ログイン後も WebRelease 利用者の URL や Cookie が摂取される可能性があり、セッションをジャックされてしまう可能性があります。こういった問題を避けるため、パブリックなネットワークを経由して利用する場合には必ず TLS 環境下でご用意ください。
さて、WebRelease はイントラネットや安全な VPN 環境など、閉鎖されたネットワークでの非 TLS 環境での利用にも対応するため、デフォルトでは cookie には secure 属性はつけられていません。ですが、イントラネットと言えども摂取がないとは限りません。WebRelease を安全にご利用いただくためには、TLS 環境をご用意いただいた上で、さらに、cookie に secure 属性を付けていただくと良いでしょう。
Secure 属性をつけるためには以下の設定が必要です。設定作業は WebRelease サーバ上で行う必要があります。作業は WebRelease サーバに root 権限を行使できるアカウントでログインして行います。この設定は管理画面からは行えません。
1. ユーザ wr2 に su します
ユーザ wr2 のホームディレクトリ 直下にディレクトリ WebReleaseOptions を作成します
wr2% cd ~wr2
wr2% mkdir -p WebReleaseOptions
wr2% chmod 755 WebReleaseOptions
WebReleaseOptions の下に SessionCookieSecure という空ファイルを作成します
wr2% touch WebReleaseOptions/SessionCookieSecure
wr2% chmod 644 WebReleaseOptions/SessionCookieSecure
root に戻り WebRelease を再起動します。設定の有効化には再起動が必要です。
sr2% exit
Linux の場合
# systemctl restart webrelease2.service
macOS の場合
# launchctl unload /Library/LaunchDaemons/jp.co.frameworks.WebRelease2.plist
# launchctl load /Library/LaunchDaemons/jp.co.frameworks.WebRelease2.plist
この設定は必須ではありません。TLS 環境でご利用の場合には設定していただくことをお勧めしますが、設定するかどうかは独自にご判断いただいて構いません。
この設定で WebRelease が使用するすべての cookie に secure 属性がつくわけではありません。セキュリティ上必要と考えられる cookie にのみ secure 属性が付くようになります。
この設定を行うと WebRelease には https プロトコルでなければログインできなくなります。TLS 環境の構築後に設定すると良いでしょう。
設定を解除する場合には ~wr2/WebReleaseOptions/SessionCookieSecure というファイルを削除してから WebRelease を再起動してください。なお、設定を解除した後で WebRelease を利用する場合、利用者のブラウザを再起動する必要があります。
この設定は WebRelease を DVD メディアから再インストールしたり、管理画面からバージョンアップしても維持されます。再設定の必要はありません。