form_post
を使用したOIDC Enterprise- HTTP-POSTバインディング
- Webメッセージ(別名
checkSession
)
SameSite属性
Set-cookie
HTTP応答ヘッダーにSameSite cookie属性を追加して、ブラウザの動作を制限できます。HTTP要求をトリガーしたインタラクションの種類に基づいて、ブラウザがCookieのkey=value
のペアを送信できないようにすることができます。
許容される属性値は次のとおりです。
属性 | 説明 |
---|---|
strict | ユーザーがWebサイトのオリジン紐づけ内を移動している場合にクッキーを送信する |
lax | ユーザーがサードパーティのコンテキスト(iframesまたはposts)でなくドメイン間を移動している場合にクッキーを送信する |
none | 要求とともにWebサイトのオリジン紐づけを超えてクッキーを送信するその他の条件が存在しない限り(すなわち、サードパーティのクッキーがブロックされていない限り)、クッキーを送信しないでください。 |
属性 | 説明 |
---|---|
httpOnly | HTTPリクエストでのみクッキーを送信することができます。Javascriptのdocument.cookie では読み取りできません |
secure | ブラウザーでクッキーを安全なコンテキストのみに送信することができます。コンテキストが安全かどうかはブラウザーに左右されますが、これには通常、HTTPSを使用する必要があります |
max-age / expires | クッキーがsession(セッション)クッキー(ブラウザーがセッションを終了する際に破棄されるクッキー)、またはpersistent(永続的な) クッキー(ブラウザーセッションが終了した後でも存続するクッキー)かどうかを制御します |
ブラウザCookieの変更
2020年2月時点で、Google Chrome v80によるCookieの取り扱いが変わりました。2020年2月現在、Google Chrome v80ではCookieの処理方法が変更されました。samesite
属性が設定されていないクッキーは、lax
に設定されますsameSite=none
のCookieは、セキュリティ保護が必要です。保護されていない場合、ブラウザーに保存できません
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 jarに保存するCookie属性で、後で要求に Cookie key+value
のペアを含めるかどうかを決定します。


影響のある機能
次の表は、SameSite
属性の変更がアプリにどのような影響を与えるかを示しています。
アプリ動作 | 変更による影響 |
---|---|
Webサイトがhttps:// でない場合、クッキーがsameSite=none と設定されます | あり |
クッキーに明示的なsameSite 属性の値が設定されておらず、cross-originコンテキスト(HTTP form_postやiframeを埋め込むなど)で必要です | あり |
ネイティブアプリ(すべてがクッキー + Webベースでない) | なし(M2M) |
明示的なsameSite クッキーの属性値が既に設定されています | なし |
同じeTLD+1に異なるサブドメインが存在します(アプリがカスタムドメインのAuth0テナントと同じeTLD+1にある) | 可能性あり |
SameSite
をundefinedに設定するGoogle ChromeおよびMicrosoft Edgeの仕様が、SameSite
のデフォルトをnone
からlax
に変更されたことに気付くかもしれません。
たとえば、新しいUIを構築し、Auth0ゲートウェイ経由でプロキシするサービスがいくつかあるとします。このゲートウェイで、Cookieセッションを作成します。クロスオリジン要求を行うと、Javascriptコンソールに次の警告が表示される場合があります。
クロスサイトリソース(URL)に関連付けられた Cookie が SameSite 属性なしで設定されました。Chromeの将来のリリースでは、クロスサイト要求がSameSite=NoneおよびSecureで設定されている場合にのみ、Cookieが配信されます。開発者ツールの[Application(アプリケーション)]>[Storage(ストレージ)]>[Cookies]でCookieを確認し、詳細はhttps://www.chromestatus.com/feature/5088147346030592およびhttps://www.chromestatus.com/feature/5633521622188032で確認できます。
必要なアクション
この変更に備えるには、次の操作を行う必要があります。- サポートされていないブラウザのリストを確認します。
- Auth0 とやり取りするときに
response_mode=form_post
を使用する場合は、アプリケーションでSameSite=none
を使用するように設定します(Chromeはlocalhost
の場合でも例外を設けないことに注意してください) SameSite
属性がNone
に等しい場合は、Cookieをセキュアとして設定します。そうでない場合、ブラウザによって拒否されます。コールバックURLにHTTPを使用する場合、そのようなCookieを使用して認証要求のstate/をバインドすると、コールバックURLが壊れます。したがって、HTTPSを使用するか、SameSite=lax
に設定する必要があります。