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

Solución de problemas de la federación SAML 2.0 con AWS

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

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.

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 Cómo ver una respuesta SAML en el navegador para la solución de problemas.

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 Cómo ver una respuesta SAML en el navegador para la solución de problemas.

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 Cómo ver una respuesta SAML en el navegador para la solución de problemas.

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 Cómo ver una respuesta SAML en el navegador para la solución de problemas.

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 Cómo ver una respuesta SAML en el navegador para la solución de problemas.

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: 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 del certificado X.509 del documento de metadatos.

Error: el proveedor especificado no existe.

Este error se produce si el nombre del proveedor que especifique en la aserción SAML no coincide con el nombre del proveedor configurado 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 Cómo consultar la configuración de la duración máxima de la sesión para un rol.

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.