- ユニバーサルログインを実装し、Auth0とインタラクションするためにauth0.jsを使用してログインページをカスタマイズする場合。
- アプリケーションにログインフローを埋め込む場合。
パスワードレスエンドポイント
POST /passwordless/start
[Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、アプリケーション設定の [Advanced Settings(高度な設定] にある [Grant Types(付与タイプ)] で [Passwordless OTP(パスワードレスOTP)] の付与を有効にしなければなりません。
- メールまたはSMSメッセージによる1回限りのコード
- メールによる1回限りのリンク
{yourAuth0Tenant}.auth0.com/passwordless/verify-redirect
への呼び出しをトリガーします。Auth0 はユーザーをアプリケーションにリダイレクトし、ユーザーはログインします。
コードを使用する場合、アプリケーションはそのコードの入力を求める必要があり、その後、/oauth/token
エンドポイント、またはAuth0.js SDK のpasswordlessLogin
メソッドを使用して、そのコードを認証トークンと交換する必要があります。
POST /oauth/token
ネイティブアプリケーションまたは通常のWebアプリケーションにパスワードレスを実装する場合は、/oauth/token
を使用してOTPコードを認証トークンと交換する必要があります。このエンドポイントはシングルページアプリケーションからは使用できません。
これを実現するには、まず、アプリケーションの設定の [Advanced Settings(詳細設定)] > [Grant Types(付与タイプ)] にある[Auth0 Dashboard(Auth0ダッシュボード)]>[Applications(アプリケーション)]>[Applications(アプリケーション)]で、アプリケーションの [ OTP(パスワードレスOTP)] 付与を有効にする必要があります。
ユーザーはOTPコードを受け取り、ネイティブアプリケーションまたはWebアプリケーションがユーザーにOTPコードの入力を求めます。ユーザーがコードを入力すると、次のパラメーターを使用して/oauth/token
エンドポイントを呼び出すことで認証フローを完了できます。
Auth0.jsを使用する
シングルページアプリケーションまたはカスタマイズされたユニバーサルログインページでパスワードレス認証を実装する場合は、Auth0.jsとそれに含まれるpasswordlessLoginメソッドを使用する必要があります。実装は複雑なので、APIを直接呼び出すのではなく、ライブラリーを使用することをお勧めします。パスワードレスエンドポイントでのレート制限
Auth0のレート制限と攻撃保護機能は、API呼び出しを行っているマシンのIPのみを考慮します。API呼び出しがバックエンドサーバーから行われる場合、通常、Auth0ではサーバーのIPではなく、エンドユーザーのIPを考慮する必要があります。 Auth0はAPI呼び出しでauth0-forwarded-for
ヘッダーを指定することをサポートしていますが、次の場合にのみ考慮されます。
- 機密アプリケーションに対してAPI呼び出しが行われる。
- API 呼び出しにはクライアントシークレットが含まれている。
- [Trust IP Header(信頼トークンエンドポイントIPヘッダー)] トグルがオンになっている。