Skip to main content

概要

SDK認証はBeta機能です。詳細については、カスタマーサクセスマネージャー(CSM)にお問い合わせください。
SDK認証でデータの整合性を保護しましょう。このセキュリティ機能は、すべてのリクエストにサーバーで生成された固有のデジタル署名であるJSON Web Token(JWT)を付与することで、正当なログイン済みユーザーのみがアプリから情報を送信できるようにします。 MoEngageは、不正または無効なデータを受信時に(無効なJWTトークンに基づいて)自動的にブロックします。これにより、データの破損や悪意のあるアクティビティのない、信頼できるユーザー分析と請求が実現します。 次の画像は、SDK認証のダッシュボードを示しています。

ユースケース

SDK認証は、次のユースケースで役立ちます。
  • ユーザーのなりすましの防止: 悪意のある攻撃者(不正な試行)が、他のユーザーのプロファイル情報(名前、都市、設定など)を悪意を持って更新したり、そのユーザーになりすましてイベントを送信したりすることをブロックします。
  • 重要度の高いイベントの保護: purchase_completed、subscription_started、demo_requested などの重要なユーザーアクションの整合性を確保します。これにより、偽のイベントによって分析が損なわれたり、誤ったマーケティングキャンペーンがトリガーされたりすることを防ぎます。
  • データのクリーンな状態の維持: 認証されていないリクエストによる不要なデータの送信、不正なユーザープロファイルの作成、ユーザーデータベースの破損を阻止し、高いデータ品質を維持します。

主要な概念

始める前に、この機能の次の主要な概念を理解しておきましょう。

鍵とJWTを生成する

MoEngageダッシュボードを設定する前に、チームはサーバー上で鍵の生成とJWTの作成を設定する必要があります。
  1. RSA256の公開鍵/秘密鍵ペアを生成する: 公開鍵(Privacy Enhanced Mail(PEM)ファイル)をMoEngageダッシュボードに追加し、秘密鍵はサーバー上に安全に保管する必要があります。MoEngageでは、RS256 JWTアルゴリズムで使用するために、2048ビットのRSA鍵を推奨しています。
  2. 現在のユーザー用のJSON Web Tokenを作成する: 秘密鍵を用意したら、サーバー側のアプリケーションでそれを使用して、現在ログインしているユーザーのJWTをアプリまたはWebサイトに返す必要があります。通常、このロジックは、ログインエンドポイントや現在のユーザーのプロファイルを更新するエンドポイントなど、アプリが通常現在のユーザーのプロファイルをリクエストする場所に配置できます。
JWTを生成する際は、ヘッダーとペイロードに次のフィールドを含める必要があります。 ヘッダー ペイロード JWTトークンとペイロードの例は次のとおりです。

SDK認証ページにアクセスする

SDK認証ページにアクセスするには、次の手順を実行します。
  1. MoEngageダッシュボードの左側のナビゲーションメニューで、Settings > Account > Security をクリックします。
  2. Security ページで、SDK Authentication タブを選択します。

アクセスに必要な権限

SDK認証を設定する

アカウントでJWT認証を設定して有効にするには、次の手順に従います。

ステップ1: 前提条件を満たす

JWT認証を開始する前に、次の条件を満たしていることを確認してください。
  1. MoEngage SDKの統合: 開発チームが最新バージョンのMoEngage SDKをアプリケーションに統合していることを確認します。詳細については、次のプラットフォームのドキュメントを参照してください。
  2. 公開鍵と秘密鍵のペア: 以下の技術要件を満たす鍵ペアを生成する必要があります。秘密鍵はサーバー上に安全に保管し、公開鍵はMoEngageダッシュボードにアップロードします。
    秘密鍵は必ず非公開にしてください。アプリやWebサイトで秘密鍵を公開したり、ハードコードしたりしないでください。秘密鍵を知っている人は誰でも、アプリケーションに代わってユーザーになりすましたり、ユーザーを作成したりできます。

ステップ2: 強制モードを選択する

SDKリクエストを検証するための強制モードを選択します。
  1. Secure SDK Requests with JWT セクションで、3つの強制モードのいずれかを選択します。
    • Disabled (Default): これはデフォルトの状態です。認証は実行されません。すべてのSDKリクエストが処理されます。
    • Required (Recommended): MoEngageはすべてのリクエストを厳密に検証し、署名がないか無効なリクエストを拒否します。テストが成功した後にのみ有効にしてください。
      MoEngageでは、Required (Recommended) モードを推奨しています。Required (Recommended) モードを有効にする前に、開発チームが更新済みのアプリをユーザーに完全にロールアウトしていることを確認してください。このモードが有効になると、JWT署名を持たない古いバージョンのアプリから送信されたデータは永久にブロックされます。

ステップ3: 公開鍵を追加する

Required (Recommended) を選択すると、公開鍵を追加するように求められます。
  1. Public key details セクションで、Enter public key ボックスに鍵を貼り付けます。
  2. 鍵を識別しやすくするために、Enter description (optional) ボックスにわかりやすい名前を入力します。

ステップ4: 保存して確認する

最後に、設定を保存して構成を有効にします。
  1. ページの右下隅で、Save をクリックします。
    Update your configuration ダイアログボックスが表示されます。
  2. Confirm をクリックして設定を適用します。 設定が正常に保存されます。

よくある質問

SDK認証に対応していない古いバージョンのアプリから送信されたデータは拒否され、永久に失われます。このモードを有効にする前に、ほとんどのユーザーが最新バージョンのアプリにアップグレードしていることを確認することを強くお勧めします。
統合の問題が発生した場合は、すぐにMoEngageダッシュボードに戻り、強制モードを Disabled に戻すことができます。これにより、チームがサーバー側の問題を解決する間、認証されていないデータを再び収集できるようになります。
この方法の方がセキュリティが高いためです。公開鍵/秘密鍵のペアを使用すると、シークレット(秘密鍵)がサーバーの外に出ることはありません。MoEngageでさえアクセスできないため、誰もユーザーになりすますことができません。
いいえ。SDK認証は、既知のログイン済みユーザーからのリクエストのみを検証するように設計されています。匿名ユーザーからのデータは、認証なしで処理されます。