

**サポート終了通知:** 2026 年 10 月 30 日に、 AWS は Amazon Pinpoint のサポートを終了します。2026 年 10 月 30 日を過ぎると、Amazon Pinpoint コンソールまたは Amazon Pinpoint のリソース (エンドポイント、セグメント、キャンペーン、ジャーニー、分析) にアクセスできなくなります。詳細については、「[Amazon Pinpoint のサポート終了](https://docs.aws.amazon.com/console/pinpoint/migration-guide)」を参照してください。**注:** SMS、音声、モバイルプッシュ、OTP、電話番号の検証に関連する APIs は、この変更の影響を受けず、 AWS エンドユーザーメッセージングでサポートされています。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Pinpoint を使用してワンタイムパスワード (OTP) を生成する
<a name="send-validate-otp"></a>

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

**重要**  
この機能を使用するには、アカウントに本番稼働用アクセスとアクティブな送信元 ID が必要です。詳細については、「*AWS End User Messaging SMS ユーザーガイド*」の「[SMS/MMS と音声サンドボックスについて](https://docs.aws.amazon.com/sms-voice/latest/userguide/sandbox.html)」および「[電話番号をリクエストする](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request.html)」を参照してください。

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

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

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 登録プロセス](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations-sms-senderid-india.html)」を参照してください。

Amazon Pinpoint アカウントが OTP メッセージを送信するように適切に設定されていることを確認するには、 AWS CLI を使用してテストメッセージを送信できます。の詳細については AWS CLI、[AWS Command Line Interface 「 ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)」を参照してください。

を使用してテスト OTP メッセージを送信するには AWS CLI、ターミナルで [send-otp-message](https://docs.aws.amazon.com/cli/latest/reference/pinpoint/send-otp-message.html) コマンドを実行します。

```
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` の *\$118555550142* を、OTP コードの送信に使用される発信元 ID に置き換えます。
+ `DestinationIdentity` の *\$112065550007* を OTP コードを送信する電話番号に置き換えます。
+ `ReferenceId` の *SampleReferenceId* をリクエストの一意のリファレンス ID に置き換えます。

## `SendOtpMessage`レスポンス
<a name="send-validate-otp-sending-response"></a>

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

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