Autenticación de usuarios mediante un Equilibrador de carga de aplicación - Elastic Load Balancing

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autenticación de usuarios mediante un Equilibrador de carga de aplicación

Puede configurar un Equilibrador de carga de aplicación para autenticar de forma segura a los usuarios cuando obtienen acceso a sus aplicaciones. Esto le permite liberar a su equilibrador de carga del trabajo de autenticación de usuarios para que sus aplicaciones puedan centrarse en su lógica de negocio.

Se admiten los siguientes casos de uso:

  • Autentique a los usuarios a través de un proveedor de identidad (IdP) compatible con OpenID Connect OIDC ().

  • Autentique a los usuarios a través de redes sociales IdPs, como Amazon, Facebook o Google, a través de los grupos de usuarios compatibles con Amazon Cognito.

  • Autentique a los usuarios mediante identidades corporativasSAML, mediante OpenID OIDC Connect () OAuth o mediante los grupos de usuarios compatibles con Amazon Cognito.

Prepárese para usar un OIDC IdP compatible

Haga lo siguiente si utiliza un IdP OIDC compatible con su Application Load Balancer:

  • Cree una nueva OIDC aplicación en su IdP. Los IdP DNS deben poder resolverse públicamente.

  • Debe configurar un ID de cliente y un secreto de cliente.

  • Obtenga los siguientes puntos de enlace publicados por el IdP: autorización, token e información de usuario. Puede localizar esta información en la configuración.

  • Los certificados de los puntos de conexión del IdP deben ser emitidos por una autoridad de certificación pública de confianza.

  • Las DNS entradas de los puntos finales deben poder resolverse públicamente, incluso si se resuelven en direcciones IP privadas.

  • Permite una de las siguientes redirecciones URLs en tu aplicación de IdP, sea cual sea la que usen los usuarios, donde DNS aparezca el nombre de dominio de tu balanceador de cargas y CNAME el DNS alias de tu aplicación:

    • https://DNS/oauth2/idpresponse

    • https://CNAME/oauth2/idpreresponse

Preparación para usar Amazon Cognito

La integración de Amazon Cognito para los balanceadores de carga de aplicaciones está disponible en las siguientes regiones:

  • Este de EE. UU. (Norte de Virginia)

  • Este de EE. UU. (Ohio)

  • Oeste de EE. UU. (Norte de California)

  • Oeste de EE. UU. (Oregón)

  • Canadá (centro)

  • Europa (Estocolmo)

  • Europa (Milán)

  • Europe (Fráncfort)

  • Europa (Zúrich)

  • Europe (Irlanda)

  • Europa (Londres)

  • Europa (París)

  • América del Sur (São Paulo)

  • Asia-Pacífico (Tokio)

  • Asia-Pacífico (Seúl)

  • Asia-Pacífico (Osaka)

  • Asia-Pacífico (Mumbai)

  • Asia-Pacífico (Singapur)

  • Asia-Pacífico (Sídney)

  • Asia-Pacífico (Yakarta)

  • Oriente Medio () UAE

  • Medio Oriente (Baréin)

  • África (Ciudad del Cabo)

  • Israel (Tel Aviv)

Haga lo siguiente si utiliza grupos de usuarios de Amazon Cognito con su Equilibrador de carga de aplicación:

  • Cree un grupo de usuarios. Para obtener más información, consulte Grupos de usuarios de Amazon Cognito en la Guía para desarrolladores de Amazon Cognito.

  • Cree un cliente del grupo de usuarios. Debes configurar el cliente para que genere un secreto de cliente, utilice el flujo de concesión de código y admita los mismos OAuth ámbitos que utiliza el balanceador de cargas. Para obtener más información, consulte Configuración de un cliente de aplicación de grupo de usuarios en la Guía para desarrolladores de Amazon Cognito.

  • Cree un dominio de grupo de usuarios. Para obtener más información, consulte Agregar un nombre de dominio para el grupo de usuarios en la Guía para desarrolladores de Amazon Cognito.

  • Compruebe que el ámbito solicitado devuelve un token de ID. Por ejemplo, el ámbito predeterminado, openid, devuelve un token de ID pero el ámbito aws.cognito.signin.user.admin no.

    Nota: Los balanceadores de carga de aplicaciones no admiten los tokens de acceso personalizados emitidos por Amazon Cognito. Para obtener más información, consulte la generación previa del token en la Guía para desarrolladores de Amazon Cognito.

  • Para federarse con un IdP social o corporativo, habilite el IdP en la sección de federación. Para obtener más información, consulte Añadir el inicio de sesión mediante redes sociales a un grupo de usuarios o Añadir el inicio de sesión con un SAML IDP a un grupo de usuarios en la Guía para desarrolladores de Amazon Cognito.

  • Permita la siguiente redirección URLs en el URL campo de devolución de llamada de Amazon Cognito, DNS donde es el nombre de dominio de su balanceador de carga CNAME y DNS el alias de su aplicación (si está usando uno):

    • https://DNS/oauth2/idpresponse

    • https://CNAME/oauth2/idpreresponse

  • Permita que el dominio de su grupo de usuarios aparezca en la devolución de llamada de su aplicación de IdP. URL Utilice el formato de su IdP. Por ejemplo:

    • https://domain-prefix.auth.region.amazoncognito.com/saml2/idpresponse

    • https://user-pool-domain/oauth2/idpreresponse

