# SAML

Es un protocolo basado en XML que facilita el intercambio seguro de datos de identidad entre un proveedor de identidad (IdP) y un proveedor de servicios (SP).

SAML al ser un protocolo estándarizado permite que la mayoría de integraciones sean equivalentes, por lo que encontrarás a continuación la guía básica de integración, luego guías especializadas en diferentes IdPs.

{% hint style="info" %}
De momento no es posible realizar la integración usando el archivo XML de federación.
{% endhint %}

## Guías por IdP

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/58DwIrxfWNGuZBg3M4Z5">/pages/58DwIrxfWNGuZBg3M4Z5</a></td><td><a href="/files/2RvD3WqkfHkSMawncorQ">/files/2RvD3WqkfHkSMawncorQ</a></td><td><a href="/pages/58DwIrxfWNGuZBg3M4Z5">/pages/58DwIrxfWNGuZBg3M4Z5</a></td></tr><tr><td><a href="/pages/7kM5NjXVBaxEqJSc2Oh3">/pages/7kM5NjXVBaxEqJSc2Oh3</a></td><td><a href="/files/MEbFK2fzZqUXJqDj5C9h">/files/MEbFK2fzZqUXJqDj5C9h</a></td><td><a href="/pages/7kM5NjXVBaxEqJSc2Oh3">/pages/7kM5NjXVBaxEqJSc2Oh3</a></td></tr></tbody></table>

## Certificado público

Puedes acceder a nuestro certificado público para la firma de aserciones y respuestas del XML de SAML a través de este enlace:

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://cdn.videsk.io/assets/saml.pem">Certificado público .PEM</a></td><td></td><td></td><td><a href="/files/8IJCDDLJ8iX2fsnbMz6P">/files/8IJCDDLJ8iX2fsnbMz6P</a></td><td><a href="https://cdn.videsk.io/assets/saml.pem">https://cdn.videsk.io/assets/saml.pem</a></td></tr><tr><td><a href="https://cdn.videsk.io/assets/saml.cer">Certificado público .CER</a></td><td></td><td></td><td><a href="/files/NzBi8LFQ8LbaJj0gJXAR">/files/NzBi8LFQ8LbaJj0gJXAR</a></td><td><a href="https://cdn.videsk.io/assets/saml.cer">https://cdn.videsk.io/assets/saml.cer</a></td></tr><tr><td><a href="https://cdn.videsk.io/assets/saml.cert">Certificado público .CERT</a></td><td></td><td></td><td><a href="/files/fWEDdG47VQL7VO632DKX">/files/fWEDdG47VQL7VO632DKX</a></td><td><a href="https://cdn.videsk.io/assets/saml.cert">https://cdn.videsk.io/assets/saml.cert</a></td></tr></tbody></table>

El certificado público del SP (Service Provider) en la configuración del IdP (Identity Provider) es crucial para la seguridad de SAML por varias razones:

#### Verificación de autenticidad

* Asegura que las respuestas SAML vienen realmente del SP autorizado
* Previene que un atacante se haga pasar por el SP legítimo

#### Integridad de datos

* Garantiza que el contenido XML no ha sido modificado en tránsito
* Detecta cualquier manipulación de las aserciones SAML

#### Confidencialidad

* El IdP usa la clave pública del SP para cifrar información sensible
* Solo el SP con su clave privada correspondiente puede descifrar

Es como un "sello digital de confianza" que:

* Valida que estamos hablando con quien dice ser
* Asegura que el mensaje no fue alterado
* Protege la información sensible durante la transmisión

**Sin este certificado, sería como enviar información confidencial sin poder verificar quién la recibe realmente.**

## Valores de configuración SP en IdP

| Nombre             | Valor                                     | Explicación                                                                   |
| ------------------ | ----------------------------------------- | ----------------------------------------------------------------------------- |
| ACS (URL callback) | `https://api.videsk.io/sso/saml/callback` | URL de redirección que enviará la aserción para completar el inicio de sesión |
| SP Entity ID       | `https://api.videsk.io/sso/saml/entity`   | Identificador único de Videsk como SP frente a tu IdP                         |
| Default RelayState | -                                         | No ingreses valores por defecto. Inyectamos dinámicamente.                    |

