

# Solución de problemas de federación SAML con IAM
<a name="troubleshoot_saml"></a>

Utilice la información que se indica aquí para diagnosticar y solucionar los problemas que puedan surgir cuando trabaje con SAML 2.0 y la federación con AWS Identity and Access Management.

**Topics**
+ [Error: la solicitud incluyó una respuesta SAML que no es válida. Para cerrar sesión, haga clic aquí.](#troubleshoot_saml_invalid-response)
+ [Error: RoleSessionName es obligatorio en AuthnResponse (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)](#troubleshoot_saml_missing-rolesessionname)
+ [Error: falta la autorización para realizar sts:AssumeRoleWithSAML (servicio: AWSSecurityTokenService; código de estado: 403; código de error: AccessDenied)](#troubleshoot_saml_missing-role)
+ [Error: RoleSessionName en AuthnResponse debe coincidir [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)](#troubleshoot_saml_invalid-rolesessionname)
+ [Error: identidad de fuente debe coincidir con [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 y no comenzar con `"aws:"` (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)](#troubleshoot_saml_invalid-sourceidentity)
+ [Error: firma de respuesta no válida (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)](#troubleshoot_saml_invalid-metadata)
+ [Error: Clave privada no válida.](#troubleshoot_saml_invalid-private-key)
+ [Error: No se pudo eliminar la clave privada.](#troubleshoot_saml_invalid-remove-key)
+ [Error: No se pudo eliminar la clave privada porque el ID de la clave no coincide con una clave privada.](#troubleshoot_saml_invalid-remove-key-mismatch)
+ [Error: no se ha podido asumir un rol: el emisor no está presente en el proveedor especificado (servicio: AWSOpenIdDiscoveryService; código de estado: 400; código de error: AuthSamlInvalidSamlResponseException)](#troubleshoot_saml_issuer-mismatch)
+ [Error: no se ha podido analizar los metadatos.](#troubleshoot_saml_issuer-metadata)
+ [Error: No se pudo actualizar un proveedor de identidades. No se han definido actualizaciones para los metadatos o la aserción de cifrado.](#troubleshoot_saml_unable-to-update)
+ [Error: No se pudo establecer el modo de cifrado de aserciones en Obligatorio porque no se ha proporcionado una clave privada.](#troubleshoot_saml_issuer-private-key-required)
+ [Error: No se pueden añadir ni eliminar claves privadas en la misma solicitud. Establezca un valor para solo uno de los dos parámetros.](#troubleshoot_saml_add-remove-keys)
+ [Error: el proveedor especificado no existe.](#troubleshoot_saml_provider-doesnotexist)
+ [Error: el valor de DurationSeconds solicitado es mayor que el valor de MaxSessionDuration establecido para este rol.](#troubleshoot_saml_duration-exceeds)
+ [Error: Se alcanzó el límite máximo de 2 claves privadas.](#troubleshoot_saml_private-key-exceeds)
+ [Error: la respuesta no contiene la audiencia requerida.](#troubleshoot_saml_required-audience)

## Error: la solicitud incluyó una respuesta SAML que no es válida. Para cerrar sesión, haga clic aquí.
<a name="troubleshoot_saml_invalid-response"></a>

Este error puede producirse cuando la respuesta SAML del proveedor de identidades no contiene un atributo con `Name` establecido en `https://aws.amazon.com/SAML/Attributes/Role`. El atributo debe contener uno o varios elementos `AttributeValue`, cada uno con un par de cadenas separadas por comas:
+ El ARN de un rol con el que el usuario puede estar mapeado.
+ El ARN del proveedor SAML.

El error también puede producirse cuando los valores de los atributos SAML enviados por el proveedor de identidad tienen un espacio en blanco al principio o al final, u otros caracteres no válidos en los valores de los atributos SAML. Para obtener más información sobre los valores esperados para los atributos SAML, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md)

Para obtener más información, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: RoleSessionName es obligatorio en AuthnResponse (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)
<a name="troubleshoot_saml_missing-rolesessionname"></a>

Este error puede producirse cuando la respuesta SAML del proveedor de identidades no contiene un atributo con `Name` establecido en `https://aws.amazon.com/SAML/Attributes/RoleSessionName`. El valor de atributo es un identificador para el usuario y suele ser un ID de usuario o una dirección de correo electrónico.

Para obtener más información, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: falta la autorización para realizar sts:AssumeRoleWithSAML (servicio: AWSSecurityTokenService; código de estado: 403; código de error: AccessDenied)
<a name="troubleshoot_saml_missing-role"></a>

Este error se produce si el rol de IAM especificado en la respuesta de SAML está mal escrito o no existe. Asegúrese de utilizar el nombre exacto de su rol, ya que los nombres de roles distinguen entre mayúsculas y minúsculas. Corrija el nombre del rol en la configuración del proveedor de servicios SAML.

Solo se le permite el acceso si la política de confianza de rol incluye la acción `sts:AssumeRoleWithSAML`. Si la aserción SAML está configurada para utilizar el [atributo `PrincipalTag`](id_roles_providers_create_saml_assertions.md#saml_role-session-tags), la política de confianza también debe incluir la acción `sts:TagSession`. Para obtener más información acerca de las etiquetas de sesión, consulte [Transferencia de etiquetas de sesión en AWS STS](id_session-tags.md).

Este error puede producirse si no tiene `sts:SetSourceIdentity` en su política de confianza de rol. Si la aserción SAML está configurada para utilizar el atributo [`SourceIdentity`](id_roles_providers_create_saml_assertions.md#saml_sourceidentity), la política de confianza también debe incluir la acción `sts:SetSourceIdentity`. Para obtener más información acerca de las identidades de fuente, consulte [Monitorear y controlar las acciones realizadas con roles asumidos](id_credentials_temp_control-access_monitor.md).

Este error también puede ocurrir si una entidad principal federada no tiene permisos para asumir el rol. El rol debe tener una política de confianza que especifique el ARN de la identidad SAML de IAM como el elemento `Principal`. El rol también contiene condiciones que controlan qué usuarios pueden asumir el rol. Asegúrese de que sus usuarios cumplan los requisitos de las condiciones.

Este error también puede producirse si la respuesta de SAML no contiene un `Subject` con un `NameID`.

Para obtener más información, consulte [Concesión de acceso a la Consola de administración de AWS a las entidades principales federadas de SAML 2.0](id_roles_providers_enable-console-saml.md) y [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: RoleSessionName en AuthnResponse debe coincidir [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)
<a name="troubleshoot_saml_invalid-rolesessionname"></a>

Este error puede producirse si el valor del atributo `RoleSessionName` es demasiado largo o contiene caracteres no válidos. La longitud válida máxima es de 64 caracteres.

Para obtener más información, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: identidad de fuente debe coincidir con [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 y no comenzar con `"aws:"` (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)
<a name="troubleshoot_saml_invalid-sourceidentity"></a>

Este error puede producirse si el valor del atributo `sourceIdentity` es demasiado largo o contiene caracteres no válidos. La longitud válida máxima es de 64 caracteres. Para obtener más información acerca de las identidades de fuente, consulte [Monitorear y controlar las acciones realizadas con roles asumidos](id_credentials_temp_control-access_monitor.md).

Para obtener más información acerca de la creación de aserciones SAML, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: firma de respuesta no válida (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)
<a name="troubleshoot_saml_invalid-metadata"></a>

Este error puede producirse cuando los metadatos de la federación del proveedor de identidades no coinciden con los metadatos del proveedor de identidades de IAM. Por ejemplo, el archivo de metadatos del proveedor de servicios de identidades podría haber cambiado para actualizar un certificado caducado. Descargue el archivo de metadatos SAML actualizado de su proveedor de servicios de identidades. A continuación, actualícelo en la entidad de proveedor de identidades de AWS que usted define en IAM con el comando de la `aws iam update-saml-provider` CLI o el cmdlet de PowerShell `Update-IAMSAMLProvider`.

## Error: Clave privada no válida.
<a name="troubleshoot_saml_invalid-private-key"></a>

Este error se puede producir si el archivo de clave privada no está formateado correctamente. Este error puede proporcionar detalles adicionales sobre por qué la clave privada no es válida:
+ La clave está cifrada.
+ No se reconoce el formato de la clave. El archivo de clave privada debe ser un archivo .pem.

Cuando se ejecuta [Crear un proveedor de identidades de SAML en IAM](id_roles_providers_create_saml.md) en la Consola de administración de AWS, debe descargar la clave privada desde su proveedor de identidad para proporcionársela a IAM y permitir el cifrado. La clave privada debe ser de un archivo .pem que utilice el algoritmo de cifrado AES-GCM o AES-CBC para descifrar las afirmaciones de SAML.

## Error: No se pudo eliminar la clave privada.
<a name="troubleshoot_saml_invalid-remove-key"></a>

Este error puede producirse cuando el cifrado SAML está establecido en Obligatorio y su solicitud eliminaría la única clave de descifrado privada del proveedor de SAML de IAM. Para obtener más información acerca de la rotación de claves privadas, consulte [Gestiona las claves de cifrado SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

## Error: No se pudo eliminar la clave privada porque el ID de la clave no coincide con una clave privada.
<a name="troubleshoot_saml_invalid-remove-key-mismatch"></a>

Este error puede producirse si el valor `keyId` de la clave privada no coincide con ningún ID de clave de los archivos de clave privada del proveedor de identidad.

Cuando utiliza las operaciones de la API [update-saml-provider](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-saml-provider.html) o [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) para eliminar las claves privadas de cifrado SAML, el valor de `RemovePrivateKey` debe ser un ID de clave válida para una clave privada adjunta a su proveedor de identidad.

## Error: no se ha podido asumir un rol: el emisor no está presente en el proveedor especificado (servicio: AWSOpenIdDiscoveryService; código de estado: 400; código de error: AuthSamlInvalidSamlResponseException)
<a name="troubleshoot_saml_issuer-mismatch"></a>

Este error puede producirse si el emisor de la respuesta de SAML no coincide con el emisor declarado en el archivo de metadatos de federación. El archivo de metadatos se ha cargado a AWS al crear el proveedor de identidad en IAM.

## Error: no se ha podido analizar los metadatos.
<a name="troubleshoot_saml_issuer-metadata"></a>

Este error se puede producir si el archivo de metadatos no está formateado correctamente.

Cuando [crea o administra un proveedor de identidad SAML](id_roles_providers_create_saml.md#idp-manage-identityprovider-console) en la Consola de administración de AWS debe recuperar el documento de metadatos de SAML de su proveedor de identidad.

Este archivo de metadatos incluye el nombre del emisor, información de vencimiento y las claves que se pueden utilizar para validar la respuesta de autenticación SAML (afirmaciones) recibida desde el IdP. El archivo de metadatos debe estar codificado en formato UTF-8 sin una marca de orden de bytes (BOM). Para eliminar la BOM, puede codificar el archivo en UTF-8 con una herramienta de edición de texto, como Notepad\$1\$1.

El certificado X.509 incluido como parte del documento de metadatos de SAML debe utilizar un tamaño de clave de al menos 1024 bits. Además, el certificado X.509 no debe contener extensiones repetidas. Puede utilizar extensiones, pero estas solo pueden aparecer una vez en el certificado. Si el certificado X.509 no cumple ninguna condición, se produce un error en la creación de proveedor de identidad (IdP) y devuelve el mensaje “Unable to parse metadata” (No se pueden analizar los metadatos).

Según se define en la [versión 1.0 del perfil de interoperabilidad de metadatos SAML V2.0](https://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.html), IAM no evalúa ni toma medidas en relación con la caducidad de los certificados X.509 de los documento de metadatos SAML. Si le preocupan los certificados X.509 caducados, le recomendamos que supervise las fechas de caducidad de los certificados y los alterne de acuerdo con las políticas de gobernanza y seguridad de su organización.

## Error: No se pudo actualizar un proveedor de identidades. No se han definido actualizaciones para los metadatos o la aserción de cifrado.
<a name="troubleshoot_saml_unable-to-update"></a>

Este error puede producirse si utiliza las operaciones de la CLI del `update-saml-provider` o la API del `UpdateSAMLProvider`, pero no proporciona valores de actualización en los parámetros de la solicitud. Para obtener más información sobre la actualización de su proveedor de SAML de IAM, consulte [Crear un proveedor de identidades de SAML en IAM](id_roles_providers_create_saml.md).

## Error: No se pudo establecer el modo de cifrado de aserciones en Obligatorio porque no se ha proporcionado una clave privada.
<a name="troubleshoot_saml_issuer-private-key-required"></a>

Este error puede producirse si no ha cargado con antelación una clave de descifrado privada e intenta establecer el cifrado SAML en Obligatorio sin incluir una clave privada en la solicitud.

Asegúrese de definir una clave privada para su proveedor de SAML de IAM cuando utilice operaciones de la CLI del `create-saml-provider`, de la API del `CreateSAMLProvider`, de la CLI del `update-saml-provider` o la API de `UpdateSAMLProvider` para requerir aserciones de SAML cifradas. 

## Error: No se pueden añadir ni eliminar claves privadas en la misma solicitud. Establezca un valor para solo uno de los dos parámetros.
<a name="troubleshoot_saml_add-remove-keys"></a>

Este error puede producirse si en la misma solicitud se incluyen valores para añadir y eliminar claves privadas.

Cuando utiliza las operaciones de la API [update-saml-provider](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-saml-provider.html) o [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) para rotar los archivos de clave privada de cifrado SAML, solo puede añadir o eliminar una clave privada en su solicitud. Si agrega una clave privada y elimina una clave privada al mismo tiempo, se produce un error en la operación. Para obtener más información acerca de la rotación de claves privadas, consulte [Gestiona las claves de cifrado SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

## Error: el proveedor especificado no existe.
<a name="troubleshoot_saml_provider-doesnotexist"></a>

Este error se produce si el nombre del proveedor en la confirmación SAML no coincide con el nombre del proveedor en IAM. Para obtener más información sobre cómo ver el nombre del proveedor, consulte [Crear un proveedor de identidades de SAML en IAM](id_roles_providers_create_saml.md).

## Error: el valor de DurationSeconds solicitado es mayor que el valor de MaxSessionDuration establecido para este rol.
<a name="troubleshoot_saml_duration-exceeds"></a>

Este error puede producirse si se asume un rol desde la AWS CLI o la API. 

Cuando utilice las operaciones [assume-role-with-saml](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html) de la CLI o [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) de la API para asumir un rol, puede especificar un valor para el parámetro `DurationSeconds`. Puede especificar un valor comprendido entre 900 segundos (15 minutos) y la duración máxima de la sesión para el rol. Si especifica un valor superior al indicado en esta opción, la operación producirá un error. Por ejemplo, si especifica una duración de 12 horas para la sesión, pero el administrador establece la duración máxima de la sesión en 6 horas, la operación genera un error. Para obtener información sobre cómo ver el valor máximo para el rol, consulte [Actualizar la duración máxima de la sesión para un rol](id_roles_update-role-settings.md#id_roles_update-session-duration).

## Error: Se alcanzó el límite máximo de 2 claves privadas.
<a name="troubleshoot_saml_private-key-exceeds"></a>

Este error puede producirse si intenta añadir una clave privada a su proveedor de identidad.

Puede guardar hasta dos claves privadas para cada proveedor de identidad. Cuando utiliza las operaciones de la API [update-saml-provider](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-saml-provider.html) o [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) para añadir una tercera clave privada, se produce un error en la operación. 

Elimine las claves privadas que hayan caducado antes de añadir una nueva clave privada. Para obtener más información acerca de la rotación de claves privadas, consulte [Gestiona las claves de cifrado SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

## Error: la respuesta no contiene la audiencia requerida.
<a name="troubleshoot_saml_required-audience"></a>

Este error puede producirse si hay una discrepancia entre la URL de la audiencia y el proveedor de identidades en la configuración de SAML. Asegúrese de que el identificador de la parte de confianza del proveedor de identidades (IdP) coincida exactamente con la URL de la audiencia (ID de entidad) proporcionada en la configuración de SAML.