Introduction
Ce document décrit comment un administrateur d'interface de programmation d'applications (API) peut s'authentifier auprès de Firepower Management Center (FMC), générer des jetons et les utiliser pour toute interaction d'API supplémentaire.
Conditions préalables
Conditions requises
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Components Used
- Firepower Management Center qui prend en charge les API REST (version 6.1 ou ultérieure) avec l'API REST activée.
- Les clients REST comme Postman, les 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 n'importe quel client REST et aussi à l'aide de l'explorateur d'API intégré.
Configuration
Activation de l'API REST sur FMC
Étape 1. Accédez à System>Configuration>REST API Preferences>Enable REST API.
Étape 2. Cochez la case Activer l'API REST.
Étape 3. Cliquez sur Enregistrer, une boîte de dialogue Enregistrer avec succès s'affiche lorsque l'API REST est activée, comme illustré dans l'image :
Création d'un utilisateur sur FMC
Pour utiliser l'infrastructure d'API sur FMC, il est recommandé de séparer les utilisateurs d'interface utilisateur et les utilisateurs de script. Reportez-vous au Guide des comptes d'utilisateurs pour FMC pour connaître les différents rôles d'utilisateur et les directives pour la création d'un nouvel utilisateur.
Étapes pour demander un jeton d'authentification
Étape 1. Ouvrez votre client API REST.
Étape 2. Configurez le client pour qu'il exécute 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 demande 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 tiré d'un client basé sur une interface utilisateur graphique comme Postman, comme l'illustre l'image :
Envoi de demandes d'API ultérieures
Note: 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 la réponse est vide. Les informations d'en-tête importantes qui doivent être extraites sont X-auth-access-token, X-auth-fresh-token et DOMAIN_UUID.
Une fois que vous avez réussi à vous authentifier auprès de FMC et que vous avez extrait les jetons, pour d'autres demandes d'API, vous devez tirer parti des informations suivantes :
- Ajoutez l'en-tête X-auth-access-token <authentication token value> dans le cadre de la demande.
- Ajoutez les en-têtes X-auth-access-token <authentication token value> et X-auth-fresh-token <fresh token value> dans les demandes d'actualisation du jeton.
- Utilisez Domain_UUID à partir du jeton d'authentification dans toutes les requêtes REST adressées au serveur.
Avec ces informations d'en-tête, vous pouvez interagir avec le FMC à l'aide des API REST.
Dépannage des 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 demande. Toutes les informations de jeton sont retournées via les en-têtes de réponse.
- Lors de l'utilisation du client REST, il se peut que des erreurs liées au problème de certificat SSL se produisent en raison d'un certificat auto-signé. Vous pouvez désactiver cette validation en fonction du client que vous utilisez.
- Les informations d'identification utilisateur ne peuvent pas être utilisées simultanément pour les interfaces API REST 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.