Volver a la wiki

Servicio decrypt_credential — Descifrado de credenciales

Resumen

Endpoint y servicio de descifrado de credenciales almacenadas. Devuelve en claro los secretos SSH/SNMP/HTTP guardados en StoredCredential, para auto-relleno en formularios de Auto-Provision y Signage.

Endpoint: GET /api/credentials/{credential_id}/decrypt

Módulo: core.credential_api (endpoint routing + guard), core.security.credential_manager.CredentialManager.decrypt_credential() (lógica de descifrado)

Requisitos de seguridad (s104)

A partir de la Auditoría Suprema (s104), el endpoint exige permiso network/edit (operador o admin), ya que devuelve secretos en claro. Un usuario readonly no puede extraer credenciales.

Historial:

Flujo

  1. Usuario (operador+) autenticado en request.user.
  2. Verificar has_permission(user, "network", "edit") → 403 si falla.
  3. Obtener StoredCredential por ID y organización del usuario.
  4. Invocar CredentialManager.decrypt_credential(ciphertext) → devuelve dict con {ssh_username, ssh_password, snmp_community, http_username, http_password}.
  5. Response 200 + JSON con los campos descifrados.

Casos de uso

Tests

Véase también

Subir