Introduction
Ce document décrit comment un administrateur d'interface de programmation d'application (API) peut s'authentifier auprès de Firepower Management Center (FMC), générer des jetons et les utiliser pour d'autres interactions API.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Composants utilisés
- Firepower Management Center qui prend en charge les API REST (version 6.1 ou ultérieure) avec l'API REST activée.
- REST clients comme Postman, scripts Python, CURL, etc.
Informations générales
Les API REST sont de plus en plus populaires en raison de l'approche programmable légère que les administrateurs réseau peuvent utiliser pour configurer et gérer leurs réseaux. FMC prend en charge la configuration et la gestion à l’aide de tout client REST et de l’explorateur d’API intégré.
Configurer
Activation de l'API REST sur FMC
Étape 1. Accédez à System>Configuration>REST API Preferences>Enable REST API.
Étape 2. Cochez la case Enable REST API.
Étape 3. Cliquez sur Save, une boîte de dialogue Save Successful s’affiche lorsque l’API REST est activée, comme illustré dans l’image :

Création d'un utilisateur sur FMC
La meilleure pratique d’utilisation de l’infrastructure d’API sur FMC consiste à séparer les utilisateurs d’interface utilisateur et les utilisateurs de script. Reportez-vous au Guide des comptes d'utilisateurs pour FMC pour la compréhension des différents rôles d'utilisateur et les directives pour créer un nouvel utilisateur.
Étapes pour demander un jeton d'authentification
Étape 1. Ouvrez votre client REST API.
Étape 2. Configurez le client pour exécuter une commande POST, URL : https://<management_center_IP_or_name>/api/fmc_platform/v1/auth/generatetoken.
Étape 3. Incluez le nom d’utilisateur et le mot de passe comme en-tête d’authentification de base. Le corps POST doit être vide.
Par exemple, une requête d'authentification utilisant Python :
import requests
url = "https://10.10.10.1//api/fmc_platform/v1/auth/generatetoken"
payload = {}
headers = {
'Authorization': 'Basic Y2lzY291c2VyOmNpc2NwYXBpdXNlcg=='
}
response = requests.request("POST", url, headers=headers, data = payload, verify=False)
print(response.headers)
Autre exemple de demande d'authentification utilisant CURL :
$ curl --request POST 'https://10.10.10.1/api/fmc_platform/v1/auth/generatetoken' --header 'Authorization: Basic Y2lzY291c2VyOmNpc2NwYXBpdXNlcg==' -k -i
HTTP/1.1 204 204
Date: Tue, 11 Aug 2020 02:54:06 GMT
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-store
Accept-Ranges: bytes
Vary: Accept-Charset,Accept-Encoding,Accept-Language,Accept
X-auth-access-token: aa6f8326-0a0c-4f48-9d85-7a920c0fdca5
X-auth-refresh-token: 674e87d1-1572-4cd1-b86d-3abec04ca59d
USER_UUID: fc47b914-8121-11ea-ac18-f0428d0155cd
DOMAIN_ID: 111
DOMAIN_UUID: e276abec-e0f2-11e3-8169-6d9ed49b625f
global: e276abec-e0f2-11e3-8169-6d9ed49b625f
DOMAINS: [{"name":"Global","uuid":"e276abec-e0f2-11e3-8169-6d9ed49b625f"}]
X-Frame-Options: SAMEORIGIN
X-UA-Compatible: IE=edge
X-Permitted-Cross-Domain-Policies: none
X-XSS-Protection: 1; mode=block
Referrer-Policy: same-origin
Content-Security-Policy: base-uri 'self'
X-Content-Type-Options: nosniff
Exemple à partir d'un client basé sur une interface graphique utilisateur comme Postman, comme illustré dans l'image :

Envoi des demandes API suivantes
Remarque : Ce que vous voyez dans le résultat sont les en-têtes de réponse et non le corps de réponse. Le corps de réponse réel est vide. Les informations d'en-tête importantes qui doivent être extraites sont X-auth-access-token, X-auth-refresh-token, et DOMAIN_UUID.
Une fois que vous vous êtes authentifié avec succès auprès de FMC et que vous avez extrait les jetons, vous devez exploiter les informations ci-dessous pour d'autres demandes d'API :
- Ajoutez l'en-tête X-auth-access-token <authentication token value> dans le cadre de la requête.
- Ajoutez les en-têtes X-auth-access-token <authentication token value> et X-auth-refresh-token <refresh token value> dans les demandes d'actualisation du jeton.
- Utilisez le Domain_UUID du jeton d'authentification dans toutes les requêtes REST adressées au serveur.
Grâce à ces informations d'en-tête, vous pouvez interagir avec le FMC à l'aide des API REST.
Résoudre les problèmes courants
- Le corps de la requête et de la réponse du POST envoyé pour l'authentification est vide. Vous devez passer les paramètres d'authentification de base dans l'en-tête de la demande. Toutes les informations de jeton sont renvoyées via les en-têtes de réponse.
- Lors de l'utilisation du client REST, vous pouvez voir des erreurs liées au problème de certificat SSL en raison d'un certificat auto-signé. Vous pouvez désactiver cette validation en fonction du client que vous utilisez.
- Les informations d'identification de l'utilisateur ne peuvent pas être utilisées simultanément pour les interfaces REST API et GUI, et l'utilisateur sera déconnecté sans avertissement s'il est utilisé pour les deux.
- Les jetons d'authentification de l'API REST FMC sont valides pendant 30 minutes et peuvent être actualisés jusqu'à trois fois.