すべてのプロダクト
Search
ドキュメントセンター

Fraud Detection:HarmonyOS 向けデバイス不正利用検知 SDK

最終更新日:Oct 22, 2025

このドキュメントでは、HarmonyOS 向けデバイス不正利用検知 SDK の統合方法について説明します。

前提条件

  • デバイス不正利用検知 SDK には、HarmonyOS Next (0.0.71) 以降と最小 API バージョン 12 が必要です。

  • シミュレーターでのデバッグはサポートされていません。

  • バイトコードのパッケージングのみがサポートされています。

  • SDK の統合がプライバシー規則に準拠していることを確認するには、Alibaba Cloud の公式 Web サイトでリリースされている最新バージョンの SDK を使用する必要があります。これにより、プライバシーの漏洩を防ぎ、お客様のビジネスがコンプライアンス規制に準拠していることを保証します。デバイス不正利用検知を使用する前に、個人情報の処理に関する規制と不正利用検知 SDK のプライバシーポリシー

権限

検出機能を強化するために、SDK には次の権限が必要です。

権限

必須

説明

ohos.permission.INTERNET

はい

SDK がインターネットに接続できるようにします。SDK が期待どおりに実行されるには、インターネットに接続する必要があります。

ohos.permission.GET_NETWORK_INFO

はい

SDK がネットワークステータス情報を取得できるようにします。SDK はネットワークステータスに基づいて、より良いサービスを提供できます。

ohos.permission.STORE_PERSISTENT_DATA

いいえ (デバイス不正利用検知 SDK にこの権限を付与することをお勧めします。)

アプリが永続データを保存できるようにします。これにより、デバイスフィンガープリントの安定性が向上します。

ohos.permission.DISTRIBUTED_DATASYNC

いいえ (デバイス不正利用検知 SDK にこの権限を付与することをお勧めします。)

SDK がマルチデバイス協調を実装できるようにします。これにより、セキュリティが強化されます。

ohos.permission.APP_TRACKING_CONSENT

いいえ (デバイス不正利用検知 SDK にこの権限を付与することをお勧めします。)

SDK が広告主識別子 (IDFA) に関する情報を取得できるようにします。これにより、デバイス ID の安定性が向上します。

HarmonyOS SDK のダウンロードと構成

  1. HarmonyOS SDK をダウンロードして展開します。SDK は標準の HarmonyOS .har パッケージです。

  2. .har ファイルを、プロジェクト内の .har パッケージが保存されているディレクトリにコピーします。公式の HarmonyOS ドキュメントに従い、libs ディレクトリに配置することをお勧めします。次の例に示すように、プロジェクトのルートディレクトリにある oh-package.json5 ファイルに、認証パッケージのバージョン依存関係ツリー管理を追加します。

    image.png

  3. プロジェクトの oh-package.json5 ファイルを変更し、次の例に示すように、dependencies セクションに AliyunDevice 依存関係パッケージを追加します。

    {
      "dependencies": {
        "aliyundevice": "file:../libs/HarmonyOS-AliyunDevice-xxx.har"
      }
    }

API 操作

HarmonyOS SDK には、初期化 (initWithOptions) とトークン取得 (getDeviceToken) の 2 つのコア API 操作が含まれています。

SDK の初期化

アプリの起動時にできるだけ早くこの関数を呼び出して、SDK の内部初期化を完了する必要があります。

  • 関数構文

    export class SecurityInitListener {
      // code パラメーターは操作のステータスコードを指定します。
      onInitFinish(code: number): void {}
    }
    
    public initWithOptions(ctx: Context, 
                    userAppKey: string, 
                    options: Map<string, string>,
                    securityInitListener: SecurityInitListener): void;
  • パラメーター

    ctx: 現在の Ability の Context。

    userAppKey: ユーザー ID の識別子。コンソールから取得できます。

    options: オプションの初期化パラメーター。デフォルト値は null です。次の表に、オプションのパラメーターを示します。

    フィールド

    説明

    IPv6

    デバイス情報を報告するために IPv6 ドメイン名を使用するかどうかを指定します。有効な値:

    0 (デフォルト): IPv4 ドメイン名が使用されます。

    1: IPv6 ドメイン名が使用されます。

    "1"

    securityInitListener: Android 向けデバイスフィンガープリント SDK の初期化結果のリスナー。コールバック通知に基づいて初期化が成功したかどうかを確認できます。code パラメーターの値の範囲の詳細については、この Topic の「ステータスコード」セクションをご参照ください。

  • 戻り値

    なし。

クライアントトークンの取得

