Amazon Pinpoint を使用してワンタイムパスワード (OTP) を生成する - Amazon Pinpoint

Amazon Pinpoint を使用してワンタイムパスワード (OTP) を生成する

Amazon Pinpoint には、新しいワンタイムパスワードを生成し、SMS メッセージとして受信者に送信するために使用できるワンタイムパスワード (OTP) 管理機能が含まれています。

重要

この機能を使用するには、アカウントに本番稼働用アクセスとアクティブな送信元 ID が必要です。詳細については、「AWS End User Messaging SMS ユーザーガイド」の「SMS/MMS と音声サンドボックスについて」および「電話番号をリクエストする」を参照してください。

一部の国や地域では、SMS メッセージを送信する前に、専用の電話番号または発信元 ID を取得する必要があります。例えば、米国の受信者にメッセージを送信する場合、専用の通話料無料の番号、10DLC 番号、またはショートコードが必要です。インドにいる受信者にメッセージを送信する場合、PEID (プリンシパル エンティティ ID) および テンプレート ID を含む送信者 ID を登録する必要があります。これらの要件は、OTP 機能を使用する際にも適用されます。

この機能を使用するには、OTP メッセージの送信と検証のためのアクセス許可が必要です。「ワンタイムパスワード」を参照してください。アクセス許可の決定についてサポートが必要な場合は、「Amazon Pinpoint Identity and Access Management のトラブルシューティング」を参照してください。

Amazon Pinpoint API の SendOtpMessages オペレーションを利用して、アプリケーションのユーザーに OTP コードを送信できます。この API を使用すると、Amazon Pinpoint はランダムなコードを生成し、SMS メッセージとしてユーザーに送信します。リクエストには次のパラメータが含まれます。

  • Channel — OTP コードが送信される通信チャネル。現在、SMS メッセージのみがサポートされているため、許容される値は SMS のみです。

  • BrandName — OTP コードに関連するブランド名、会社名、商品名。この名前の長さは最大 20 文字です。

    注記

    Amazon Pinpointが OTP メッセージを送信する際、以下のメッセージテンプレートにブランド名が自動的に挿入されます。

    This is your One Time Password: {{otp}} from {{brand}}

    そこで、ブランド名として ExampleCorp を指定し、Amazon Pinpoint が 123456 のワンタイムパスワードを生成した場合、次のようなメッセージをユーザーに送ります。

    This is your One Time Password: 123456 from ExampleCorp
  • CodeLength — 受信者に送信されるワンタイムコードの桁数 OTP コードは 5 桁から 8 桁の数字で構成されます。

  • ValidityPeriod — OTPコードが有効になる時間 (分) です。有効期間は 5 分から 60 分までです。

  • AllowedAttempts – 受信者が OTP の検証で失敗できる回数。試行回数がこの値を超えると、OTP は自動的に無効になります。試行回数の上限は 5 回です。

  • Language — メッセージを送信するときに使用する言語 (IETF BCP-47 形式)。許容値は次のとおりです。

    • de-DE – ドイツ語

    • en-GB – 英語 (英国)

    • en-US – 英語 (米国)

    • es-419 – スペイン語 (ラテンアメリカ)

    • es-ES – スペイン語

    • fr-CA – フランス語 (カナダ)

    • fr-FR – フランス語

    • it-IT – イタリア語

    • ja-JP – 日本語

    • ko-KR – 韓国語

    • pt-BR – ポルトガル語 (ブラジル)

    • zh-CN – 簡体字中国語

    • zh-TW – 繁体字中国語

  • OriginationIdentity – OTP コードの送信に使用される発信元 ID (ロングコード、ショートコード、送信者 ID など)。OTP 送信にロングコードまたは通話料無料を使用する場合、電話番号は E.164 形式である必要があります。

  • DestinationIdentity — OTP コードの送信先の電話番号 (E.164形式)。

  • ReferenceId — リクエストの一意の参照 ID。参照 ID は、OTP を検証するときに入力した参照 ID と完全に一致します。参照 ID は、1 文字以上 48 文字以下になります。

  • EntityId — 規制機関に登録されているエンティティ ID。このパラメータは現在、インドの受信者にメッセージを送信する場合にのみ使用されます。インドの受信者に送信しない場合は、このパラメータを省略できます。

  • TemplateId — 規制機関にテンプレートされているエンティティ ID。このパラメータは現在、インドの受信者にメッセージを送信する場合にのみ使用されます。インドの受信者に送信しない場合は、このパラメータを省略できます。

    注記

    インドの受信者にメッセージを送信するための要件の詳細については、「Amazon Pinpoint ユーザーガイド」の「インドの送信者 ID 登録プロセス」を参照してください。

Amazon Pinpoint アカウントに OTP メッセージ送信の設定が正しくされていることを確認するため、AWS CLI を使用してテストメッセージを送信することができます。AWS CLI の詳細については、AWS Command Line Interface ユーザーガイドを参照してください。

AWS CLI を使用して OTP テストメッセージを送信するには、ターミナルで send-otp-message コマンドを実行します。

aws pinpoint send-otp-message --application-id 7353f53e6885409fa32d07cedexample --send-otp-message-request-parameters Channel=SMS,BrandName=ExampleCorp,CodeLength=5,ValidityPeriod=20,AllowedAttempts=5,OriginationIdentity=+18555550142,DestinationIdentity=+12065550007,ReferenceId=SampleReferenceId

上記のコマンドで、次の操作を行います。

  • 7353f53e6885409fa32d07cedexample をアプリケーション ID に置き換えます。

  • ExampleCorp を会社名に置き換えます。

  • CodeLegth5 を受信者に送信されるワンタイムコードの桁数に置き換えます。

  • ValidityPeriod20 を、OTP コードが有効になる時間 (分) に置き換えます。

  • AllowedAttempts5 を受信者が OTP の検証で失敗できる回数に置き換えます。

  • OriginationIdentity+18555550142 を、OTP コードの送信に使用される発信元 ID に置き換えます。

  • DestinationIdentity+12065550007 を OTP コードを送信する電話番号に置き換えます。

  • ReferenceIdSampleReferenceId をリクエストの一意のリファレンス ID に置き換えます。

SendOtpMessageレスポンス

OTP メッセージを正常に送信すると、次の例のようなレスポンスが表示されます。

{ "MessageResponse": { "ApplicationId": "7353f53e6885409fa32d07cedexample", "RequestId": "255d15ea-75fe-4040-b919-096f2example", "Result": { "+12065550007": { "DeliveryStatus": "SUCCESSFUL", "MessageId": "nvrmgq9kq4en96qgp0tlqli3og1at6aexample", "StatusCode": 200, "StatusMessage": "MessageId: nvrmgq9kq4en96qgp0tlqli3og1at6aexample" } } } }