概要
OneSignalは、ユーザーのなりすましを防ぐのに役立つアイデンティティ検証という拡張セキュリティ機能を提供しています。この機能は、サーバー上で安全に生成されたJSON Web Token(JWT)を利用します。サブスクリプション情報を検証するために、これらのトークンがアプリとOneSignalのAPIに渡されます。 次の場合にアイデンティティ検証を有効にすることをお勧めします:- ユーザーのログイン
- メールサブスクリプションの追加
- SMSサブスクリプションの追加
- ユーザーアイデンティティの変更
support@onesignal.comに連絡してこれを有効にしてください。前提条件
- プッシュプラットフォームが構成された既存のOneSignalアプリ。
- サポートされているSDKの1つと統合されたモバイルアプリ:
セットアップ
1
新しいキーを生成する
OneSignalアカウントにログインし、設定 > キーとID > アイデンティティ検証に移動します。
新しいキーを生成をクリックして、新しいキーペアを作成します。
PEMファイルをダウンロードするか、秘密鍵をコピーし、秘密鍵を安全に保管してください。

アイデンティティ検証の構成

新しいキーペアの作成

アイデンティティ検証のキーペア
秘密鍵は常にキー管理システムなどの安全な環境に保管してください。秘密鍵を決して公開しないでください
2
バックエンドで検証JWTを生成する
アイデンティティ検証では、OneSignalにログインする前に、認証サーバーでエンドユーザーを認証する必要があります。エンドユーザーがバックエンドで認証するときに、トークンを生成し、デバイスへの認証レスポンスに含めます。アプリがバックエンドサーバーを実行していない場合は、ユーザーを検証してこれらのトークンを生成するための軽量サーバーのセットアップを検討してください。秘密鍵は、ダッシュボードからダウンロードした前のステップのファイルにあります。
JWTペイロード
JWTには次のプロパティを含めることができます:OneSignalアプリID
トークンの有効期限。
ユーザーのエイリアス。
subscriptions
ユーザーにメールおよびSMSサブスクリプションを追加する場合にのみ必要です。
JWTへの署名
ES256アルゴリズムを使用してJWTに署名します。JWTをOneSignalに送信するときに検証の問題を回避するために、バックエンドがこの署名方法を使用するように構成されていることを確認してください。これにはJWTライブラリを使用することをお勧めします。jsonwebtokenを使用した例:サブスクリプションを含める
理想的には、ユーザーのログイン時に、メールアドレスや電話番号などのサブスクリプションの詳細をJWTペイロードに含めます。これらの詳細が事前に利用できない場合、検証サーバーは、サブスクリプション情報が利用可能になったときに動的にトークンを生成するエンドポイントを提供する必要があります。例:サブスクリプションを追加するためのJWTの生成3
`login`メソッドにJWTを渡す
バックエンドがJWTを生成したら、それを使用して
loginメソッドを呼び出します。このトークンは、メールやSMSサブスクリプションの追加などの変更を行う前に、ユーザーのアイデンティティが検証されることを保証します。ログインの例:4
JWTライフサイクルイベントを処理する
トークンの無効化などのシナリオを処理するために、バックエンドに専用のエンドポイントを実装する必要があります。このエンドポイントは、OneSignalが更新を要求したときに更新されたJWTを提供する必要があります。トークンの無効化とJWTの更新を処理する例:これにより、ユーザーのJWTが無効化されたときに、バックエンドから新しいJWTをフェッチしてOneSignalに渡すことができます。また、この関数を使用して、メールアドレスと電話番号を含むトークンを生成し、認証中に作成されたトークンにそれらが含まれていない場合にメールとSMSサブスクリプションを管理できます。
5
ダッシュボードでトークンアイデンティティ検証を有効にする
設定 > キーとIDから、トークンアイデンティティ検証をトグルして有効にします。
有効にすると、アプリはサブスクリプションの真正性を検証するためにOneSignal JWTを送信する必要があります。さらに、アプリはアイデンティティ検証トークンサーバーによって生成されたJWTを使用して

トークンアイデンティティ検証の有効化
loginメソッドを呼び出す必要があります。サブスクリプションを追加する
モバイルアプリからサブスクリプションを追加するために追加の手順を実行する必要はありません。loginメソッドを呼び出すと、自動的に処理されます。- メールを追加する
- 電話番号を追加する
REST API
トークンアイデンティティ検証が有効になっている場合、以下のAPIへのすべてのリクエストには、ベアラートークンとしてヘッダーにサーバー生成のJWTを含める必要があります(例:Authorization: Bearer <JWT>)。