Introduzione
In questo documento viene descritto come un amministratore API (Application Programming Interface) può eseguire l'autenticazione in Firepower Management Center (FMC), generare token e utilizzarli per ulteriori interazioni API.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
Componenti usati
- Firepower Management Center che supporta le API REST (versione 6.1 o successiva) con l'API REST abilitata.
- Client REST come Postman, script Python, CURL, ecc.
Premesse
Le API REST sono sempre più diffuse a causa dell'approccio programmabile leggero che i gestori di rete possono utilizzare per configurare e gestire le loro reti. FMC supporta la configurazione e la gestione utilizzando qualsiasi client REST e utilizzando inoltre l'API explorer integrato.
Configurazione
Abilitazione dell'API REST in FMC
Passaggio 1. Passare a Sistema>Configurazione>Preferenze API REST>Abilita API REST.
Passaggio 2. Selezionare la casella di controllo Abilita API REST.
Passaggio 3. Fare clic su Save. Viene visualizzata una finestra di dialogo Save Successful quando l'API REST è abilitata, come mostrato nell'immagine:
Creazione di un utente in FMC
È consigliabile utilizzare l'infrastruttura API in FMC per tenere separati gli utenti dell'interfaccia utente e gli utenti di script. Per informazioni sui vari ruoli utente e sulle linee guida per la creazione di un nuovo utente, fare riferimento alla Guida agli account utente per FMC.
Procedura per richiedere un token di autenticazione
Passaggio 1. Aprire il client API REST.
Passaggio 2. Impostare il client per creare un comando POST URL: https://<management_center_IP_or_name>/api/fmc_platform/v1/auth/generatetoken.
Passaggio 3. Includere il nome utente e la password come intestazione di autenticazione di base. Il corpo POST deve essere vuoto.
Ad esempio, una richiesta di autenticazione tramite 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)
Di seguito è riportato un altro esempio di richiesta di autenticazione tramite 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
Esempio da un client basato su GUI come Postman, come mostrato nell'immagine:
Invio di richieste API successive
Nota: Nell'output vengono visualizzate le intestazioni di risposta e non il corpo della risposta. Il corpo effettivo della risposta è vuoto. Le informazioni importanti dell'intestazione da estrarre sono X-auth-access-token, X-auth-refresh-token e DOMAIN_UUID.
Dopo aver eseguito l'autenticazione a FMC ed estratto i token, per ulteriori richieste API è necessario utilizzare le informazioni seguenti:
- Aggiungere l'intestazione X-auth-access-token <authentication token value> come parte della richiesta.
- Aggiungere le intestazioni X-auth-access-token <authentication token value> e X-auth-refresh-token <refresh token value> nelle richieste di aggiornamento del token.
- Utilizzare Domain_UUID dal token di autenticazione in tutte le richieste REST inviate al server.
Con queste informazioni di intestazione è possibile interagire con il FMC utilizzando le API REST.
Risoluzione dei problemi comuni
- Il corpo della richiesta e della risposta del POST inviato per l'autenticazione è vuoto. È necessario passare i parametri di autenticazione di base nell'intestazione della richiesta. Tutte le informazioni sul token vengono restituite tramite le intestazioni di risposta.
- Quando si utilizza il client REST, è possibile che vengano visualizzati errori correlati al problema del certificato SSL a causa di un certificato autofirmato. È possibile disattivare questa convalida a seconda del client in uso.
- Le credenziali utente non possono essere utilizzate contemporaneamente per entrambe le interfacce API REST e GUI e l'utente verrà disconnesso senza avviso se utilizzato per entrambe.
- I token di autenticazione dell'API REST di FMC sono validi per 30 minuti e possono essere aggiornati fino a tre volte.