/passwordless/start エンドポイントの使用を非推奨とします。
では、シークレットを保存できるアプリケーションを ‘confidential’ と呼びます。Auth0 では、これに該当するのは ‘Regular Web Applications’、つまりバックエンドアプリから Web ページを配信する従来型Webアプリケーションです。シングルページアプリケーションとネイティブアプリケーションは ‘public’ アプリケーションと見なされるため、この変更の影響はありません。
Auth0 は、client_secret がパラメーターとして含まれている場合、または呼び出しがクラシックログインのカスタムログインページから行われ、state パラメーターが転送される場合に、/passwordless/start への呼び出しを認証できます。
影響を受ける機能
/passwordless/start エンドポイントを直接呼び出しており、client_secret をパラメーターとして送信していない場合、この非推奨化の影響を受けます。
クラシックログインページでパスワードレス認証を実装しており、Auth0 ライブラリの既定の初期化方法を変更している場合も、影響を受ける可能性があります。
影響を受けるかどうかは、テナントログを確認し、「非推奨通知」で絞り込んだうえで、「Enforce client authentication for passwordless connections」というログがあるかを確認することで判断できます。また、次のクエリを使って直接検索することもできます:type:depnote AND description:*passwordless*。なお、このクエリが使えるのはパブリッククラウドのテナントのみです。プライベートクラウドのログでは、description フィールドで検索できないためです。
Actions
/passwordless/start エンドポイントを呼び出している場合は、次の対応が必要です。
- 以下の説明に従ってコードを調整し、
/passwordless/startを正しく呼び出せるようにしてください。 - テナントログを確認し、変更が正しく行われていること、および「Enforce client authentication for passwordless connections」に関する非推奨化ログが生成されていないことを確認してください。
- Advanced Tenant Settings の Migrations セクションで、Enforce client authentication for passwordless connections トグルをオンにしてください。
バックエンドからのAPI呼び出し
/passwordless/start エンドポイントに対して行う呼び出しでは、パラメーターとして を必ず含める必要があります。
/passwordless/start に直接 POST リクエストを送信する場合は、client_secret をペイロードに含めます。
SDK を使用している場合は、パスワードレスフローを開始するメソッドにそのパラメーターを追加してください。設定方法は SDK ごとに異なり、まだ更新されていない SDK もあります。更新されていない SDK を使用している場合は、対応が完了するまで HTTP 呼び出しを直接行うことができます。
クラシックログインページでの Auth0.js または Lock.js
/passwordless/start エンドポイントを呼び出すことになります。
Web ページにクライアントシークレットを保存することはできないため、この呼び出しを認証するには、クラシックログインページで受け取った state パラメーターを /passwordless/start エンドポイントに転送します。そのパラメーターは、カスタムログインページの config.internalOptions フィールドに保存されています。
ログインページをカスタマイズするためのデフォルトテンプレートでは、Lock.js または auth0.js の初期化時に、次のようにこれを使用します。
Web アプリケーションでクライアントから /passwordless/start を呼び出す
/passwordless/start エンドポイントを呼び出している場合、JavaScript による呼び出しではクライアントシークレットを指定できません。これがアプリケーションに該当する場合は、/passwordless/start をフロントエンドではなく Web アプリケーションのバックエンドから呼び出すように変更する必要があります。
レート制限
/passwordless/start にクライアント認証を追加すると、Auth0 はそのリクエストで送信されるヘッダーを信頼できるようになります。auth0-forwarded-for ヘッダーを設定すると、IP アドレスがログに表示され、 に使用されます。
認証済みの /passwordless/start リクエストは、通常の認証済み Authentication API リクエストとして扱われるため、対応する Authentication API のグローバルなレート制限が適用されます。