クライアントトークンを取得して独自のサーバーに送信します。次に、サーバー側のデバイスリスク検出イベントと返されたパラメーターを通じて、クライアントのデバイスリスク情報を取得します。

  • 関数

    export class SecurityToken {
      /**
       * 結果コード。意味については SecurityCode を参照してください
       */
      public code:number = 0;
    
      /**
       * SDK によって返される deviceToken
       */
      public token:string = "";
    }
    
    public getDeviceToken(): SecurityToken
  • 応答

    値は SecurityToken クラスです。

    code: 操作のステータスコード。このパラメーターは、操作が成功したかどうかを示します。code パラメーターの値の範囲の詳細については、この Topic の「ステータスコード」セクションをご参照ください。

    token: 後続のビジネスで Alibaba Cloud デバイス不正利用検知インターフェイスをクエリするために使用できるトークン文字列情報。

    重要
    1. データレポートが遅延する可能性があるため、initWithOptions インターフェイスと getDeviceToken インターフェイスの時間間隔が 2 秒以上であることを確認してください。

    2. 良好なネットワーク環境では、トークン文字列の長さは約 1 KB です。ネットワーク環境が悪い場合、返される長さは約 2 KB です。

    3. 初期化インターフェイスはメインスレッドで、アプリケーションのライフサイクル中に 1 回だけ呼び出すことをお勧めします。

ステータスコード

SecurityCode

コード

説明

SC_SUCCESS

10000

データ収集は成功しました。

SC_NOT_INIT

10001

データ収集は失敗しました。

SC_NOT_PERMISSION

10002

1 つ以上の基本的な HarmonyOS 権限が SDK に付与されていません。

SC_UNKNOWN_ERROR

10003

不明なシステムエラーが発生しました。

SC_NETWORK_ERROR

10004

ネットワークエラーが発生しました。

SC_NETWORK_ERROR_EMPTY

10005

ネットワークエラーが発生し、戻り値が空の文字列です。

SC_NETWORK_ERROR_INVALID

10006

応答のフォーマットが無効です。

SC_PARSE_SRV_CFG_ERROR

10007

システムがサーバー設定の解析に失敗しました。

SC_NETWORK_RET_CODE_ERROR

10008

ゲートウェイがエラーを返しました。

SC_APPKEY_EMPTY

10009

appKey パラメーターが空のままです。

SC_PARAMS_ERROR

10010

その他のパラメーターエラーが発生しました。

SC_FGKEY_ERROR

10011

システムがキーの計算に失敗しました。

SC_APPKEY_ERROR

10012

SDK のバージョンが appkey のバージョンと一致しません。

難読化構成

API 操作が難読化されて機能異常が発生するのを防ぐために、.har パッケージ内の obfuscation.txt ファイルの構成を確認してください。このファイルを削除しないでください。

サンプルコード

デバイス不正利用検知 SDK を初期化します。アプリの起動時にできるだけ早く initWithOptions インターフェイスを呼び出す必要があります。

ALIYUN_APPKEY パラメーターはユーザー ID を識別するために使用され、Alibaba Cloud 管理コンソールの「デバイスアプリ管理」から取得できます。

SecurityDevice.getInstance().initWithOptions(getContext(), 
                             this.ALIYUN_APPKEY, null, null);

アカウントの受付やプロモーション活動など、不正利用検知が必要なビジネスシナリオでは、クライアントのトークンを取得し、そのトークンをアプリケーションサーバーに送信する必要があります。initWithOptions インターフェイスと getDeviceToken インターフェイスの時間間隔が 2 秒以上であることを確認してください。

重要

SDK バージョン 2.0.0 以降、getDeviceToken は同期呼び出しに変更されました。古い非同期コードは調整する必要があります。

let tokenObj: SecurityToken = SecurityDevice.getInstance().getDeviceToken();
if (tokenObj.code == SecurityCode.SC_SUCCESS) {
  console.log("Aliyun Token: " + tokenObj.token);
} else {
  console.log("Aliyun Code: " + tokenObj.code);
}

完全なコード:

import { SecurityCode, SecurityToken, SecurityDevice } from 'aliyundevice';

@Entry
@Component
struct Index {
  @State message: string = 'Aliyun Device';
  @State ALIYUN_APPKEY: string = "XXX";

  build() {
    Row() {
      Column() {
        Button(this.message)
          .fontSize(18)
          .fontWeight(FontWeight.Bold)
          .onClick((event: ClickEvent) => {
            // SDK を初期化する
            SecurityDevice.getInstance().initWithOptions(getContext(), this.ALIYUN_APPKEY, null, null);

            // 初期化の 2 秒後に操作を呼び出してトークンを取得する。
            setTimeout(() => {
              let tokenObj: SecurityToken = SecurityDevice.getInstance().getDeviceToken();
              if (tokenObj.code == SecurityCode.SC_SUCCESS) {
                console.log("Aliyun Token: " + tokenObj.token);
              } else {
                console.log("Aliyun Code: " + tokenObj.code);
              }
            }, 2000);
          })
          .margin({ top: 10 })
      }
      .width('100%')
    }
    .height('100%')
  }
}

不正利用検知 API の呼び出し

リクエストを構築し、不正利用検知 API を呼び出すには、次のドキュメントをご参照ください。