Presentamos una nueva experiencia de consola para AWS WAF
Ahora puede usar la experiencia actualizada para acceder a las AWS WAF funciones desde cualquier parte de la consola. Para obtener más información, consulte Trabajar con la consola.
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.
Cómo funciona el SDK AWS WAF móvil
En esta sección se explica cómo funcionan juntas las clases, propiedades y operaciones del SDK AWS WAF móvil.
Los dispositivos móviles te SDKs proporcionan un proveedor de tokens configurable que puedes usar para recuperar y usar los tokens. El proveedor de los tokens verifica que las solicitudes que permita procedan de clientes legítimos. Cuando envías solicitudes a los AWS recursos con los que proteges AWS WAF, incluyes el token en una cookie para validar la solicitud. Puede gestionar la cookie de token manualmente o dejar que el proveedor de tokens lo haga por usted.
En esta sección se describen las interacciones entre las clases, las propiedades y los métodos que se incluyen en el SDK para móviles. Para obtener información sobre la especificación del SDK, consulte AWS WAF especificación de SDK móvil.
Recuperación de tokens y almacenamiento en caché
Cuando crea la instancia del proveedor de tokens en su aplicación para móviles, configura la forma en que quiere que administre los tokens y su recuperación. Su principal opción es cómo mantener los tokens válidos y vigentes para usarlos en las solicitudes web de su aplicación:
-
Actualización en segundo plano habilitada Es el valor predeterminado. El proveedor del token actualiza automáticamente el token en segundo plano y lo guarda en caché. Con la actualización en segundo plano habilitada, cuando llama
getToken(), la operación recupera el token almacenado en caché.El proveedor de tokens actualiza el token a intervalos configurables, de modo que siempre haya un token vigente en la memoria caché mientras la aplicación esté activa. La actualización en segundo plano se detiene mientras la aplicación está inactiva. Para obtener información acerca de este tema, consulte Recuperación de un token tras la inactividad de la aplicación.
-
Actualización en segundo plano desactivada: puede deshabilitar la actualización de los tokens en segundo plano y, a continuación, recuperarlos solo cuando lo solicite. Los tokens recuperados bajo demanda no se almacenan en caché y, si lo desea, puede recuperar más de uno. Cada token es independiente de los demás que recupere y cada uno tiene su propia marca de tiempo que se utiliza para calcular el vencimiento.
Dispone de las siguientes opciones para recuperar el token cuando la actualización en segundo plano está desactivada:
-
getToken()— Cuando llamasgetToken()con la actualización en segundo plano desactivada, la llamada recupera un nuevo token de forma sincrónica. AWS WAF Se trata de una llamada que puede bloquear y que podría afectar a la capacidad de respuesta de la aplicación si se invoca en el subproceso principal. -
onTokenReady(WAFTokenResultCallback): esta llamada recupera de forma asíncrona un nuevo token y, a continuación, invoca la devolución de llamada resultante proporcionada en un hilo en segundo plano cuando el token está listo.
-
Cómo reintenta el proveedor de tokens las recuperaciones de tokens fallidas
El proveedor de tokens vuelve a intentar recuperar el token automáticamente cuando se produce un error en la recuperación. Los reintentos se realizan inicialmente mediante un retroceso exponencial con un tiempo de espera de reintento inicial de 100 ms. Para obtener información acerca de las recuperaciones exponenciales, consulte Reintentos de error y retroceso exponencial en AWS.
Cuando el número de reintentos alcanza el valor maxRetryCount configurado, el proveedor de tokens deja de intentarlo o pasa a intentarlo cada maxErrorTokenRefreshDelayMsec milisegundos, según el tipo de recuperación del token:
-
onTokenReady(): el proveedor de tokens pasa a esperarmaxErrorTokenRefreshDelayMsecmilisegundos entre intentos y continúa intentando recuperar el token. -
Actualización en segundo plano: el proveedor del token pasa a esperar
maxErrorTokenRefreshDelayMsecmilisegundos entre intentos y continúa intentando recuperar el token. -
Llamadas
getToken()bajo demanda, cuando la actualización en segundo plano está desactivada: el proveedor de tokens deja de intentar recuperar un token y devuelve el valor del token anterior o un valor nulo si no hay ningún token anterior.
Escenarios de reintento de recuperación de tokens
Cuando el proveedor de tokens intenta recuperar un token, puede producir reintentos automáticos según el punto del flujo de recuperación de tokens en el que falle la operación. En esta sección, se enumeran los posibles puntos donde podría ver un reintento automático.
-
Obtener o verificar el AWS WAF desafío a través de /inputs o /verify:
-
Cuando se realiza una solicitud para obtener y verificar una AWS WAF impugnación y no se cumple, puede producirse un reintento automático.
-
Puede ver reintentos automáticos junto con un erro
socketTimeoutException. Esto puede deberse a causas como las siguientes:-
Bajo ancho de banda de la red: confirme la configuración de conectividad de red.
-
URL de integración de aplicaciones mutada: confirme que la URL de integración no se ha modificado con respecto a la que aparece en la consola AWS WAF
-
-
La cantidad de reintentos automáticos se puede configurar mediante la función
maxRetryCount()
-
-
Actualización del token:
-
Cuando una solicitud para actualizar el token se realiza mediante el manejador de tokens, puede producir reintentos automáticos.
-
La cantidad de reintentos automáticos aquí también se configura mediante la función
maxRetryCount().
-
Es posible una configuración sin reintentos automáticos si establece maxRetryCount(0).
Tiempo de inmunidad del token y actualización en segundo plano
El tiempo de inmunidad de los tokens que configure en la ACL web es independiente del intervalo de actualización del token que establezca en el SDK AWS WAF móvil. Cuando habilita la actualización en segundo plano, el SDK actualiza el token en el intervalo que especifique mediante tokenRefreshDelaySec(). Esto puede generar varios tokens válidos de forma simultánea, según su tiempo de inmunidad configurado.
Para evitar múltiples tokens válidos, puede deshabilitar la actualización en segundo plano y usar la función getToken() para administrar el ciclo de vida del token en su aplicación móvil.
Recuperación de un token tras la inactividad de la aplicación
La actualización en segundo plano solo se realiza mientras la aplicación se considera activa para el tipo de aplicación:
-
iOS: la actualización en segundo plano se realiza cuando la aplicación está en primer plano.
-
Android: la actualización en segundo plano se realiza cuando la aplicación no está cerrada, ya sea en primer plano o en segundo plano.
Si la aplicación permanece en un estado que no admite la actualización en segundo plano durante más de los tokenRefreshDelaySec segundos configurados, el proveedor de tokens detiene la actualización en segundo plano. Por ejemplo, en el caso de una aplicación de iOS, si tokenRefreshDelaySec es 300 y la aplicación se cierra o pasa a segundo plano durante más de 300 segundos, el proveedor de tokens deja de actualizar el token. Cuando la aplicación vuelve a un estado activo, el proveedor de tokens reinicia automáticamente la actualización en segundo plano.
Cuando su aplicación vuelva a estar activa, llame a onTokenReady() para recibir una notificación cuando el proveedor de tokens recupere y almacene en caché un nuevo token. No se limite a llamar a getToken(), porque la caché podría no contener un token actual y válido.
URL de integración de la aplicación
La URL de integración de aplicaciones del SDK AWS WAF móvil apunta a una ACL web que ha activado para la integración de aplicaciones. Esta URL enruta las solicitudes al servidor backend correcto y las asocia con su cliente. No funciona como un control de seguridad estricto, por lo que exponer una URL de integración no representa un riesgo de seguridad.
Puede modificar técnicamente la URL de integración proporcionada y aun así obtener un token. Sin embargo, no lo recomendamos porque podría perder visibilidad de las tasas de resolución de desafíos o encontrar fallas en la obtención de tokens con errores de socketTimeoutException.
Dependencias
Cada SDK AWS WAF móvil descargable incluye un archivo README en el que se enumeran las dependencias de su versión específica del SDK. Consulte el README para conocer las dependencias de su versión del SDK móvil.
ProGuard Ofuscation/ (solo para el SDK de Android)
Si utilizas un producto de ofuscación o minificación ProGuard, es posible que tengas que excluir algunos espacios de nombres para garantizar que el SDK móvil funcione correctamente. Consulte el README de su versión del SDK móvil para ver la lista de espacios de nombres y reglas de exclusión.