始める前に
- セキュリティ上の理由から、アプリケーションのオリジン URL は許可済み URL として登録されている必要があります。まだアプリケーションの Allowed Callback URLs に追加していない場合は、Allowed Origins (CORS) のリストに追加する必要があります。
- アプリケーションの Settings ビューで、Allowed Web Origins がリクエスト元のドメインに設定されていることを確認してください。URL にはサブドメイン用のワイルドカードを含めることができますが、ドメイン URL の後ろに相対パスを含めることはできません。詳細については、サブドメイン用プレースホルダー を参照してください。
- カスタムドメイン を有効にしない場合は、クロスオリジン認証のフォールバックとして Auth0.js を使用する検証ページを作成する必要があります。
クロスオリジン認証を設定する
- Dashboard > Applications > Applications に移動し、表示するアプリケーションの名前をクリックします。
- Cross-Origin Authentication で、Allow Cross-Origin Authentication をオンにします。
- Allowed Origins (CORS) を見つけて、アプリケーションのオリジン URL を入力します。Origin の詳細については、Mozilla MDN Web Docs の Origin を参照してください。
- Save Changes をクリックします。
アプリケーションで CORS を使用する必要がない場合は、Allow Cross-Origin Authentication がオフになっていることを確認してください。
クロスオリジン検証ページを作成する
crossOriginVerification メソッドを使用できます。
Chrome、Opera、Safari などのサポート対象外のブラウザでは、カスタムドメインを有効にしない限り、サードパーティ Cookie が無効な場合、クロスオリジン認証は機能しません。
Safari では、この設定は “Prevent cross-site tracking” と表示され、Intelligent Tracking Prevention が使用されます。残念ながら、これにより認証シナリオではサードパーティ Cookie を利用できなくなります。これがトークンの更新にどのように影響するかの例を以下に示します。
- アプリケーション内に、Auth0.js の
WebAuthをインスタンス化するページを作成します。作成したら、すぐにcrossOriginVerificationを呼び出します。ページ名は任意です。
iframe をレンダリングします。
2. Dashboard > Applications > Applications に移動し、対象のアプリケーションを選択します。
3. Cross-Origin Authentication の Cross-Origin Verification Fallback URL フィールドに、作成したコールバックページの URL を追加します。
- Save Changes をクリックします。
エラーコードと説明
/co/authenticate エンドポイントが呼び出され、次のエラーが発生することがあります。
| Status | Code | Description |
|---|---|---|
400 | invalid_request | リクエスト本文が無効です。必要なのは client_id、credential_type、username、otp、realm のみです。 |
400 | unsupported_credential_type | 不明な credential type パラメーターです。 |
400 | invalid_request | レルム non-existent-connection は存在しません。 |
401 | unauthorized_client | クロスオリジンログインは許可されていません。 |
401 | password_leaked | 現在使用しているパスワードが過去のデータ侵害 (このアプリケーションではありません) で漏えいしていたため、このログイン試行はブロックされました。 |
403 | access_denied | メールアドレスまたはパスワードが正しくありません。 |
403 | access_denied | 認証エラー |
403 | blocked_user | ブロックされたユーザーです |
429 | too_many_attempts | ログイン試行が複数回連続したため、アカウントがブロックされました。ブロック解除の方法については、ご希望の連絡手段に通知をお送りしています。 |
429 | too_many_attempts | 不審なログイン動作が検出されたため、今後の試行はブロックされます。管理者に連絡してください。 |
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 には secure 属性が必要です。そうでない場合、ブラウザの cookie jar に保存できません。