## Guía básica

Para realizar la integración de SAML deberás:

1. Ir al menú de cuenta y seleccionar **SSO**.
2. Seleccionar el tipo de SSO en **SAML 2.0**
3. Seleccionar estado del SSO en Habilitado.
4. Ingresa la URL de punto de entrada o conocido como Entry ID.
5. Ingresa la entidad emisora que hayas configurado en el IdP, puedes usar `https://api.videsk.io/sso/saml/entity`
6. Luego copia y pega el certificado público en formato Base64
7. Selecciona si deseas fozar la autenticación cada vez que ingresan tus usuarios o reutilizar las sesiones

Opcionalmente, puedes definir ciertos parámetros avanzados:

1. La vinculación de solicitud de autenticación puede ser `HTTP-POST` o `HTTP-Redirect`, esto debe coincidir con la configuración de tu IdP.
2. Selecciona el tipo de Certificado de firma SAML, por defecto la mayoría de IdP solo envía Aserciones firmadas.
3. Para el algorítmo de firma y algorítmo de resumen se recomienda en SHA256 o SHA512. La mayoría de IdP permite SHA256.

## Errores conocidos

### Callback código 403

Si tu IdP al realizar el llamado hacia nuestro endpoint callback SAML obtienes un 403, puede significar las siguientes razones:

* El usuario configurado en Videsk no coincide con el email asociado en tu IdP.
* El IdP no está enviando correctamente el `relayState` , contacte a [soporte](mailto:support@videsk.io).

### Callback código 422

Si nuestro endpoint callback SAML retorna código 422 es debido a:

| Código | Mensaje de error            | Explicación                                                                                                                                         | Solución                                                                                                |
| ------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| 0010   | SAML assertion expired      | El assertion SAML ha expirado según sus timestamps NotBefore/NotOnOrAfter                                                                           | Intente volver a iniciar sesión.                                                                        |
| 0002   | Invalid document signature  | La firma del documento SAML no es válida. Puede indicar manipulación del XML, certificado incorrecto, o problemas en el proceso de firmado del IdP. | Verificar el uso de nuestro certificado público: [#certificado-publico](#certificado-publico "mention") |
| 0003   | Invalid signature           | Firma general inválida - más amplio que 0002, puede aplicar a cualquier elemento firmado en la respuesta SAML                                       | Verificar el uso de nuestro certificado público: [#certificado-publico](#certificado-publico "mention") |
| 0004   | Invalid EncryptedAssertion  | El assertion encriptado no se puede desencriptar o validar correctamente. Problemas de certificados, claves o formato de encriptación.              | Verificar el uso de nuestro certificado público: [#certificado-publico](#certificado-publico "mention") |
| 0005   | Missing SAML assertion      | La respuesta SAML no contiene el assertion requerido. El IdP envió una respuesta vacía o malformada                                                 | Contactar a [soporte](mailto:support@videsk.io).                                                        |
| 0006   | Unknown SAML response       | Respuesta SAML no reconocida o en formato inesperado. Posible incompatibilidad de versiones SAML                                                    | Contactar a [soporte](mailto:support@videsk.io).                                                        |
| 0007   | Invalid query signature     | La firma de la query/request SAML es inválida. Problema en el SP al generar requests firmados                                                       | Verificar el uso de nuestro certificado público: [#certificado-publico](#certificado-publico "mention") |
| 0008   | Is not supported            | Funcionalidad o característica SAML no soportada por la implementación actual                                                                       | Contactar a [soporte](mailto:support@videsk.io).                                                        |
| 0009   | Unknown SAML / Missing SAML | Elemento SAML desconocido o faltante (código duplicado para dos casos relacionados)                                                                 | Contactar a [soporte](mailto:support@videsk.io).                                                        |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.videsk.io/es-dashboard/seguridad/sso/saml.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