La retrollamada de la configuración del cliente de la aplicación URL debe estar compuesta exclusivamente por letras minúsculas.

Para permitir que un usuario pueda configurar un equilibrador de carga para usar Amazon Cognito con el fin de autenticar a los usuarios, debe conceder al usuario el permiso para llamar a la acción cognito-idp:DescribeUserPoolClient.

Prepárate para usar Amazon CloudFront

Habilite los siguientes ajustes si utiliza una CloudFront distribución delante de su Application Load Balancer:

  • Reenviar los encabezados de las solicitudes (todos): garantiza que CloudFront no se almacenen en caché las respuestas de las solicitudes autenticadas. Esto evita que se sirvan desde la caché después de que venza la sesión de autenticación. Como alternativa, para reducir este riesgo mientras el almacenamiento en caché está activado, los propietarios de una CloudFront distribución pueden configurar el valor time-to-live (TTL) para que caduque antes de que caduque la cookie de autenticación.

  • Reenvío y almacenamiento en caché de cadenas de consulta (todos): garantiza que el equilibrador de carga tenga acceso a los parámetros de la cadena de consulta necesarios para autenticar al usuario con el IdP.

  • Reenvío de cookies (todas): garantiza que se reenvíen todas CloudFront las cookies de autenticación al balanceador de cargas.

Configuración de la autenticación de usuarios

La autenticación de usuario se configura creando una acción de autenticación para una o varias reglas de oyente. Los tipos de authenticate-oidc acción authenticate-cognito y solo son compatibles con los oyentes. HTTPS Para obtener descripciones de los campos correspondientes, consulte AuthenticateCognitoActionConfigy AuthenticateOidcActionConfigen la versión 2015-12-01 de API referencia de Elastic Load Balancing.

El equilibrador de carga envía una cookie de sesión al cliente para mantener el estado de autenticación. Esta cookie siempre contiene el secure atributo, ya que la autenticación del usuario requiere un HTTPS agente de escucha. Esta cookie contiene el SameSite=None atributo con las solicitudes CORS (uso compartido de recursos entre orígenes).

En el caso de un equilibrador de carga compatible con varias aplicaciones que requieren una autenticación de cliente independiente, cada regla de oyente con una acción de autenticación debe tener un nombre de cookie único. Esto garantiza que los clientes estén siempre autenticados con el IdP antes de ser enrutados al grupo de destino especificado en la regla.

Los balanceadores de carga de aplicaciones no admiten valores de cookies codificadosURL.

De forma predeterminada, el campo SessionTimeout está configurado en 7 días. Si desea sesiones más cortas, puede configurar un tiempo de espera de sesión de tan solo 1 segundo. Para obtener más información, consulte Tiempo de espera de la sesión.

Establezca el campo OnUnauthenticatedRequest como apropiado para su aplicación. Por ejemplo:

  • Aplicaciones que requieren que el usuario inicie sesión mediante una identidad social o corporativa: se admite mediante la opción predeterminada authenticate. Si el usuario no ha iniciado sesión, el equilibrador de carga redirige la solicitud al punto de conexión de autorización de IdP y el IdP le pide al usuario que inicie sesión utilizando su interfaz de usuario.

  • Aplicaciones que proporcionan una vista personalizada a un usuario que ha iniciado sesión o una vista general a un usuario que no ha iniciado sesión: para admitir este tipo de aplicaciones, utilice la opción allow. Si el usuario ha iniciado sesión, el equilibrador de carga proporciona las notificaciones de usuario y la aplicación puede ofrecer una vista personalizada. Si el usuario no ha iniciado sesión, el equilibrador de carga reenvía la solicitud sin las notificaciones de usuario y la aplicación puede proporcionar la vista general.

  • Aplicaciones de una sola página JavaScript que se cargan cada pocos segundos: si utilizas deny esta opción, el balanceador de carga devuelve un error HTTP 401 No autorizado a las AJAX llamadas que no contienen información de autenticación. Sin embargo, si la información de autenticación del usuario ha caducado, redirige al cliente al punto de conexión de autorización del IdP.

