Solución de problemas de federación SAML con IAM - AWS Identity and Access Management

Solución de problemas de federación SAML con IAM

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.

Temas

Error: Your request included an invalid SAML response. To logout, click here.

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

Para obtener más información, consulte Configure aserciones SAML para la respuesta de autenticación. Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en Ver una respuesta SAML en su navegador.

Error: RoleSessionName es obligatorio en AuthnResponse (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)

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. Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en Ver una respuesta SAML en su navegador.

Error: falta la autorización para realizar sts:AssumeRoleWithSAML (servicio: AWSSecurityTokenService; código de estado: 403; código de error: AccessDenied)

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, 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.

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, 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.

Este error también puede producirse si los usuarios federados no tienen 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 la sección Establecer permisos en AWS para usuarios federados y Configure aserciones SAML para la respuesta de autenticación. Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en Ver una respuesta SAML en su navegador.

Error: RoleSessionName en AuthnResponse debe coincidir [a-zA-Z_0-9+=,.@-]{2,64} (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)

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. Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en Ver una respuesta SAML en su navegador.

Error: identidad de fuente debe coincidir con [a-zA-Z_0-9+=,.@-]{2,64} y no comenzar con "aws:" (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)

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.

Para obtener más información acerca de la creación de aserciones SAML, consulte Configure aserciones SAML para la respuesta de autenticación. Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en Ver una respuesta SAML en su navegador.

Error: firma de respuesta no válida (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)

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.

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 en la AWS Management Console, 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.

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.

Error: No se pudo eliminar la clave privada porque el ID de la clave no coincide con una clave privada.

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 o UpdateSAMLProvider 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)

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.

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

Cuando crea o administra un proveedor de identidad SAML en la AWS Management Console 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++.

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, 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.

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.

Error: No se pudo establecer el modo de cifrado de aserciones en Obligatorio porque no se ha proporcionado una clave privada.

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.

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 o UpdateSAMLProvider 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.

Error: el proveedor especificado no existe.

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.

Error: el valor de DurationSeconds solicitado es mayor que el valor de MaxSessionDuration establecido para este rol.

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

Cuando utilice las operaciones assume-role-with-saml de la CLI o AssumeRoleWithSAML 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.

Error: Se alcanzó el límite máximo de 2 claves privadas.

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 o UpdateSAMLProvider 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.

Error: la respuesta no contiene la audiencia requerida.

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.