Imposta le autorizzazioni del ruolo

PUT /fapi/v1/organizations/{org_id}/roles/{role_id}/permissions · chiamato dall'host di accesso dell'ambiente

Sostituisce l'insieme di autorizzazioni di un ruolo dell'organizzazione. Possono essere usate solo le autorizzazioni che l'ambiente consente per i ruoli dell'organizzazione, e gli amministratori possono concedere solo le autorizzazioni che possiedono a loro volta. Qui non è possibile creare autorizzazioni né API. Richiede il cookie __Host-idp_session dell'utente autenticato; se il cookie manca, è scaduto o è stato revocato, restituisce 401 unauthenticated. Un'app first-party su un'altra origine può invece inviare il proprio token di accesso alla Front API (Authorization: DPoP <token> con una prova DPoP; vedi Token di accesso alla Front API). L'utente deve essere un membro attivo dell'organizzazione con l'autorizzazione idp_roles:manage. Un utente che non è membro riceve 404 not_found, così l'esistenza dell'organizzazione non viene rivelata; un membro senza l'autorizzazione riceve 403 insufficient_permissions. I ruoli dell'organizzazione devono essere abilitati per l'ambiente e inclusi nel suo piano.

Richiesta

Intestazioni:

Intestazione Obbligatoria Descrizione
Idp-Client sì Identificatore dell'SDK.
Origin sì Deve essere esattamente https://<host di accesso>.
Content-Type con un body application/json.
If-Match no "<version>" del ruolo come letto l'ultima volta; se il ruolo è cambiato nel frattempo, restituisce 412 precondition_failed e nulla cambia.

org_id: l'identificatore dell'organizzazione (org_…). role_id: l'identificatore del ruolo (rol_…).

Body:

Campo Obbligatorio Descrizione
permission_ids sì L'insieme completo, al massimo 100 identificatori di autorizzazione (perm_…); [] rimuove tutte.

Risposta

200 OK con un nuovo ETag; il body è il ruolo (vedi Ottieni un ruolo dell'organizzazione).

Errori

Stato Codice Quando
401 unauthenticated Nessun cookie di sessione valido.
403 origin_not_allowed Origin manca o è errato.
403 insufficient_permissions L'utente non ha idp_roles:manage nell'organizzazione.
403 plan_feature_unavailable Il piano dell'ambiente non include i ruoli dell'organizzazione (feature, required_plan).
403 org_custom_roles_disabled I ruoli dell'organizzazione sono disattivati per l'ambiente.
403 role_not_assignable Il ruolo, o il nuovo insieme, concede un'autorizzazione che l'utente non possiede, oppure l'appartenenza dell'utente stesso include il ruolo.
404 not_found Nessuna organizzazione o ruolo dell'organizzazione per questo utente; un ruolo dell'ambiente, un identificatore sconosciuto, malformato o di un altro utente ottiene la stessa risposta.
409 organization_pending_deletion L'organizzazione è programmata per l'eliminazione.
412 precondition_failed If-Match non indica la versione corrente, oppure il ruolo è cambiato durante l'elaborazione della richiesta.
422 permission_not_allowed Un'autorizzazione non è consentita per i ruoli dell'organizzazione.
422 permission_reserved Un'autorizzazione è riservata alla piattaforma.
422 validation_failed L'elenco non è valido o è troppo lungo.
503 service_unavailable Temporaneamente non disponibile; riprova dopo Retry-After.

Esempio

curl -X PUT https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/roles/rol_01jbz6x8kq3m2n4p5r6s7t8v9w/permissions \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"permission_ids":["perm_01jbz6x8kq3m2n4p5r6s7t8v9b"]}'