Autenticazione
Contit supporta più metodi di autenticazione a seconda del caso d'uso.
Metodi disponibili
| Metodo | Caso d'uso | Header |
|---|---|---|
| Client Credentials (OAuth2) | Server-to-server, operazioni di scrittura | Authorization: Bearer {token} |
| API Key | Accesso pubblico in lettura, integrazioni semplici | X-Api-Key: {key} oppure ?api_key={key} |
| Authorization Code + PKCE | Applicazioni utente (login da browser) | Authorization: Bearer {token} |
| Refresh Token | Sessioni di lunga durata | Rinnovo su /connect/token |
Client Credentials (raccomandato per server-side)
1. Ottieni un access token
curl -X POST https://idp.contit.cloud/connect/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=TUO_CLIENT_ID&client_secret=TUO_CLIENT_SECRET"
Risposta:
{
"access_token": "eyJhbGci...",
"token_type": "Bearer",
"expires_in": 3600
}
2. Usa il token
curl https://api.contit.cloud/contents/mioContentType \
-H "Authorization: Bearer eyJhbGci..."
Durata del token: 1 ora. Usa il grant refresh_token per rinnovarlo senza riautenticarsi.
API Key
Le API Key sono adatte per accesso pubblico in lettura (es. frontend, API pubbliche).
# Via header
curl https://api.contit.cloud/contents/mioContentType \
-H "X-Api-Key: LA_TUA_API_KEY"
# Via query parameter
curl "https://api.contit.cloud/contents/mioContentType?api_key=LA_TUA_API_KEY"
Le API Key non supportano operazioni di scrittura. Per creare o aggiornare contenuti, usa Client Credentials.
Claims personalizzati
Tutti i token rilasciati da Contit contengono claims personalizzati:
| Claim | Descrizione |
|---|---|
contit:workspaceId |
ID del workspace associato al client |
contit:permissions |
Lista separata da virgole: read, write, app.read, app.user |
contit:clientLogActive |
Indica se il logging delle richieste è attivo |
Policy di autorizzazione
| Policy | Permesso richiesto | Usata per |
|---|---|---|
ReadAccess |
read |
Operazioni GET e POST (ricerca) |
WriteAccess |
write |
Operazioni PUT e DELETE |
App.ReadAccess |
app.read |
Endpoint impostazioni app |
App.UserAccess |
app.user |
Operazioni app cross-workspace |