À l'ère numérique, protéger les informations sensibles est primordial, surtout lorsqu'il s'agit d'API et d'intégrations qui peuvent accéder à une large gamme de données commerciales. Les API Secrets de NetSuite offrent une solution pour gérer en toute sécurité les informations d'identification numériques telles que les hachages, les mots de passe et les clés dans NetSuite. Cet article de blog explique les API Secrets de NetSuite, explore pourquoi ils sont cruciaux et comment les utiliser efficacement dans votre environnement NetSuite pour vos besoins d'API et d'intégration.
Qu'est-ce que les API Secrets de NetSuite ?
Les API Secrets de NetSuite sont une fonctionnalité qui permet de stocker et de gérer en toute sécurité les données sensibles liées aux informations d'authentification numérique telles que les mots de passe et les clés API utilisées pour accéder en toute sécurité aux points de terminaison d'intégration.
Dans la plateforme NetSuite, vous pouvez accéder aux API Secrets sous Setup > Company > API Secrets. API Secrets permet aux utilisateurs de stocker en toute sécurité jusqu'à 1 000 000 de caractères de données sensibles, incluant les mots de passe, les clés et d'autres informations d'authentification critiques. Cela évite la nécessité de stocker des informations sensibles en clair, notamment dans les scripts et les champs d'interface utilisateur de NetSuite comme les paramètres de script, qui peuvent être accessibles par des utilisateurs non autorisés.
L'utilisation des API Secrets dans SuiteScripts est exclusive aux APIs SuiteScript 2.x (scripts serveur uniquement).
Pourquoi Utiliser les API Secrets de NetSuite ?
Les violations de sécurité résultent fréquemment de l'exploitation d'informations d'identification numériques faibles ou mal gérées. Une vulnérabilité courante survient lorsque les données d'intégration sensibles sont stockées en clair ou dans des formats non cryptés dans les champs d'interface utilisateur ou les scripts. La fonctionnalité API Secrets de NetSuite contrecarre ce risque en fournissant un coffre-fort sécurisé pour le stockage de ces informations d'identification. Cela permet aux utilisateurs autorisés de gérer leurs besoins en intégration sans exposer d'informations sensibles en clair.
En utilisant la fonctionnalité API Secrets de NetSuite, les entreprises peuvent minimiser le risque de violations de données par accès non autorisé aux informations d'identification.
Comment Utiliser les API Secrets de NetSuite ?
Créer un Nouvel API Secret :
Accédez à Setup > Company > API Secrets
Cliquez sur le bouton “Create New” (voir capture d'écran ci-dessous).
Entrez un nom pour votre API Secret.
Entrez un ID pour votre API Secret. Essayez de choisir un ID qui décrit l'utilité de votre API Secret. Tout ID que vous entrez sera sauvegardé avec le préfixe “custscript”.
Dans le champ “Password”, entrez le hachage, le mot de passe, la clé ou un autre type de secret que vous souhaitez stocker en toute sécurité.
Réentrez cette information à l'identique dans le champ “Confirm Password”. Veuillez noter que vous ne pourrez pas voir vos mots de passe enregistrés dans les API Secrets par la suite, donc assurez-vous de les stocker en toute sécurité ailleurs si vous prévoyez de potentiellement en avoir besoin à nouveau à l'avenir.
Note : Vous pouvez également télécharger vos mots de passe à partir d'un fichier, en utilisant le champ “File”. Les secrets multi-lignes doivent être chargés à partir d'un fichier.)
Facultativement, vous pouvez cocher la case “Expiration Warning” si vous souhaitez qu'un avertissement s'affiche dans l'interface utilisateur lorsque le secret approche de sa date d'expiration.
Au moment de la rédaction, les guides de NetSuite ne spécifient pas le délai pour cet avertissement, mais nos essais et erreurs ont montré que l'avertissement apparaîtra si la date d'expiration de l'API Secret est inférieure à un mois (voir capture d'écran ci-dessous).
Dans le champ “Description”, entrez une description de cet API Secret. N'utilisez pas d'informations sensibles ou privées, car cela est montré aux utilisateurs qui consultent l'API Secret enregistré et sur la liste des API Secrets.
Cliquez sur l'onglet “Restrictions”.
Dans le champ “Owners”, vous pouvez spécifier les utilisateurs qui peuvent accéder ou modifier cet API Secret une fois qu'il a été enregistré
Vous pouvez facultativement cocher la case “Available To SuiteApp” pour référencer cet API Secret à partir d'une SuiteApp spécifiée.
Alternativement, si vous ne sélectionnez pas “Available To SuiteApp”, vous pouvez sélectionner les utilisateurs autorisés à référencer le secret en utilisant SuiteScript, dans le champ “Restrict to Employees”.
Vous pouvez soit sélectionner la case “Allow for All Scripts” pour permettre à tout script de ce compte d'accéder à cet API Secret en utilisant SuiteScript 2.x. Alternativement, vous pouvez spécifier les scripts qui peuvent accéder à cet API Secret en entrant leurs IDs internes (des enregistrements de Script) dans le champ “Restrict to Scripts”.
Note : Séparez plusieurs IDs de script par des virgules.
Si vous souhaitez autoriser cet API Secret à être envoyé à n'importe quel domaine, cochez la case “Allow For All Domains”. Alternativement, dans le champ “Restrict To Domains”, entrez les domaines vers lesquels les mots de passe de l'API Secret peuvent être envoyés (cela s'applique uniquement à SFTP et HTTPS). Séparez plusieurs domaines par des virgules.
Cliquez sur Save.
Référencer un API Secret dans un SuiteScript 2.x (script serveur) :
Pour utiliser le mot de passe de l'API Secret que vous venez de créer dans un script serveur SuiteScript 2.x, utilisez la fonction https.createSecureString disponible à partir du module ‘N/https’.
Dans l'exemple ci-dessous, la constante testPassword contiendra le mot de passe de l'API Secret au format https.SecureString. Vous et d'autres utilisateurs ne pourrez pas voir le mot de passe passé à testPassword. Tenter d'imprimer le contenu de testPassword (par exemple en utilisant log.debug) ne révélera pas le mot de passe de l'API Secret.
Cependant, vous pouvez utiliser testPassword pour envoyer vos informations d'identification sur des requêtes https. La capture d'écran ci-dessous montre un exemple de ce cas d'utilisation. Veuillez noter que l'API Secret doit soit avoir la case “Allow for All Domains” cochée, soit l'URL utilisée dans la capture d'écran ci-dessous doit avoir été entrée dans le champ “Restrict to Domains”.
/**
* @NApiVersion 2.1
* @NScriptType UserEventScript
*/
define(['N/https'], (https) => {
const afterSubmit = (context) => {
// This assigns the API Secret's password in encrypted format.
const testPassword = https.createSecureString({
input: 'cust_myAPISecret'
});
let options = {};
const headersObj = {
'Content-Type': 'application/json',
'X-API-Key': testPassword
};
const requestBody = {sampleBody: 'This is a test request'};
options = {
requestBody: JSON.stringify(requestBody),
headers: headersObj
};
headers: options.headers,
body: options.requestBody,
url: 'https://mytestdomain.com'
});
};
return {afterSubmit: afterSubmit};
});
De plus, vous pouvez consulter les documentations de NetSuite ci-dessous :
Secrets Management : https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_160216486846.html
https.createSecretKey(options) : https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4418247678.html
Comments