Auth0 は基本的な SMS 認証をサポートしていません。
- SMS パスワードレス接続を設定します。手順については、パスワードレス接続 の「Implement Passwordless」セクションを参照してください。
- Management API のアクセストークンを取得します。これは、パスワードレス接続を更新するために Management API を呼び出す際に必要です。
- GET Connections エンドポイントを使用して、テナントに関連付けられている接続の情報を取得します。具体的には、後続の API 呼び出しで接続自体を更新するときに使用する、パスワードレス SMS 接続の ID を取得する必要があります。
次の Management API 呼び出しを実行する前に、
ACCESS_TOKENを手順 1 で取得したトークンに必ず置き換えてください。
"name": "sms" プロパティを検索します。その接続には現在、セットアップ時に指定した Twilio の情報が表示されていることを確認してください。
-
接続を更新します。これを行うには、Update a Connection endpoint に PATCH リクエストを送信します。具体的には、SMSゲートウェイ に関する情報を指定するために、接続の
optionsオブジェクトを更新します。 次の変更を行います。twilio_sidパラメーターとtwilio_tokenパラメーターを削除するproviderパラメーターを追加し、sms_gatewayに設定するgateway_urlパラメーターを追加し、SMSゲートウェイ の URL に設定する。Auth0 がメッセージを代理送信する際にこの gateway を使用できるようにするには、Auth0 からこの URL にアクセスできる必要があります。
認証付きリクエスト
options オブジェクトに追加できます。
options オブジェクトに gateway_authentication を含めると、Auth0 は SMS ゲートウェイにリクエストを送信するたびに、Authorization ヘッダーに JSON Web Token を追加します。このトークンには gateway_authentication.subject と gateway_authentication.audience の値が含まれ、gateway_authentication.secret で署名されます。
シークレットが base64url エンコードされている場合は、secret_base64_encoded を true に設定します。
接続を更新すると、ユーザーが 接続でサインアップまたはログインするたびに、Auth0 は以下の情報を SMS ゲートウェイに送信します。
options オブジェクトの forward_req_info プロパティを true に設定すると、ゲートウェイはパスワードレスのプロセスを開始した HTTP リクエストの情報も受け取ります。これには、/passwordless/start を呼び出すクライアントの IP アドレスと User Agent が含まれます。
エラー処理
/passwordless/start エンドポイントは HTTP 400 コードと、次のようなレスポンスを返します。
error_description は Authentication failed while calling the SMS gateway: 401 になります。 (エラーの説明文は、予告なくいつでも変更される可能性がある点にご注意ください。)
Auth0 は、カスタム SMSゲートウェイ への HTTP 呼び出しに 30 秒のタイムアウトを設定しています。SMSゲートウェイ がこの時間内に応答しない場合、/passwordless/start エンドポイントも HTTP 400 コードを返します。レスポンスは上記の形式となり、error_description フィールドは Timeout while calling the SMS gateway: <Timeout Code> になります。 (繰り返しになりますが、エラーの説明文は予告なくいつでも変更される可能性があります。)