Ruota il segreto di un'app
Un nuovo segreto, mostrato una volta; il vecchio smette subito.
/v1/developer/accounts/{n}/oidc-clients/{id}/secret- Accesso
- Richiesta firmata
- Client
- Client locale o server
Parametri#
| Nome | Posizione | Significato |
|---|---|---|
nObbligatorio | Percorso | La scheda che possiede le app: una persona, o un'organizzazione attraverso un proprietario accettato. |
idObbligatorio | Percorso | Il client_id dell'app, `veil_app_` e 32 caratteri hex. |
Questa chiamata richiede anche le intestazioni comuni di firma, nonce e timestamp. Prepara e firma request.json prima di usare l’esempio. Firma delle richieste
Esempi di richiesta#
curl -fsS -X POST \
-H "X-Public-Key: $PUBLIC_KEY" -H "X-Signature: $REQUEST_SIGNATURE" \
--json @request.json "https://veil.rip/v1/developer/accounts/1/oidc-clients/veil_app_0123456789abcdef0123456789abcdef/secret"Risposta#
{client, secret}.
| Campo | Tipo | Significato |
|---|---|---|
client | OidcClient | L'app. |
secret | string | veil_secret_…, una volta. |
Apri un oggetto annidato per leggerne i campi. I tipi con null ammettono un valore null; i campi optional possono essere assenti. Gli altri campi sono presenti nell’oggetto.
App OidcClient
| Campo | Tipo | Significato |
|---|---|---|
id | string | client_id. |
name | string | Il nome che la pagina di consenso mostra. |
site | string | null | Il sito https dell'app. |
redirectUris | array<string> | Redirect URI esatti. |
postLogoutRedirectUris | array<string> | Dove /oidc/logout può mandare il browser. |
type | string | public o confidential. |
authMethod | string | none, client_secret_basic o private_key_jwt. |
idTokenAlg | string | EdDSA o ES256. |
refresh | boolean | Se l'app riceve i refresh token. |
logo | string | null | L'indirizzo del logo, con ?v= il suo hash. |
verified | object | null | {domain}: la scheda titolare prova il dominio del sito e di ogni redirect URI https. |
owner | object | null | {n, name, type, url} della scheda titolare; null per un'app registrata senza scheda. |
dynamic | boolean | Registrata con POST /oidc/register. |
createdAt | string | ISO 8601 UTC. |
expiresAt | string | null | La fine di un'app dinamica, 30 giorni dopo la registrazione. |
lastUsedAt | string | null | Ultimo accesso o token. |
jwks | object | null | Le chiavi pubbliche di un'app private_key_jwt. |
Intestazioni della risposta#
| Intestazione | Valore | Significato |
|---|---|---|
Content-Type | application/json | JSON, anche per gli errori. |
Cache-Control | no-store | Privata: mai in una cache. |
Errori#
Gli errori API restituiscono un oggetto error. Usa error.code nella logica del programma; error.message è un testo inglese per le persone e può cambiare. Guida a risposte ed errori
| HTTP | Codice | Significato e cosa fare |
|---|---|---|
| 400 | invalid_json | Il corpo non è un oggetto JSON, contiene chiavi duplicate o dati finali. Invia un solo oggetto JSON valido con |
| 400 | invalid_parameter | Un campo del percorso, della query o del corpo manca, è malformato o fuori intervallo. Correggi il campo indicato in |
| 403 | identity_banned | La scheda che agisce è sospesa dallo staff di Veil. Attendi la fine della restrizione o chiedi allo staff di riesaminarla. |
| 403 | key_mismatch | La chiave di firma non è autorizzata per questa scheda o operazione. Usa una chiave di dispositivo attiva con il ruolo di titolare o membro richiesto. |
| 404 | not_found | La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati. Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati. |
| 409 | oidc_no_secret | Questa app si autentica senza segreto (pubblica o private_key_jwt). Non c'è niente da ruotare. Per cambiare le chiavi di jwks registra una nuova app. |
Errori comuni delle richieste
| HTTP | Codice | Significato e cosa fare |
|---|---|---|
| 400 | invalid_nonce | Il nonce della richiesta firmata ha un formato errato. Genera un nuovo nonce da 16 a 128 caratteri usando lettere, cifre, _ o -. |
| 400 | invalid_signature_alg |
Usa un algoritmo di firma supportato e la codifica corretta per chiave e firma. |
| 400 | invalid_timestamp | Il timestamp della richiesta firmata non è espresso in millisecondi Unix. Usa un timestamp Unix intero in millisecondi e firma la richiesta corretta. |
| 401 | invalid_signature | La firma della richiesta HTTP non è valida. Firma metodo, percorso e byte del corpo esatti, senza modificarli dopo. |
| 401 | missing_signature | La richiesta richiede una firma del dispositivo e le intestazioni mancano o non sono leggibili. Invia |
| 401 | stale_timestamp | Il timestamp firmato è fuori dalla finestra temporale ammessa. Confronta l’intestazione Date del server con il tuo orologio, poi genera nuovi nonce, timestamp e firma. |
| 403 | key_banned | La chiave del dispositivo che firma è sospesa dallo staff di Veil. Usa una chiave attiva autorizzata o chiedi allo staff di riesaminare la restrizione. |
| 409 | replayed_nonce | La chiave di firma ha già usato questo nonce. Controlla se la richiesta precedente è riuscita prima di crearne una nuova firmata. |
| 429 | rate_limited | È stato superato un limite anonimo, delle richieste firmate o della chiave API. Attendi almeno i secondi indicati da |
| 500 | internal_error | Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti. Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata. |
| 503 | busy | L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database. Attendi i secondi indicati da |