メインコンテンツへスキップ
API は、次の 2 つのシナリオで使用できます。
  • を実装し、Auth0 と連携するために auth0.js を使ってログインページをカスタマイズしたい場合。
  • アプリケーションにログインフローを埋め込みたい場合。
各シナリオで Passwordless の Universal Login または埋め込みログインを実装する方法について詳しくは、Passwordless Authentication with Universal Login または Passwordless Authentication with Embedded Login を参照してください。

パスワードレスエンドポイント

POST /passwordless/start

アプリケーションの設定で、Auth0 Dashboard > Applications > ApplicationsAdvanced Settings > Grant Types にある Passwordless OTP グラントを有効にする必要があります。
POST /passwordless/start エンドポイントを呼び出すと、Classic Login と 埋め込みログイン の両方でパスワードレス認証プロセスを開始できます。 エンドポイントに指定したパラメーターに応じて、Auth0 は次のいずれかを送信してユーザーの検証プロセスを開始します。
  • 単一使用の code をメールまたは SMS で送信
  • 単一使用のリンクをメールで送信
API 呼び出しは、次の構造である必要があります。 マジックリンクを使用する場合、ユーザーは Authentication API によって生成されたリンクを受け取ります。ユーザーがそのリンクをクリックすると、{yourAuth0Tenant}.auth0.com/passwordless/verify-redirect が呼び出されます。Auth0 はユーザーをアプリケーションにリダイレクトし、ユーザーはログインします。 code を使用する場合、アプリケーションはその code の入力を求める必要があります。その後、/oauth/token エンドポイント、または Auth0.js SDK の passwordlessLogin メソッドを使用して、その code を認証トークンに引き換える必要があります。

POST /oauth/token

ネイティブアプリケーションまたは通常の Web アプリケーション向けにパスワードレスを実装している場合は、/oauth/token を使用して OTP code を認証トークンに交換する必要があります。シングルページアプリケーションからはこのエンドポイントを使用できません。 これを行うには、まず Auth0 Dashboard > Applications > Applications のアプリケーション設定にある Advanced Settings > Grant Types で、アプリケーションの Passwordless OTP グラントを有効にする必要があります。 ユーザーは OTP code を受け取り、ネイティブアプリケーションまたは Web アプリケーションはその入力をユーザーに求めます。ユーザーが code を入力したら、次のパラメーターを指定して /oauth/token エンドポイントを呼び出すことで、認証フローを完了できます。 問題がなければ、Auth0 は次のようなレスポンスを返します。
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token":"eyJz93a...k4laUWw",
"refresh_token":"GEbRxBN...edjnXbL",
"id_token":"eyJ0XAi...4faeEoQ",
"token_type":"Bearer",
"expires_in":86400
}
その後、 をデコードしてユーザー情報を取得するか、 を使って通常どおり API を呼び出すことができます。

Auth0.js の使用

シングルページアプリケーション でパスワードレス認証を実装する場合や、Universal Login ページをカスタマイズする場合は、Auth0.js と付属の passwordlessLogin メソッドを使用してください。実装は複雑なため、API を直接呼び出すのではなく、ライブラリを使用することをお勧めします。

パスワードレスエンドポイントでのレート制限

Auth0 のレート制限および 機能では、API 呼び出しを行うマシンの IP のみが考慮されます。API 呼び出しがバックエンドサーバーから行われる場合、通常、Auth0 に考慮させたいのはサーバーの IP ではなくエンドユーザーの IP です。 Auth0 では、API 呼び出しで auth0-forwarded-for ヘッダーを指定できますが、これが考慮されるのは次の場合のみです。
  • API 呼び出しが機密アプリケーションに対して行われる。
  • API 呼び出しに が含まれている。
  • Trust IP Header トグルがオンになっている。
詳しくは、Avoid Common Issues with Resource Owner Password Flow and Attack Protection を参照してください。

MFA をカスタマイズする

パスワードレス API を使用してをカスタマイズします。アプリケーションがアクセストークンをリクエストするために /oauth/token エンドポイントを呼び出すと、mfa_required エラーを返し、次の情報を提供します。
  • 登録とチャレンジのために MFA API を呼び出す際に必要な mfa_token
  • チャレンジでアプリケーションがサポートする認証要素の type を示す mfa_requirements パラメーター。
{
  "error": "mfa_required",
  "error_description": "Multifactor authentication required",
  "mfa_token": "Fe26...Ha",
  "mfa_requirements": {
    "challenge": [
      { "type": "otp" },
      { "type": "push-notification" },
      { "type": "phone" },
      { "type": "recovery-code" }
    ]
  }
}
mfa_token を使用して mfa/authenticator エンドポイントを呼び出し、ユーザーが登録しているすべての認証要素を一覧取得し、アプリケーションでサポートしている type と一致するものを特定します。また、チャレンジを発行するには、対応する authenticator_type も取得する必要があります。
[
  {
    "type": "recovery-code",
    "id": "recovery-code|dev_qpOkGUOxBpw6R16t",
    "authenticator_type": "recovery-code",
    "active": true
  },
  {
    "type": "otp",
    "id": "totp|dev_6NWz8awwC8brh2dN",
    "authenticator_type": "otp",
    "active": true
  }
]
request/mfa/challenge エンドポイントを呼び出して、MFA チャレンジを実行します。 Auth0 Actions を使用すると、MFA フローをさらにカスタマイズできます。詳細については、Actions Triggers: post-challenge - API Object を参照してください。