Le API Keys rappresentano un metodo di autenticazione alternativo ai token PASETO, ideale per integrazioni programmatiche con il nostro servizio. Ogni API Key è associata a un utente e può avere permessi specifici (scopes).
Le API Keys hanno il seguente formato:
npf_<prefisso>_<valore-segreto>
Esempio:
npf_a1b2c3d4_e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6
Per generare una nuova API Key, effettua una richiesta POST:
POST /api/v1/api-keys
{
"name": "Nome della chiave",
"scopes": ["scope1", "scope2"],
"expiresIn": 365
}
Campi:
name: Nome descrittivo dell'API Key (obbligatorio)scopes: Array di permessi associati alla chiave (opzionale)expiresIn: Durata in giorni della validità della chiave (opzionale, default: 365 giorni){
"status": "success",
"data": {
"id": "uuid-della-chiave",
"name": "Nome della chiave",
"key": "npf_prefisso_chiavesegreta",
"prefix": "npf_prefisso",
"scopes": ["scope1", "scope2"],
"expiresAt": "2023-12-31T23:59:59.999Z",
"createdAt": "2023-01-01T00:00:00.000Z"
},
"message": "API Key creata con successo. Salva la chiave in un posto sicuro, non sarà più visibile dopo."
}
key) sarà visibile solo in questa risposta e non potrà essere recuperato in seguito. Assicurati di salvarlo in un luogo sicuro.Le API Keys possono essere fornite in uno dei seguenti modi:
Authorization: Bearer npf_prefisso_chiavesegreta
oppure
Authorization: ApiKey npf_prefisso_chiavesegreta
X-API-Key: npf_prefisso_chiavesegreta
https://api.example.com/api/v1/endpoint?api_key=npf_prefisso_chiavesegreta
GET /api/v1/api-keys
Questa richiesta restituisce tutte le API Keys associate all'utente corrente (senza il valore completo della chiave, solo il prefisso per sicurezza).
Risposta:
{
"status": "success",
"data": [
{
"id": "uuid-1",
"name": "Chiave Produzione",
"prefix": "npf_prefisso1",
"scopes": ["organizations:read", "inpforms:read"],
"expiresAt": "2024-12-31T23:59:59.999Z",
"createdAt": "2024-01-01T00:00:00.000Z",
"active": true
}
]
}
DELETE /api/v1/api-keys/:id
Dove :id è l'ID dell'API Key da revocare.
POST /api/v1/api-keys/:id/deactivate
Questa operazione disattiva temporaneamente una API Key senza eliminarla dal sistema. Può essere utile quando si desidera sospendere un'integrazione senza perdere completamente la chiave.
Le API Keys utilizzano un sistema di scope per controllare i permessi. Gli scope seguono il formato <risorsa>:<operazione>.
Per la documentazione pubblica, l'unico scope disponibile è:
organizations:read - Lettura e ricerca organizzazioni (pubblico){
"name": "My API Key",
"scopes": ["organizations:read"]
}
Se non specifichi scope, viene assegnato automaticamente lo scope di default sicuro:
{
"name": "My API Key"
}
Risultato - Scope Default:
{
"scopes": ["organizations:read"]
// Scope read-only sicuro assegnato automaticamente
}