El equilibrador de carga debe poder comunicarse con el punto de conexión de token de IdP (TokenEndpoint) y el punto de conexión de información de usuario de IdP (UserInfoEndpoint). Los balanceadores de carga de aplicaciones solo son compatibles IPv4 cuando se comunican con estos puntos finales. Si tu IdP usa direcciones públicas, asegúrate de que los grupos de seguridad del balanceador de cargas y la red ACLs de la que dispones VPC permitan el acceso a los puntos finales. Cuando se utiliza un balanceador de cargas interno o el tipo de dirección IPdualstack-without-public-ipv4, una NAT puerta de enlace puede permitir que el balanceador de cargas se comunique con los puntos finales. Para obtener más información, consulta los conceptos básicos de las puertas de NAT enlace en la Guía VPC del usuario de Amazon.

Utilice el siguiente comando create-rule para configurar la autenticación de usuario.

aws elbv2 create-rule --listener-arn listener-arn --priority 10 \ --conditions Field=path-pattern,Values="/login" --actions file://actions.json

A continuación se muestra un ejemplo del archivo actions.json que especifica una acción authenticate-oidc y una acción forward. AuthenticationRequestExtraParams le permite pasar parámetros adicionales a un IdP durante la autenticación. Siga la documentación proporcionada por su proveedor de identidad para determinar los campos que son compatibles

[{ "Type": "authenticate-oidc", "AuthenticateOidcConfig": { "Issuer": "https://idp-issuer.com", "AuthorizationEndpoint": "https://authorization-endpoint.com", "TokenEndpoint": "https://token-endpoint.com", "UserInfoEndpoint": "https://user-info-endpoint.com", "ClientId": "abcdefghijklmnopqrstuvwxyz123456789", "ClientSecret": "123456789012345678901234567890", "SessionCookieName": "my-cookie", "SessionTimeout": 3600, "Scope": "email", "AuthenticationRequestExtraParams": { "display": "page", "prompt": "login" }, "OnUnauthenticatedRequest": "deny" }, "Order": 1 }, { "Type": "forward", "TargetGroupArn": "arn:aws:elasticloadbalancing:region-code:account-id:targetgroup/target-group-name/target-group-id", "Order": 2 }]

El siguiente es un ejemplo del archivo actions.json que especifica las acciones authenticate-cognito y forward.

[{ "Type": "authenticate-cognito", "AuthenticateCognitoConfig": { "UserPoolArn": "arn:aws:cognito-idp:region-code:account-id:userpool/user-pool-id", "UserPoolClientId": "abcdefghijklmnopqrstuvwxyz123456789", "UserPoolDomain": "userPoolDomain1", "SessionCookieName": "my-cookie", "SessionTimeout": 3600, "Scope": "email", "AuthenticationRequestExtraParams": { "display": "page", "prompt": "login" }, "OnUnauthenticatedRequest": "deny" }, "Order": 1 }, { "Type": "forward", "TargetGroupArn": "arn:aws:elasticloadbalancing:region-code:account-id:targetgroup/target-group-name/target-group-id", "Order": 2 }]

Para obtener más información, consulte Reglas del oyente.

Flujo de autenticación

El siguiente diagrama de red es una representación visual de cómo utiliza Application Load Balancer OIDC para autenticar a los usuarios.

Cómo el Application Load Balancer autentica a los usuarios mediante OIDC

