Migrar el host SP de una conexión
POST /v1/connections/{connection_id}:migrate-sp-host · permiso connections:write
Inicia el traslado de los endpoints SP (ACS, metadatos, cierre de sesión único y callback de OIDC) de una conexión empresarial a un nuevo host, por ejemplo del host keenauth.app a su dominio personalizado verificado. De lo contrario, las URL del SP están congeladas, porque el proveedor de identidad las tiene registradas.
La solicitud crea un borrador de revisión de tipo sp_host, sea cual sea el estado de la conexión. Por ahora no cambia nada para los inicios de sesión:
- Descargue los nuevos metadatos del SP con Descargar los metadatos del SP y
revision_id, y entréguelos al administrador del proveedor de identidad. El nuevo host ya sirve estos metadatos y la prueba de inicio de sesión del borrador, nada más. - Pruebe el borrador con Probar una conexión y
revision_id. - Publique la revisión. La conexión ahora usa el nuevo host. El host anterior sigue respondiendo durante 30 días más para que el proveedor de identidad pueda actualizarse; después devuelve
404.
Un nuevo borrador descarta el borrador anterior de la conexión. La solicitud se audita como connection.revision_created.
Solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
connection_id |
ruta | sí | ID de la conexión empresarial (conn_…). |
Idempotency-Key |
cabecera | no | Clave opcional que hace segura la reintentación de una solicitud (de 16 a 64 caracteres). |
sp_host |
cadena | sí | El nuevo host: un host activo de este entorno (su host keenauth.app o un dominio personalizado verificado), en minúsculas y sin puerto. |
Respuesta
200 OK con el borrador de revisión:
{
"id": "connrev_01j9xr8c2d4e6f8g0h2j4k6m8n",
"connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
"protocol": "saml",
"kind": "sp_host",
"status": "draft",
"discard_reason": null,
"created_at": "2026-10-28T10:00:00Z",
"decided_at": null,
"purge_after": null,
"superseded_revision_id": null,
"changes": {
"sp_host": "login.example.com",
"idp_entity_id": null,
"idp_sso_url": null,
"idp_slo_url": null,
"certificate_fingerprints": [],
"mfa_authn_context_values": null,
"issuer": null,
"client_id": null,
"client_auth_method": null,
"provider_profile": null,
"client_secret_change": null
},
"latest_test": null
}
superseded_revision_id es el borrador anterior que esta solicitud descartó, si lo hubo.
Errores
| HTTP | code | Cuándo |
|---|---|---|
| 400 | unknown_field |
El cuerpo contiene un campo desconocido. |
| 401 | unauthenticated |
La credencial falta, no es válida o fue revocada. |
| 403 | insufficient_permissions |
La credencial no tiene connections:write. |
| 404 | not_found |
La conexión no existe en este entorno o no es una conexión empresarial. |
| 409 | conflict |
La ventana de 30 días de la migración anterior del host SP todavía está abierta, o la conexión aún no tiene configuración de protocolo. |
| 422 | validation_failed |
errors[] apunta a /sp_host con required, invalid_value (no es un nombre de host en minúsculas), not_in_environment (no es un host activo de este entorno) o unchanged (ya es el host SP de la conexión). |
| 429 | rate_limited |
Se superó el límite de frecuencia; reintente después del periodo indicado en Retry-After. |
| 503 | service_unavailable |
Una dependencia no está disponible temporalmente; reintente después del periodo indicado en Retry-After. |
Ejemplo
curl -X POST "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b:migrate-sp-host" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"sp_host":"login.example.com"}'
keenauth connections migrate-sp-host conn_01j9xp6q0r1s5t7v9w1x3y5z7b --sp-host login.example.com --yes