form_postを使用する OIDC Enterprise- HTTP-POST バインディング
- Web メッセージ (
checkSessionとも呼ばれます)
SameSite 属性
set-cookie HTTP レスポンスヘッダーに SameSite cookie 属性を追加できます。これにより、HTTP リクエストを引き起こした操作の種類に応じて、ブラウザーが cookie の key=value ペアを送信しなくなる場合があります。
使用できる属性値は次のとおりです。
| 属性 | 説明 |
|---|---|
strict | ユーザーが Web サイトのオリジン内を移動している場合に cookie を送信します |
lax | ユーザーがドメイン間を移動している場合は cookie を送信しますが、サードパーティコンテキスト (iframe や POST) では送信しません |
none | Web サイトのオリジンをまたぐリクエストでも cookie を送信します。ただし、他の条件がある場合 (例: サードパーティ cookie がブロックされている場合) は送信されません。 |
| 属性 | 説明 |
|---|---|
httpOnly | cookie を HTTP リクエストでのみ送信できるようにします。JavaScript の document.cookie では読み取れません |
secure | ブラウザーが安全なコンテキストに対してのみ cookie を送信できるようにします。コンテキストが安全と見なされるかどうかはブラウザーによって異なりますが、通常は HTTPS の使用が必要です |
max-age / expires | cookie が セッション cookie (例: ブラウザーのセッション終了時に破棄される) か、永続 cookie (例: ブラウザーのセッション終了後も保持される) かを制御します |
SameSite属性が設定されていない Cookie は、laxとして設定されますSameSite=noneが設定された Cookie にはセキュリティ保護が必要です。そうでない場合、ブラウザの Cookie jar に保存できません
auth0(ユーザーセッションを処理)auth0-mf( に関連する情報を処理)did(デバイス / ユーザーエージェントの識別子)
SameSite属性をnoneに設定し、Cookie で HTTPS の使用を必須にします (環境に関係なく)- レガシーブラウザが
SameSiteをNoneに設定することをサポートしていない場合に備えて、フォールバック Cookie を設定します。これらのフォールバック Cookie は、auth0_compat、auth0-mf_compat、did_compatです
set-cookie ヘッダーの灰色の部分は、実際の Cookie key=value. です。赤色の部分は、後でリクエストに Cookie の key+value ペアを含めるかどうかを判断するために、ブラウザが Cookie jar に保存する Cookie 属性です。


影響を受ける機能
SameSite 属性の変更がアプリにどのような影響を及ぼす可能性があるかを示しています。
| App Behavior | Affected by Change |
|---|---|
ウェブサイトが https:// ではない場合に、sameSite=none として設定される Cookie | はい |
Cookie に明示的な sameSite 属性値が設定されておらず、クロスオリジンのコンテキスト (HTTP form_post、iframe の埋め込みなど) で必要になる | はい |
| ネイティブアプリ (Cookie とウェブベース以外のすべて) | いいえ (M2M) |
すでに明示的な sameSite Cookie 属性値を設定している | いいえ |
| 同じ eTLD+1 上の別のサブドメイン (アプリが Auth0 テナントのカスタムドメインと同じ eTLD+1 上にある) | 場合によっては影響あり |
SameSite を未定義に設定した場合の仕様が変更され、SameSite のデフォルト値が none ではなく lax になったことに気付くかもしれません。
たとえば、新しい UI を構築し、Auth0 ゲートウェイ経由でプロキシする複数のサービスがあるとします。このゲートウェイで Cookie セッションを作成している場合、クロスオリジンリクエストを行うと、JavaScript コンソールに次の警告が表示されることがあります。
A cookie associated with a cross-site resource (URL) was set without the SameSite attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with SameSite=None and Secure. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032
実施が必要な対応
- サポート対象外のブラウザーの一覧を確認します。
- Auth0 とやり取りする際に
response_mode=form_postを使用している場合は、アプリケーションがSameSite=noneを使用するように設定します (Chrome はlocalhostに対しても例外を設けない点に注意してください) - Cookie の
SameSite属性がNoneの場合は、その Cookie を secure に設定します。そうしないと、ブラウザーに拒否されます。コールバック URL に HTTP を使用している場合、そのような Cookie を認可リクエストの state/ の関連付けに使うと、動作しなくなります。したがって、HTTPS を使用するか、SameSite=laxを設定する必要があります