Introducción
Este documento describe cómo un administrador de la interfaz de programación de aplicaciones (API) puede autenticarse en Firepower Management Center (FMC), generar tokens y utilizarlos para cualquier interacción de API adicional.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
Componentes Utilizados
- Firepower Management Center que admite API REST (versión 6.1 o superior) con API REST habilitada.
- Clientes REST como Postman, scripts Python, CURL, etc.
Antecedentes
Las API REST son cada vez más populares debido al enfoque programable ligero que los administradores de red pueden utilizar para configurar y gestionar sus redes. FMC admite la configuración y la gestión mediante cualquier cliente REST y también mediante el explorador API integrado.
Configurar
Habilitación de la API REST en FMC
Paso 1. Vaya a System > Configuration > REST API Preferences > Enable REST API API.
Paso 2. Marque la casilla Enable REST API .
Paso 3. Haga clic en Guardar, se muestra un cuadro de diálogo Guardar exitoso cuando se habilita la API REST, como se muestra en la imagen:
Creación de un usuario en FMC
Como práctica recomendada para utilizar la infraestructura de la API en FMC, es mantener separados a los usuarios de la interfaz de usuario y a los usuarios de secuencias de comandos. Refiérase a la Guía de Cuentas de Usuario para FMC para conocer las diferentes funciones de usuario y las pautas para crear un nuevo usuario.
Pasos para solicitar un token de autenticación
Paso 1. Abra su cliente de API REST.
Paso 2. Configure el cliente para que realice un comando POST, URL: https://<management_center_IP_or_name>/api/fmc_platform/v1/auth/generatetoken.
Paso 3. Incluya el nombre de usuario y la contraseña como un encabezado de autenticación básico. El cuerpo POST debe estar vacío.
Por ejemplo, una solicitud de autenticación mediante 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)
Otro ejemplo de una solicitud de autenticación mediante 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
Ejemplo de un cliente basado en GUI como Postman, como se muestra en la imagen:
Envío de solicitudes API posteriores
Nota: Lo que se ve en el resultado son los encabezados de respuesta y no el cuerpo de respuesta. El cuerpo de respuesta real está en blanco. La información importante del encabezado que debe extraerse es X-auth-access-token, X-auth-refresh-token y DOMAIN_UID.
Una vez que se haya autenticado correctamente en FMC y se hayan extraído los tokens, para obtener más solicitudes de API debe aprovechar la siguiente información:
- Agregue el encabezado X-auth-access-token <authentication token value> como parte de la solicitud.
- Agregue los encabezados X-auth-access-token <authentication token value> y X-auth-refresh-token <refresh token value> en las solicitudes para actualizar el token.
- Utilice el valor Domain_UID del token de autenticación en todas las solicitudes REST al servidor.
Con esta información de encabezado, puede interactuar con el FMC con las API REST.
Resolución de problemas comunes
- El cuerpo de solicitud y respuesta del POST enviado para la autenticación está en blanco. Debe pasar los parámetros básicos de autenticación en el encabezado de solicitud. Toda la información del token se devuelve a través de los encabezados de respuesta.
- Al utilizar el cliente REST, puede ver errores relacionados con el problema del certificado SSL debido a un certificado autofirmado. Puede desactivar esta validación en función del cliente que esté utilizando.
- Las credenciales de usuario no se pueden utilizar para las interfaces REST API y GUI simultáneamente, y el usuario se desconectará sin previo aviso si se utiliza para ambas.
- Los tokens de autenticación de la API FMC REST son válidos durante 30 minutos y se pueden actualizar hasta tres veces.