Posez des restrictions liées aux adresses IP et MAC, sur l’exécution de vos API
Vous venez de développer votre API et vous êtes prêts à la déployer. Vous voulez être en mesure de contrôler le(s) serveur(s) sur le(s)quel/(s) cette API pourra être lancée. L’outil Azumaril met à votre disposition un générateur de credfile.
Azumaril est une application de gestion de secret conçue par Axetag pour stocker en toute sécurité des informations sensibles d’une organisation. Elle offre une plateforme centralisée pour gérer toute secrets tels que
clés privées, informations d’identification et fichiers importants. Le but principal d’Azumaril est
fournir des coffres-forts numerique, où les utilisateurs peuvent stocker leurs secrets et garantir leur
confidentialité. La plateform beta est disponible à l’adresse azumaril.axe-tag.fr. Au delà des fonctionnalités qu’elle peut proposer sur sa plateforme, Azumaril vous permettra aussi de choisir les adresses ip et mac des serveurs d’exécution de vos APIs.
Pour commencer, assurez vous d’avoir un compte sur Azumaril. Ensuite, télécharger le binaire credfile disponible ici. Ce binaire peut être exécuté sur le serveur de déploiement de l’API ou pas.
Lancez le et entrez les informations requises:
./credfile

-Entrez votre l’uid ou l’adresse mail de votre compte,
-Entrez votre mot de passe,
-Répondez “y” ou “n” (respectivement “oui” ou “non”) à la question secure with this server’s Ip address ?(y/n) on fonction de si vous voulez sécuriser ou non votre api avec l’adresse ip du serveur sur lequel le binaire est exécuté.
-Si vous voulez rajouter d’autres adresses ip, répondez à la question Add another ip address? (enter to pass) avec l’adresse ip que vous voulez rajouter. Sinon, taper “entrer” pour passer à la suite.
-Répondez “y” ou “n” (respectivement “oui” ou “non”) à la question secure with this server’s mac address ?(y/n) on fonction de si vous voulez sécuriser ou non votre api avec l’adresse mac du serveur sur lequel le binaire est exécuté.
-Si vous voulez rajouter d’autres adresses mac, répondez à la question Add another mac address? (enter to pass) avec l’adresse ip que vous voulez rajouter. Sinon, taper “entrer” pour passer à la suite.
Votre fichier credfile est généré. Un fichier credfile.json apparaît dans le répertoire courant.

Essayez d’afficher son contenu comme ci-dessus, vous verrez qu’il a un format similaire.
Nous allons maintenant voir comment authentifier votre API grâce à ce fichier.
from flask import Flask
import json, requests
app = Flask(__name__)
#Récupérer le contenu du credfile
with open('credfile.json', 'r') as file:
content = file.read()
content = json.loads(content)
payload = str(content)
# Effectuer la requête POST à l'API en passant le contenu du credfile au paramètre credfile_content
url = 'https://azumarillapi.axe-tag.com/api/v1/auth/application/login'
headers = {
'accept': '*/*',
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, json={"credfile_content": payload})
if response.status_code == 200:
pass
else:
print(response.json())
print('Echec de l\'auth')
exit(84)
@app.route('/')
def hello():
return "Bienvenue sur mon API !"
if __name__ == '__main__':
app.run()
Quelque soit le langage de programmation que vous utiliserez, voici les étapes à suivre:
-Récupérez le contenu du credfile et transformez le en chaîne de caractère. Évitez de mettre ce contenu directement dans le code.
-Effectuez une requête POST vers l’url https://azumarillapi.axe-tag.com/api/v1/auth/application/login avec, dans les données de la requête, le champs “credfile_content” avec comme valeur, le contenu, en chaîne de caractère, du credifile.json.
–L’authentification est réussie uniquement si la requête vous renvoie une réponse json et le code http 200. Dans ce cas, cette réponse contiendra le token que votre API pourra utiliser pour effectuer d’autres requêtes vers Azumaril pour par exemple récupérer des données secrètes dans vos coffres forts (variables d’environnement, clés…), ou des fichiers secrets.
–Dans le cas où l’authentification échoue, la requête renverra le code http 400 avec un message:
- unhauhorised ip: Vous exécutez l’API depuis une adresse ip que vous n’aviez pas spécifiée lors de la génération de votre credfile,
- bad uid or email: Aucun compte n’est associé avec l’uid ou l’adresse mail spécifié lors de la génération de votre credfile,
- Authentication failed: le mot de passe spécifié lors de la génération de votre credfile est erroné
Vous pourrez regénérer le credfile en faisant bien attention aux informations que vous entrez. Au delà de 5 échecs d’authentification vous ne pourrez plus authentifier votre application à moins de confirmer votre identité.
Bravo! Non seulement vous venez de rajouter une couche de sécurité à votre API, mais votre application peut aussi accéder à vos données Azumaril.
0 Comments