パスワードレス
Amplifyは、以下の方法を使用したパスワードレス認証フローに対応しています:
パスワードレス認証により、従来のパスワードに関連するセキュリティリスクとユーザーの手間が軽減されます。
パスワードレス認証の設定
defineAuth 設定でパスワードレス認証方法を直接有効にできます。パスワードレス方法は従来のパスワードベースの認証と一緒に使用され、ユーザーに複数のサインインオプションを提供します。
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { email: { otpLogin: true // Email OTP を有効化 } }});複数のパスワードレス方法を同時に有効にできます:
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { email: { otpLogin: true // Email OTP を有効化 }, phone: { otpLogin: true // SMS OTP を有効化 }, webAuthn: true // WebAuthn パスキーを有効化 }});SMS OTP
SMS ベースの認証は、電話番号を識別子として、テキストメッセージを検証チャネルとして使用します。高いレベルでは、エンドユーザーは認証のために次の手順を実行します:
- ユーザーがサインアップ/サインイン時に電話番号を入力します
- 時間制限のあるコードを含むテキストメッセージを受け取ります
- ユーザーがコードを入力すると認証されます
SMS OTP の設定
電話ログイン設定で otpLogin: true を設定して SMS OTP を有効にします:
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { phone: { otpLogin: true } }});アプリケーションコードで SMS OTP を使用する方法の詳細を学習してください。
Email OTP
メールベースの認証は、メールアドレスを識別と検証に使用します。高いレベルでは、エンドユーザーは認証のために次の手順を実行します:
- ユーザーがサインアップ/サインイン時にメールアドレスを入力します
- 時間制限のあるコードを含むメールメッセージを受け取ります
- ユーザーがコードを入力すると認証されます
Email OTP の設定
メールログイン設定で otpLogin: true を設定して Email OTP を有効にします:
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { email: { otpLogin: true } }});アプリケーションコードで Email OTP を使用する方法の詳細を学習してください。
WebAuthn パスキー
WebAuthn は生体認証またはセキュリティキーを認証に使用し、デバイス固有のセキュリティ機能を活用します。高いレベルでは、エンドユーザーは認証のために次の手順を実行します:
- ユーザーがパスキーの登録を選択します
- デバイスが生体認証/セキュリティキーの検証を促します
- 今後のログインでは、同じ方法を使用して認証します
WebAuthn の設定
認証設定で WebAuthn パスキーを有効にします。最もシンプルな設定は自動的な証明者 ID 解決を使用します:
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { email: true, // ユーザーはサインアップ方法が必要です webAuthn: true // 証明者 ID を自動的に解決します }});webAuthn: true を使用する場合、証明者 ID は自動的に解決されます:
- サンドボックス環境では:
localhostに解決されます - ブランチデプロイメントでは: Amplify アプリドメイン (例:
[branch].[appId].amplifyapp.com) に解決されます
本番環境またはカスタムドメインの場合は、証明者 ID を明示的に指定します:
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { email: true, webAuthn: { relyingPartyId: 'example.com', userVerification: 'required' // または 'preferred' (デフォルト) } }});アプリケーションコードで WebAuthn パスキーを使用する方法の詳細を学習してください。
認証情報の管理
WebAuthn を使用したパスワードレス認証では、ユーザーの Amazon Cognito アカウントに 1 つ以上の認証情報を関連付ける必要があります。Amplify は各プラットフォームのローカル認証機器と統合する API を提供し、これらの認証情報の関連付けを簡単に作成、表示、削除できます。
パスワードレス認証
パスワードレス認証方法を有効にする場合、従来のパスワード認証は引き続き利用可能です。これにより、ユーザーは優先する認証方法を柔軟に選択できます:
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { email: { otpLogin: true // Email OTP がパスワード認証と一緒に有効化される } }});この設定では、ユーザーは以下のいずれかを使用して認証できます:
- メールとパスワード (従来)
- Email OTP (パスワードレス)
複数のパスワードレス方法を有効にして、ユーザーにさらに多くのオプションを提供できます:
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { email: { otpLogin: true }, phone: { otpLogin: true }, webAuthn: { relyingPartyId: 'example.com' } }});この設定では、ユーザーは以下を使用して認証できます:
- メールとパスワード
- Email OTP
- 電話とパスワード
- SMS OTP
- WebAuthn パスキー