Establecer permisos del rol

PUT /fapi/v1/organizations/{org_id}/roles/{role_id}/permissions · llamado desde el host de inicio de sesión del entorno

Reemplaza el conjunto de permisos de un rol de la organización. Solo pueden usarse los permisos que el entorno permite para los roles de la organización, y los administradores solo pueden conceder los permisos que ellos mismos poseen. Aquí no se pueden crear permisos ni API. Requiere la cookie __Host-idp_session del usuario autenticado; si la cookie falta, ha caducado o ha sido revocada, devuelve 401 unauthenticated. Una aplicación propia en otro origen puede, en su lugar, enviar su token de acceso a la API frontal (Authorization: DPoP <token> con una prueba DPoP; consulte Token de acceso a la API frontal). El usuario debe ser miembro activo de la organización con el permiso idp_roles:manage. Un usuario que no es miembro recibe 404 not_found, de modo que no se revela la existencia de la organización; un miembro sin el permiso recibe 403 insufficient_permissions. Los roles de la organización deben estar habilitados para el entorno e incluidos en su plan.

Solicitud

Encabezados:

Encabezado Obligatorio Descripción
Idp-Client sí Identificador del SDK.
Origin sí Debe ser exactamente https://<host de inicio de sesión>.
Content-Type con cuerpo application/json.
If-Match no "<version>" del rol tal como se leyó por última vez; si el rol ha cambiado desde entonces, devuelve 412 precondition_failed y nada cambia.

org_id: el identificador de la organización (org_…). role_id: el identificador del rol (rol_…).

Cuerpo:

Campo Obligatorio Descripción
permission_ids sí El conjunto completo, con un máximo de 100 identificadores de permisos (perm_…); [] elimina todos.

Respuesta

200 OK con un nuevo ETag; el cuerpo es el rol (consulte Obtener un rol de la organización).

Errores

Estado Código Cuándo
401 unauthenticated No hay una cookie de sesión válida.
403 origin_not_allowed Origin falta o es incorrecto.
403 insufficient_permissions El usuario no tiene idp_roles:manage en la organización.
403 plan_feature_unavailable El plan del entorno no incluye roles de la organización (feature, required_plan).
403 org_custom_roles_disabled Los roles de la organización están desactivados para el entorno.
403 role_not_assignable El rol, o el nuevo conjunto, concede un permiso que el usuario no posee, o la propia membresía del usuario tiene asignado el rol.
404 not_found No existe la organización o el rol de la organización para este usuario; un rol del entorno, un identificador desconocido, mal formado o ajeno recibe la misma respuesta.
409 organization_pending_deletion La organización está programada para su eliminación.
412 precondition_failed If-Match no indica la versión actual, o el rol cambió mientras se procesaba la solicitud.
422 permission_not_allowed Un permiso no está permitido para los roles de la organización.
422 permission_reserved Un permiso está reservado para la plataforma.
422 validation_failed La lista no es válida o es demasiado larga.
503 service_unavailable No disponible temporalmente; reintente después de Retry-After.

Ejemplo

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"]}'