Los elementos numerados que siguen, destacan y explican los elementos que se muestran en el diagrama de red anterior.

  1. El usuario envía una HTTPS solicitud a un sitio web alojado detrás de un Application Load Balancer. Cuando se cumplen las condiciones de una regla con una acción de autenticación, el equilibrador de carga comprueba si hay una cookie de sesión de autenticación en los encabezados de solicitudes.

  2. Si la cookie no está presente, el equilibrador de carga redirige al usuario al punto de conexión de autorización de IdP para que el IdP pueda autenticarlo.

  3. Después de autenticar al usuario, el IdP lo redirige al equilibrador de carga con un código de concesión de autorización.

  4. El equilibrador de carga presenta el código de concesión de autorización al punto de conexión del token de IdP.

  5. Al recibir un código de concesión de autorización válido, el IdP proporciona el token de identificación y el token de acceso al Equilibrador de carga de aplicación.

  6. A continuación, el Equilibrador de carga de aplicación envía el token de acceso al punto de conexión de información del usuario.

  7. El punto de conexión de información del usuario intercambia el token de acceso por las solicitudes de los usuarios.

  8. El Application Load Balancer redirige al usuario con la cookie de sesión de AWSELB autenticación al original. URI Debido a que la mayoría de los navegadores limitan una cookie a 4 KB de tamaño, el equilibrador de carga fragmenta una cookie de más de 4 KB en varias cookies. Si el tamaño total de las reclamaciones del usuario y el token de acceso recibido del IdP supera los 11 000 bytes, el balanceador de cargas devuelve un error HTTP 500 al cliente e incrementa la métrica. ELBAuthUserClaimsSizeExceeded

  9. El Application Load Balancer valida la cookie y reenvía la información del usuario a los objetivos del conjunto de encabezados. X-AMZN-OIDC-* HTTP Para obtener más información, consulte Codificación de las notificaciones de usuario y verificación de firmas.

  10. El destino envía una respuesta al Equilibrador de carga de aplicación.

  11. El Equilibrador de carga de aplicación envía la respuesta final al usuario.

Cada nueva solicitud atraviesa los pasos 1 a 11, mientras que las solicitudes posteriores atraviesan los pasos 9 a 11. Es decir, todas las solicitudes subsiguientes comienzan en el paso 9 siempre que la cookie no haya caducado.

La cookie de AWSALBAuthNonce se agrega al encabezado de la solicitud después de que el usuario se autentique en el IdP. Esto no cambia la forma en que Equilibrador de carga de aplicación procesa las solicitudes de redireccionamiento del IdP.

Si el IdP proporciona un token de actualización válido en el token de ID, el equilibrador de carga lo guarda y lo utiliza para actualizar las notificaciones de usuario cada vez que venza el token de acceso, hasta que se agote la sesión o hasta que se produzca un error en la actualización del IdP. Si el usuario cierra la sesión, se produce un error en la actualización y el equilibrador de carga redirige al usuario al punto de conexión de autorización de IdP. De este modo, el equilibrador de carga puede dejar de funcionar después de que el usuario cierre la sesión. Para obtener más información, consulte Tiempo de espera de la sesión.

nota

La caducidad de la cookie es diferente de la caducidad de la sesión de autenticación. La caducidad de la cookie es un atributo de la cookie, que se establece en 7 días. La duración real de la sesión de autenticación viene determinada por el tiempo de espera de la sesión configurado en el Equilibrador de carga de aplicación para la característica de autenticación. El tiempo de espera de la sesión se incluye en el valor de la cookie de autenticación, que también está cifrado.

Codificación de las notificaciones de usuario y verificación de firmas

Después de que el equilibrador de carga autentica a un usuario correctamente, envía las notificaciones de usuario recibidas del IdP al destino. El equilibrador de carga firma la notificación de usuario para que las aplicaciones puedan verificar la firma y comprobar que el equilibrador de carga ha enviado las notificaciones.

El balanceador de cargas agrega los siguientes encabezados: HTTP

x-amzn-oidc-accesstoken

El token de acceso del punto de conexión de token, en texto sin formato.

x-amzn-oidc-identity

El campo del asunto (sub) del punto de conexión de información de usuario, en texto sin formato.

Nota: La subreclamación es la mejor forma de identificar a un usuario determinado.

x-amzn-oidc-data

El usuario afirma que está en formato JSON web tokens (JWT).

Los tokens de acceso y las reclamaciones de los usuarios son diferentes de los tokens de identificación. Los tokens de acceso y las reclamaciones de usuario solo permiten el acceso a los recursos del servidor, mientras que los tokens contienen información adicional para autenticar a un usuario. El Application Load Balancer crea un nuevo token de acceso al autenticar a un usuario y solo pasa los tokens de acceso y los reclamos al backend; sin embargo, no pasa la información del token de ID.

Estos tokens siguen el JWT formato pero no son identificadores. El JWT formato incluye un encabezado, una carga útil y una firma URL codificados en base64 e incluye caracteres de relleno al final. Un Application Load Balancer utiliza ES256 (ECDSAmediante P-256 ySHA256) para generar la firma. JWT

