Direkte Rollen eines Benutzers ersetzen

PUT /v1/users/{user_id}/roles · Berechtigung users:write

Ersetzt die direkten Umgebungsrollen des Benutzers durch role_ids (die vollständige Menge, höchstens 50; ein leeres Array entfernt alle). Organisationsrollen können nicht direkt zugewiesen werden; weisen Sie sie über eine Organisationsmitgliedschaft zu. Das erneute Schreiben derselben Menge ändert nichts. Eine Änderung markiert die Refresh-Token-Familien des Benutzers mit roles_changed, sodass der nächste Refresh die neuen Rollen enthält, und wird als user.updated mit change=roles protokolliert. Enthält die Menge eine privilegierte Rolle (is_privileged), egal ob neu hinzugefügt oder beibehalten, benötigt die Anmeldeinformation außerdem roles:write; das Entfernen einer privilegierten Rolle aus der Menge erfordert nur users:write.

Anfrage

Feld Typ Pflicht Beschreibung
user_id path ja Benutzer-ID (usr_…).
role_ids string[] ja Die vollständige Menge der Umgebungsrollen-IDs (rol_…), höchstens 50.

Antwort

200 OK mit den neuen Rollen-IDs.

{
  "role_ids": [
    "rol_01j9xr7s1t2w6x8y0z2a4b6c8e"
  ]
}

Fehler

HTTP code Wann
403 role_not_assignable Eine Rolle ist eine Organisationsrolle.
404 not_found Der Benutzer existiert in dieser Umgebung nicht.
422 validation_failed role_ids fehlt, enthält eine fehlerhafte oder unbekannte ID (unknown_role), ein Duplikat oder mehr als 50 Elemente.
401 unauthenticated Die Anmeldeinformation fehlt, ist ungültig oder widerrufen.
403 insufficient_permissions Der Anmeldeinformation fehlt die erforderliche Berechtigung. Die Zuweisung einer privilegierten Rolle (is_privileged) erfordert außerdem roles:write; ohne sie wird nichts geschrieben und required_permissions listet beide Berechtigungen.
429 rate_limited Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach der Zeit aus Retry-After.
503 service_unavailable Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach der Zeit aus Retry-After.

Beispiel

curl -i -X PUT "https://api.eu.keenauth.com/v1/users/usr_01j9xh2k6p7q1r3s5t7v9w1x3y/roles" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"role_ids":["rol_01j9xr7s1t2w6x8y0z2a4b6c8e"]}'