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

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

関連記事

IM-BloomMaker ボタンに効果音を付ける方法

このCookBookでは、2022 Spring でリリースした「音声または動画○を再生する」アクションアイテムの利用方法について説明します。「音声または動画○を再生する」 アクションアイテムは、指定 …

no image

OAuth2.0 の アクセストークンを Google から取得する方法

このクックブックでは、OAuth2.0 の アクセストークンを Google から取得する方法を説明します。 intra-mart Accel Platformでは、OAuth2.0 の アクセストー …

no image

IM-BloomMaker スプレッドシート 特定のセルを編集できないようにするには?

この CookBook では intra-mart Accel Platform 2020 Winter から利用可能になった「スプレッドシート」エレメントで、特定のセルを編集できないようにする方法を …

no image

ViewCreatorでIM-Workflowのフロー毎の取止め・差戻し案件件数を表示する。

このCookBookでは、ViewCreatorでIM-Workflowのフロー毎の取止め/差戻し案件件数を表示する方法を説明します。 検索条件を変更することで、IM-Workflowの特定の状況をモ …

IM-BloomMaker リッチテーブルのデータ部分を横スクロールさせる方法

このCookBookでは、リッチテーブルのデータ部分を横スクロールさせる方法について紹介しています。Accel Platform 2021 Summer より前のバージョンでは、リッチテーブルの横スク …