El JWT encabezado es un JSON objeto con los siguientes campos:

{ "alg": "algorithm", "kid": "12345678-1234-1234-1234-123456789012", "signer": "arn:aws:elasticloadbalancing:region-code:account-id:loadbalancer/app/load-balancer-name/load-balancer-id", "iss": "url", "client": "client-id", "exp": "expiration" }

La JWT carga útil es un JSON objeto que contiene las solicitudes de usuario recibidas del punto final de información de usuario del IdP.

{ "sub": "1234567890", "name": "name", "email": "alias@example.com", ... }

Si quieres que el balanceador de cargas cifre las reclamaciones de los usuarios, debes configurar el grupo objetivo para que las utilice. HTTPS Además, como práctica recomendada de seguridad, le recomendamos que restrinja sus objetivos para que solo reciban tráfico de su Application Load Balancer. Para lograrlo, configura el grupo de seguridad de tus objetivos para que haga referencia al ID del grupo de seguridad del balanceador de cargas.

Para garantizar la seguridad, debe verificar la firma antes de realizar cualquier autorización basada en las afirmaciones y validar que el signer campo del JWT encabezado contenga el Application Load ARN Balancer esperado.

Para obtener la clave pública, obtenga el ID de la clave del JWT encabezado y utilícelo para buscar la clave pública en el punto final. El punto de conexión de cada región de AWS es el siguiente:

https://public-keys.auth.elb.region.amazonaws.com/key-id

Para AWS GovCloud (US), los puntos finales son los siguientes:

https://s3-us-gov-west-1.amazonaws.com/aws-elb-public-keys-prod-us-gov-west-1/key-id https://s3-us-gov-east-1.amazonaws.com/aws-elb-public-keys-prod-us-gov-east-1/key-id

El siguiente ejemplo muestra cómo obtener la identificación de clave, la clave pública y la carga en Python 3.x:

import jwt import requests import base64 import json # Step 1: Validate the signer expected_alb_arn = 'arn:aws:elasticloadbalancing:region-code:account-id:loadbalancer/app/load-balancer-name/load-balancer-id' encoded_jwt = headers.dict['x-amzn-oidc-data'] jwt_headers = encoded_jwt.split('.')[0] decoded_jwt_headers = base64.b64decode(jwt_headers) decoded_jwt_headers = decoded_jwt_headers.decode("utf-8") decoded_json = json.loads(decoded_jwt_headers) received_alb_arn = decoded_json['signer'] assert expected_alb_arn == received_alb_arn, "Invalid Signer" # Step 2: Get the key id from JWT headers (the kid field) kid = decoded_json['kid'] # Step 3: Get the public key from regional endpoint url = 'https://public-keys.auth.elb.' + region + '.amazonaws.com/' + kid req = requests.get(url) pub_key = req.text # Step 4: Get the payload payload = jwt.decode(encoded_jwt, pub_key, algorithms=['ES256'])

El siguiente ejemplo muestra cómo obtener la identificación de clave, la clave pública y la carga en Python 2.7:

import jwt import requests import base64 import json # Step 1: Validate the signer expected_alb_arn = 'arn:aws:elasticloadbalancing:region-code:account-id:loadbalancer/app/load-balancer-name/load-balancer-id' encoded_jwt = headers.dict['x-amzn-oidc-data'] jwt_headers = encoded_jwt.split('.')[0] decoded_jwt_headers = base64.b64decode(jwt_headers) decoded_json = json.loads(decoded_jwt_headers) received_alb_arn = decoded_json['signer'] assert expected_alb_arn == received_alb_arn, "Invalid Signer" # Step 2: Get the key id from JWT headers (the kid field) kid = decoded_json['kid'] # Step 3: Get the public key from regional endpoint url = 'https://public-keys.auth.elb.' + region + '.amazonaws.com/' + kid req = requests.get(url) pub_key = req.text # Step 4: Get the payload payload = jwt.decode(encoded_jwt, pub_key, algorithms=['ES256'])
Consideraciones
  • Estos ejemplos no abarcan cómo validar la firma del emisor con la firma en el token.

  • Las bibliotecas estándar no son compatibles con el relleno que se incluye en el formato del token JWT de autenticación de Application Load Balancer.

Tiempo de espera

Tiempo de espera de la sesión

