Passer au contenu principal
Toutes les collectionsQuestions générales
Un moyen d'empêcher certains appels d'API de S2S
Un moyen d'empêcher certains appels d'API de S2S

S2S, restreindre les API

Jason Liang avatar
Écrit par Jason Liang
Mis à jour il y a plus d’une semaine

Pour certaines raisons de sécurité, vous souhaiterez peut-être restreindre l'accès de votre serveur aux appels d'API S2S limités de brainCloud. Cet article vous montrera comment utiliser brainCloud API Hook pour y parvenir.

Étape 1 : Créer un script de pré-accrochage

  • Créez un script appelé RestrictS2SCalls

    "use strict";

    function main() {
    var response = false;
    bridge.logDebugJson("script input...", data);
    // appliquer des restrictions si cet appel ne provient pas *de l'intérieur* d'un script cloud-code
    if ( !data.message.ccCall) {
    var listtype = data.parms.listtype;
    var services = data.parms.services;
    // la réponse par défaut diffère selon le type de liste
    if (listtype == "whitelist") {
    response = false;
    } else {
    response = true;
    }
    // vérifier si le service est répertorié
    if (services.hasOwnProperty(data.service)) {
    var ops = services[data.service];
    // vérifier les opérations répertoriées dans le service
    if (Object.keys(ops).length > 0) {
    if (ops.hasOwnProperty(data.operation)) {
    response = (listtype == "whitelist");
    }
    } else {
    // si aucune opération, cela signifie tous...
    response = (listtype == "whitelist");
    }
    }
    } else {
    response = true;
    }
    return response;
    }

    main();

Étape 2 : Connecter le script

Ouvrez la page Conception | Code Cloud | Crochets API et pré-accrochez le script que vous avez créé à l’étape précédente avec les paramètres suivants pour S2SDispatcherle service processMessageOperation.

{
"listtype": "blocklist",
"services": {
"user": {
"SYS_GET_PAGE": 1
},
"globalEntity": {
"GET_LIST": 1,
"GET_LIST_COUNT": 1
},
"script": {}
}
}

  • Cet exemple bloquera les appels d'API/d'opération spécifiés à partir des userservices globalEntityet, ainsi que toutes les API du scriptservice. Vous pouvez les modifier à votre guise. Recherchez le service et l'opération à partir de la référence d'API brainCloud . Notez également que vous pouvez modifier le listtypehook to whitelistpour que ce hook n'autorise que les appels à partir des services et opérations répertoriés.

Étape 3 : Test

  • Appelez les API/opérations bloquées depuis brainCloud S2S Explorerou depuis votre serveur S2S. Si les API/opérations sont répertoriées dans votre blocklist, vous devriez obtenir une réponse similaire à la suivante.

    {
    "reason_code": 40639,
    "status_message": "Processing exception: Api call rejected for service: globalEntity - operation: GET_LIST",
    "status": 500
    }
Avez-vous trouvé la réponse à votre question ?