始める前に
- セキュリティ上の理由から、アプリケーションのオリジン URL は承認済み URL として登録されている必要があります。まだアプリケーションの Allowed Callback URLs に追加していない場合は、Allowed Origins (CORS) のリストにも追加する必要があります。
- アプリケーションの 設定 ビューにある Allowed Web Origins が、リクエスト元のドメインに設定されていることを確認してください。URL にはサブドメイン用のワイルドカードを含めることができますが、ドメイン URL の後に相対パスを含めることはできません。詳しくは、サブドメイン用プレースホルダーを参照してください。
- カスタムドメイン を有効にしない場合は、クロスオリジン認証のフォールバックとして Auth0.js を使用する検証ページを作成する必要があります。
クロスオリジン認証を設定する
- Auth0 Dashboard > アプリケーション > アプリケーション に移動し、詳細を表示するアプリケーションの名前をクリックします。
- Cross-Origin Authentication で、Allow Cross-Origin Authentication をオンにします。
- Allowed Origins (CORS) で、アプリケーションのオリジン URL を入力します。オリジンについて詳しくは、Mozilla MDN Web Docs の Origin をご覧ください。
- 変更を保存 をクリックします。
アプリケーションで CORS を使用する必要がない場合は、Allow Cross-Origin Authentication がオフになっていることを確認してください。
クロスオリジン検証ページを作成する
crossOriginVerification メソッドを使用できます。
Chrome、Opera、Safari などのサポート対象外のブラウザでは、カスタムドメインを有効にしない限り、サードパーティ Cookie が無効な場合、クロスオリジン認証は機能しません。
Safari ではこの設定は “Prevent cross-site tracking” と表示され、Intelligent Tracking Prevention が使用されます。残念ながら、これにより認証シナリオではサードパーティ Cookie も利用できなくなります。たとえば、Safari での token の更新 への影響については、こちらの例をご覧ください。
- アプリケーションに、Auth0.js の
WebAuthをインスタンス化するページを作成します。作成したらすぐにcrossOriginVerificationを呼び出します。ページ名は任意です。
- 変更を保存 をクリックします。
エラーコードと説明
/co/authenticate エンドポイントが呼び出され、次のエラーが返されることがあります。
さらに、
error または error_description プロパティを含まない一般的な 403 エラーが返されることもあります。レスポンスボディには、次のような内容だけが含まれます。
Origin https://test.app is not allowed.
ブラウザでのテスト対応
- Microsoft Internet Explorer
Samesite cookie 属性
以前は、
samesite cookie 属性のオプションとして true、false、strict、lax がありました。この属性を手動で設定しなかった場合、Auth0 はデフォルト値として false を使用していました。2020 年 2 月から、Google Chrome v80 で Cookie の処理方法が変更されたため、Auth0 でもそれに合わせて次の変更が実施されました。samesite属性が設定されていない Cookie は、laxに設定されます。sameSite=noneが設定された Cookie はセキュアである必要があります。そうでない場合、ブラウザの cookie jar に保存できません。