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
を会社名に置き換えます。 -
CodeLegth
の5
を受信者に送信されるワンタイムコードの桁数に置き換えます。 -
ValidityPeriod
の20
を、OTP コードが有効になる時間 (分) に置き換えます。 -
AllowedAttempts
の5
を受信者が OTP の検証で失敗できる回数に置き換えます。 -
OriginationIdentity
の+18555550142
を、OTP コードの送信に使用される発信元 ID に置き換えます。 -
DestinationIdentity
の+12065550007
を OTP コードを送信する電話番号に置き換えます。 -
ReferenceId
のSampleReferenceId
をリクエストの一意のリファレンス ID に置き換えます。
SendOtpMessage
レスポンス
OTP メッセージを正常に送信すると、次の例のようなレスポンスが表示されます。
{ "MessageResponse": { "ApplicationId": "7353f53e6885409fa32d07cedexample", "RequestId": "255d15ea-75fe-4040-b919-096f2example", "Result": { "+12065550007": { "DeliveryStatus": "SUCCESSFUL", "MessageId": "nvrmgq9kq4en96qgp0tlqli3og1at6aexample", "StatusCode": 200, "StatusMessage": "MessageId: nvrmgq9kq4en96qgp0tlqli3og1at6aexample" } } } }