
# Listar los certificados de firma del IdP de una conexión

`GET /v1/connections/{connection_id}/certificates` · permiso `connections:read`

Devuelve los certificados de firma activos del proveedor de identidad de una conexión SAML empresarial: ID, huella SHA-256, periodo de validez y origen. El certificado en sí y su sujeto (que puede contener el nombre o el correo electrónico de una persona) no se devuelven. Una conexión tiene como máximo 3 certificados activos, por lo que la lista no está paginada: no hay parámetros `limit`, `after`, `before` ni `order`, y `list_metadata` no contiene cursor. Los certificados eliminados no se listan. Las lecturas no se auditan.

## Solicitud

| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `connection_id` | ruta | sí | ID de la conexión SAML empresarial (`conn_…`). |

## Respuesta

`200 OK`. Una conexión SAML sin configuración SAML devuelve una lista vacía.

```json
{
  "data": [
    {"id": "conncert_01j9xq2m4n6p8r0s2t4v6w8y0a", "sha256_fingerprint": "3b0c…", "not_before": "2026-01-01T00:00:00Z", "not_after": "2028-01-01T00:00:00Z", "source": "metadata"}
  ],
  "list_metadata": {"before": null, "after": null}
}
```

| Campo | Descripción |
|---|---|
| `id` | ID del certificado (`conncert_…`); úsalo para [eliminar el certificado](delete.md). |
| `sha256_fingerprint` | SHA-256 hexadecimal en minúsculas de la codificación DER. Compárala con la huella que muestra tu proveedor de identidad. |
| `not_before`, `not_after` | Periodo de validez. Un certificado fuera de él no verifica ninguna firma. |
| `source` | `metadata`: añadido por una actualización de la URL de metadatos; `manual`: subido a mano o tomado de un [documento de metadatos importado](../connections/import-metadata.md). |

## Errores

| HTTP | code | Cuándo |
|---|---|---|
| 404 | `not_found` | La conexión no existe en este entorno o no es una conexión empresarial. |
| 409 | `conflict` | La conexión no es una conexión SAML. |
| 401 | `unauthenticated` | La credencial falta, no es válida o está revocada. |
| 403 | `insufficient_permissions` | La credencial no tiene el permiso necesario. |
| 429 | `rate_limited` | Se superó el límite de solicitudes; reintenta tras el periodo indicado en `Retry-After`. |
| 503 | `service_unavailable` | Una dependencia no está disponible temporalmente; reintenta tras el periodo indicado en `Retry-After`. |

## Ejemplo

```bash
curl "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/certificates" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth connections certificates list conn_01j9xp6q0r1s5t7v9w1x3y5z7b
```