El token de actualización y el tiempo de espera de la sesión funcionan juntos de la siguiente manera:

  • Si el tiempo de espera de la sesión es más corto que la fecha de vencimiento del token de acceso, el equilibrador de carga respeta el tiempo de espera de la sesión. Si el usuario tiene una sesión activa con el IdP, es posible que no se le pida que inicie sesión de nuevo. De lo contrario, se redirige al usuario para que inicie sesión.

    • Si el tiempo de espera de la sesión del IdP es superior al tiempo de espera de la sesión de Equilibrador de carga de aplicación, el usuario no tiene que proporcionar credenciales para volver a iniciar sesión. En su lugar, el IdP se redirige de nuevo al Equilibrador de carga de aplicación con un nuevo código de concesión de autorización. Los códigos de autorización son de un solo uso, incluso si no hay que volver a iniciar sesión.

    • Si el tiempo de espera de la sesión del IdP es igual o inferior al tiempo de espera de la sesión de Equilibrador de carga de aplicación, se le pide al usuario que proporcione las credenciales para volver a iniciar sesión. Una vez que el usuario inicia sesión, el IdP se redirige de nuevo al Equilibrador de carga de aplicación con un nuevo código de concesión de autorización, y el resto del flujo de autenticación continúa hasta que la solicitud llegue al backend.

  • Si el tiempo de espera de la sesión es mayor que el vencimiento del token de acceso y el IdP no admite tokens de actualización, el equilibrador de carga mantiene la sesión de autenticación hasta que se agota el tiempo de espera y, a continuación, vuelve a iniciar la sesión del usuario. Luego, hace que el usuario vuelva a iniciar sesión.

  • Si el tiempo de espera de la sesión es mayor que el vencimiento del token de acceso y el IdP admite tokens de actualización, el equilibrador de carga actualiza la sesión de usuario cada vez que vence el token de acceso. El equilibrador de carga vuelve a iniciar la sesión del usuario solo después de que se agote el tiempo de la sesión de autenticación o se produzca un error en el flujo de actualización.

Tiempo de espera de inicio de sesión de cliente

El cliente debe iniciar y completar el proceso de autenticación en 15 minutos. Si un cliente no completa la autenticación dentro del límite de 15 minutos, recibe un error HTTP 401 del balanceador de cargas. Este tiempo de espera no se puede cambiar ni eliminar.

Por ejemplo, si un usuario carga la página de inicio de sesión a través del Equilibrador de carga de aplicación, debe completar el proceso de inicio de sesión en 15 minutos. Si el usuario espera e intenta iniciar sesión una vez transcurrido el tiempo de espera de 15 minutos, el balanceador de cargas devuelve un error 401. HTTP El usuario tendrá que actualizar la página e intentar iniciar sesión de nuevo.

Cierre de sesión de autenticación

Cuando una aplicación necesita cerrar la sesión de un usuario autenticado, debe establecer el tiempo de vencimiento de la cookie de sesión de autenticación en -1 y redirigir al cliente al punto de conexión de cierre de sesión de IdP (si el IdP admite uno). Para evitar que los usuarios reutilicen una cookie eliminada, le recomendamos que configure un tiempo de vencimiento del token de acceso tan breve como sea razonable. Si un cliente proporciona a un balanceador de carga una cookie de sesión que tiene un token de acceso caducado con un token que no se NULL actualiza, el balanceador de carga contacta con el IdP para determinar si el usuario sigue conectado.

La página de inicio de cierre de sesión del cliente es una página no autenticada. Esto significa que no puede estar detrás de una regla de Equilibrador de carga de aplicación que requiera autenticación.

  • Cuando se envía una solicitud al destino, la aplicación debe establecer la caducidad en -1 para todas las cookies de autenticación. Los equilibradores de carga de aplicaciones admiten cookies con un tamaño de hasta 16 KB y, por lo tanto, pueden crear hasta 4 particiones para enviarlas al cliente.

    • Si el IdP tiene un punto final de cierre de sesión, debería emitir una redirección al punto final de cierre de sesión del IdP, por ejemplo, el punto de conexión documentado LOGOUTen la Guía para desarrolladores de Amazon Cognito.

    • Si el IdP no tiene un punto de conexión de cierre de sesión, la solicitud vuelve a la página de inicio de cierre de sesión del cliente y se reinicia el proceso de inicio de sesión.

  • Si se supone que el IdP tiene un punto de conexión de cierre de sesión, el IdP debe caducar los tokens de acceso y actualizarlos, y redirigir al usuario de nuevo a la página de inicio de sesión del cliente.

  • Las solicitudes posteriores siguen el flujo de autenticación original.