Appelez l'API côté serveur de Fraud Detection pour détecter les risques liés aux appareils, tels que les émulateurs, l'accès root et les environnements multi-instances, lors des opérations commerciales critiques. Cette rubrique présente les paramètres de requête, les paramètres de réponse, les codes d'erreur et l'intégration du SDK pour le service d'identification des risques liés aux appareils (édition Basic et édition Enhanced). Les scénarios applicables incluent la lutte contre la fraude lors des campagnes, la protection de la sécurité des comptes lors de l'inscription et de la connexion, ainsi que la collecte de coupons.
Éditions
L'identification des risques liés aux appareils est disponible en deux éditions pour répondre aux exigences de contrôle des risques propres à différents secteurs et étapes commerciales. Le tableau suivant compare l'édition Basic et l'édition Enhanced.
|
Fonctionnalité |
Édition Basic |
Édition Enhanced |
|
Calcul en temps réel |
Pris en charge |
Pris en charge |
|
Réponse du service |
Tags de risque |
Tags de risque et ID unique de l'appareil |
|
Livraison vers Simple Log Service (SLS) |
Non pris en charge |
Pris en charge. Vous pouvez autoriser la livraison des journaux avec un stockage gratuit pendant un an. |
Sélectionner une édition
Édition Basic : Convient aux scénarios nécessitant uniquement la détermination des tags de risque, comme l'identification si un appareil est un émulateur, s'il dispose d'un accès root ou s'il fonctionne dans un environnement multi-instances.
Édition Enhanced : Convient aux scénarios nécessitant un ID unique d'appareil pour le suivi inter-sessions, ou la livraison des journaux vers SLS pour une analyse approfondie.
Prérequis
Avant de commencer, assurez-vous que les prérequis suivants sont remplis :
L'enregistrement du service pour Fraud Detection est terminé dans la console Alibaba Cloud Management Console.
Un AccessKey ID et un AccessKey secret ont été obtenus. Utilisez un utilisateur RAM pour l'accès à l'API au lieu de la paire de clés AccessKey de votre compte Alibaba Cloud.
L'AccessKey ID est autorisé avec la stratégie
AliyunYundunSAFFullAccess. Pour plus d'informations, reportez-vous à Stratégies système pour SAF.Le kit de développement logiciel (SDK) client est intégré. Pour plus d'informations, reportez-vous à SDK pour Android.
Flux technique
Après avoir intégré le SDK de l'appareil, appelez l'API côté serveur du service d'identification des risques liés aux appareils de Fraud Detection lors des opérations commerciales critiques pour obtenir les résultats de la détection des risques. Un flux unique de détection des risques comprend les étapes suivantes :
Initialisez le SDK : Appelez la méthode d'initialisation au démarrage de l'application. Lors de l'initialisation, le SDK collecte et signale de manière asynchrone les champs de base de l'appareil au serveur. Selon le système et le modèle de l'appareil, ce processus prend généralement 1 à 2 secondes.
Obtenez le token de l'appareil : Une fois l'initialisation terminée, appelez la méthode locale du SDK pour obtenir le deviceToken.
Appelez l'API côté serveur : Transmettez le deviceToken et d'autres champs métier (reportez-vous à la définition spécifique de l'événement). Le modèle de détection cloud calcule et renvoie le résultat de la détection en temps réel.

Paramètres d'entrée
Paramètre Service
Le paramètre Service spécifie l'édition du service. Différentes éditions utilisent les valeurs de paramètre Service suivantes.
|
Édition |
Valeur du paramètre Service |
Fonctions et fonctionnalités |
|
Édition Basic |
|
Prend en charge les tags de risque |
|
Édition Enhanced |
|
Prend en charge l'ID unique de l'appareil, les tags de risque et la livraison des journaux |
ServiceParameters
ServiceParameters contient les paramètres de requête métier au format JSON, correspondant au champ ServiceParameters dans Paramètres communs.
|
Champ |
Description |
Type de données |
Exemple |
Obligatoire |
Remarques |
|
deviceToken |
Le deviceToken obtenu à partir du SDK pour Android |
String |
Tk9SSUQuMS*ZDNmNWY5NzQxOW1oLTE2MjI2NDIyNjc4MzAtZGZWFhdDgzMTBLUlVSU0VoWWVNcW82ZkZlZWmp3PT0= |
Oui |
Dans des conditions normales, la longueur du token est d'environ 600 octets. En cas de mauvaises conditions réseau, la longueur du token dépasse 2,5 Ko. Si un grand nombre de tokens longs sont générés, vérifiez d'abord si le réseau client est stable, puis assurez-vous que l'intervalle entre les appels SDK |
|
deviceTokenBizId |
L'ID unique spécifique au métier. |
String |
aes9ad0356da4df8c1f18bc349296d60 |
Non |
Transmettez ce bizId lors de l'obtention du deviceToken à partir du SDK client pour lier le deviceToken à l'ID unique spécifique au métier. Lors de l'interrogation des résultats côté serveur, transmettez les deux valeurs ensemble. Assurez-vous que le bizId du client correspond à l'ID du serveur pour empêcher le remplacement du deviceToken. |
Paramètres de réponse
Les paramètres de réponse du service d'identification des risques liés aux appareils incluent l'ID de l'appareil et les tags de risque de l'appareil.
{
"code": 200,
"message": "OK",
"data": {
"extend": "71d4ac517192c5309400548bf0d5357b", // Unique device ID
"tags": "is_rooted,is_emulator" // Device risk tags
},
"requestId": "AF17EC99-22AB-311E-1397-BCF37EC78C81"
}
ID de l'appareil
Le champ extend dans l'objet Data contient l'ID unique de l'appareil. Seule l'édition Enhanced renvoie ce champ.
Tags de risque de l'appareil
Le champ tags dans l'objet Data contient les résultats de la détection des risques. Si plusieurs tags sont renvoyés, ils sont séparés par des virgules. Le tableau suivant répertorie certains tags courants.
|
Tag de risque |
Description |
|
is_emulator |
L'appareil est suspecté d'être un émulateur. |
|
is_rooted |
L'appareil est suspecté d'avoir un accès root. |
|
is_virtual |
L'appareil est suspecté de fonctionner dans un environnement multi-instances. |
|
... |
Connectez-vous à la console Fraud Detection et consultez davantage de descriptions de tags d'appareil sous Risk tag descriptions. |
Pour plus d'informations, reportez-vous à Paramètres de réponse communs.
Codes d'erreur
|
Code |
Description |
|
200 |
La requête a réussi. |
|
400 |
La valeur de ServiceParameters (paramètres d'événement) n'est pas valide. |
|
402 |
Le QPS dépasse le quota acheté. La requête est limitée. |
|
403 |
Autorisations insuffisantes. Le service n'est pas activé ou a expiré. |
|
404 |
La valeur de Service (paramètre de service) n'est pas valide. |
|
500 |
Une erreur interne du serveur s'est produite. |
Intégration du SDK
L'exemple suivant utilise le SDK Java. Pour les autres langages de programmation, reportez-vous à Effectuer des appels d'API à l'aide d'un SDK.
Dépendances Maven
Ajoutez la dépendance Java Maven suivante :
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-saf</artifactId>
<version>3.0.1</version>
</dependency>
Arbitrage des dépendances recommandé :
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<optional>true</optional>
<version>4.5.25</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.68.noneautotype</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>io.opentracing</groupId>
<artifactId>opentracing-util</artifactId>
<version>0.31.0</version>
</dependency>
Code source du SDK Java
// The AccessKey pair of an Alibaba Cloud account has permissions on all API operations.
// Use a RAM user for API access and daily O&M.
// Do not save the AccessKey ID and AccessKey secret in your project code to prevent AccessKey leakage,
// which may compromise the security of all resources under your account.
// This example uses environment variables to read the RAM user AccessKey for API authentication.
// Before running this code, make sure the following environment variables are configured:
// ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET.
// Create and initialize a DefaultAcsClient instance. Initialize only once.
DefaultProfile profile = DefaultProfile.getProfile(
"<REGION-ID>", // Region ID. ap-southeast-1 is recommended outside China. Must match the client SDK reporting domain.
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // RAM user AccessKey ID
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") // RAM user AccessKey secret
);
// HTTP connection pool configuration
HttpClientConfig clientConfig = HttpClientConfig.getDefault();
clientConfig.setMaxRequestsPerHost(6);
clientConfig.setMaxIdleConnections(20);
// HTTP timeout configuration
clientConfig.setReadTimeoutMillis(3000);
profile.setHttpClientConfig(clientConfig);
IAcsClient client = new DefaultAcsClient(profile);
// Send the request
ExecuteRequestSGRequest executeRequestRequest = new ExecuteRequestSGRequest();
// To specify a custom version number, modify it here. Default: 2019-05-21
executeRequestRequest.setVersion("2019-05-21");
// Specify the request method
executeRequestRequest.setSysMethod(MethodType.POST);
// Specify the protocol. Currently, only HTTPS is supported.
executeRequestRequest.setSysProtocol(ProtocolType.HTTPS);
// Product code of the device risk service: device_risk_intl or device_risk_pro_intl
String service = "device_risk_pro_intl";
executeRequestRequest.setService(service);
// Business parameters. Set only the parameters you need.
Map<String, Object> serviceParams = new HashMap<String, Object>();
// deviceToken is required.
serviceParams.put("deviceToken", "U0******************");
executeRequestRequest.setServiceParameters(JSONObject.toJSONString(serviceParams));
executeRequestRequest.setAcceptFormat(FormatType.JSON);
try {
ExecuteRequestSGResponse httpResponse = client.getAcsResponse(executeRequestRequest);
System.out.println("httpResponse:" + JSONObject.toJSONString(httpResponse));
} catch (Exception e) {
e.printStackTrace();
}
Vérifier le résultat de l'appel
Après avoir envoyé une requête via le SDK, vérifiez l'intégration en contrôlant les points suivants :
Une réponse avec
Code=200indique que la requête a réussi.L'objet
Datacontient le champtags, ce qui confirme que le résultat de la détection des risques liés à l'appareil est renvoyé.
Régions prises en charge
Le paramètre REGION-ID doit correspondre au domaine de rapport du SDK de risque lié aux appareils. ap-southeast-1 est recommandé.
|
Région |
Description |
|
ap-southeast-1 |
Singapour. Recommandé. |
|
cn-hongkong |
Chine (Hong Kong) |
|
us-west-1 |
États-Unis (Silicon Valley) |
|
eu-central-1 |
Allemagne (Francfort) |
FAQ
Pour les questions courantes concernant l'intégration du service de risque lié aux appareils, reportez-vous à FAQ sur l'intégration du SDK de détection de fraude sur appareil.