CookBook

Web サーバで Cookie に SameSite=None; Secure 属性を追加する方法

投稿日:2022-02-14 更新日:

ブラウザの仕様変更により、クロスドメインアクセスにおける Cookie の扱いに変更がありました。

Google Chrome では バージョン 80 以降、SameSite 属性が宣言されていない Cookie は SameSite=Lax として扱われるようになりました。

※Google Chrome の仕様変更については、以下 Google Developers をご参照ください。

他のブラウザも同様の仕様に変更されていく可能性があります。

この仕様変更でクロスドメインより遷移する場合、遷移先サイト(intra-mart Accel Platform)で作成した Cookie が遷移先サイトに渡されない事象が発生します。
これにより、クロスドメインからのアクセスでは、セッションが維持できなくなります。

この事象を回避するためには intra-mart Accel Platform で作成した Cookie の属性に SameSite=None; Secure を付与する必要があります。

(注意)
Cookie の属性に SameSite=None; Secure を付与する場合、intra-mart AccelPlatform へのアクセスは https である必要があります。

intra-mart Accel Platform で Session Cookie に SameSite 属性 を付与することは、Resin 4.0.64 以降であれば可能です。(Resin のセッションを利用する場合)

ただし、2022/02/09(現在) 、最新バージョン(2021 Winter)であっても、「セッション管理モジュール」を利用する場合には、セッション管理モジュールの設定で Session Cookie に SameSite 属性 を付与することはできません。

セッション管理モジュールを利用している場合には、Web サーバで SameSite 属性を付与する必要があります。そこで、本記事では Web サーバで Cookie に SameSite 属性を付与する方法について解説します。

Apache の場合

httpd.conf に以下の設定を追加します。
set-cookie される Cookie に SameSite 属性 が存在しない場合に、SameSite=None; Secure を付与します。

# Secure Cookie
Header edit Set-Cookie "^(?!.*(\s+|;)(?i)SameSite=)(.*)" "$0; SameSite=None; Secure"


SetEnv proxy-nokeepalive 1
・・・・


Web サーバを再起動してください。

IIS の場合

web.config に以下のコードを追加します。
set-cookie される Cookie に SameSite 属性 が存在しない場合に、SameSite=None; Secure を付与します。

<rewrite>
・・・・
<outboundRules>
・・・・
<rule name="AddSameSiteCookie">
<match serverVariable="RESPONSE_SET_COOKIE" pattern="^(?!.*(\s+|;)SameSite=)(.*)" ignoreCase="true" />
<action type="Rewrite" value="{R:0}; SameSite=None; Secure" />
</rule>
・・・・
</outboundRules>
</rewrite>

Web サーバを再起動してください。

-CookBook

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

IM-BloomMaker Modifier の使い方

このCookBookでは、2020 Summer から利用可能になった環境変数($env)に含まれる「modifier」について紹介しています。 modifier は、同じく 2020 Summer …

no image

intra-martのアプリケーションをセットアップする

このCookBookでは、intra-mart Accel Collaborationをセットアップしてアプリケーションを使える状態にする方法を紹介します。レシピの最後では、実際にintra-mart …

no image

ViewCreatorのヘッダやフッタに配置するリンクのURLに計算結果を埋め込む方法

本記事では、ViewCreatorのヘッダやフッタにリンクを埋め込む際に、関数を利用する方法をご紹介します。 この方法を利用すると、パラメータ文字列に「今日日付」を受け渡すといったことが実現できます。 …

no image

ワークスペースとファイルライブラリ機能との連携

このCookBookでは、「intra-mart Accel Collaboration」の機能の1つであるワークスペースと「intra-mart Accel Collaboration」のファイルラ …

no image

IM-BloomMaker IE で画面を開くと「Internet Explorer は対応していません。」と表示するアプリケーションの作成方法

この CookBook では、 IE で画面を開くとダイアログで「Internet Explorer は対応していません。」と表示するアプリケーションを作成します。 Accel Platform 20 …