Como o SDK móvel do AWS WAF funciona - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

Como o SDK móvel do AWS WAF funciona

Essa seção explica como as classes, propriedades e operações do SDK móvel do AWS WAF funcionam juntas.

Os SDKs móveis fornecem um provedor de token configurável que você pode usar para recuperação e uso de tokens. O provedor do token verifica se as solicitações que você permite são de clientes legítimos. Ao enviar solicitações para os recursos da AWS que você protege com o AWS WAF, você inclui o token em um cookie para validar a solicitação. Você pode manipular o cookie do token manualmente ou fazer com que o provedor do token faça isso por você.

Esta seção aborda as interações entre as classes, propriedades e métodos incluídos no SDK móvel. Para obter a especificação do SDK, consulte Especificação do SDK móvel do AWS WAF.

Recuperação e armazenamento em cache de tokens

Ao criar a instância do provedor de token em seu aplicativo móvel, você configura como deseja que ela gerencie os tokens e a recuperação de tokens. Sua principal opção é como manter tokens válidos e não expirados para uso nas solicitações da web do seu aplicativo:

  • Atualização em segundo plano ativada: esse é o padrão. O provedor de token atualiza automaticamente o token em segundo plano e o armazena em cache. Com a atualização em segundo plano ativada, quando você chama getToken(), a operação recupera o token em cache.

    O provedor de token executa a atualização do token em intervalos configuráveis, para que um token não expirado esteja sempre disponível no cache enquanto o aplicativo estiver ativo. A atualização em segundo plano é pausada enquanto seu aplicativo está em um estado inativo. Para obter mais informações sobre isso, consulte Recuperação de um token após a inatividade do aplicativo.

  • Atualização em segundo plano desativada: você pode desativar a atualização de tokens em segundo plano e, em seguida, recuperar tokens somente sob demanda. Os tokens recuperados sob demanda não são armazenados em cache e você pode recuperar mais de um, se quiser. Cada token é independente de qualquer outro que você recupere e cada um tem seu próprio timestamp que é usado para calcular a expiração.

    Você tem as seguintes opções para recuperação de token quando a atualização em segundo plano está desativada:

    • getToken(): quando você chama getToken() com a atualização em segundo plano desativada, a chamada recupera de forma síncrona um novo token do AWS WAF. Essa é uma chamada potencialmente bloqueadora que pode afetar a capacidade de resposta do aplicativo se você a invocar no thread principal.

    • onTokenReady(WAFTokenResultCallback): essa chamada recupera de forma assíncrona um novo token e, em seguida, invoca o retorno de chamada do resultado fornecido em um thread em segundo plano quando um token está pronto.

Como o provedor de token tenta novamente recuperações de tokens com falha

O provedor de token repete automaticamente a recuperação do token quando a recuperação falha. As novas tentativas são executadas inicialmente usando o recuo exponencial com um tempo de espera inicial de 100 ms. Para obter mais repetições de tentaivas exponenciais, consulte Novas tentativas e recuo exponencial na AWS.

Quando o número de novas tentativas atinge o maxRetryCount configurado, o provedor do token para de tentar ou passa a tentar a cada maxErrorTokenRefreshDelayMsec milissegundos, dependendo do tipo de recuperação do token:

  • onTokenReady(): o provedor do token passa a esperar maxErrorTokenRefreshDelayMsec milissegundos entre as tentativas e continua tentando recuperar o token.

  • Atualização em segundo plano: o provedor de token passa a esperar maxErrorTokenRefreshDelayMsec milissegundos entre as tentativas e continua tentando recuperar o token.

  • Chamadas getToken() sob demanda, quando a atualização em segundo plano está desativada: o provedor de token para de tentar recuperar um token e retorna o valor do token anterior ou um valor nulo se não houver nenhum token anterior.

Recuperação de um token após a inatividade do aplicativo

A atualização em segundo plano só é realizada enquanto seu aplicativo é considerado ativo para seu tipo de aplicativo:

  • iOS: a atualização em segundo plano é realizada quando o aplicativo está em primeiro plano.

  • Android: a atualização em segundo plano é realizada quando o aplicativo não está fechado, seja em primeiro plano ou em segundo plano.

Se seu aplicativo permanecer em qualquer estado que não ofereça suporte à atualização em segundo plano por mais tempo do que os tokenRefreshDelaySec segundos configurados, o provedor de token pausará a atualização em segundo plano. Por exemplo, para um aplicativo iOS, se tokenRefreshDelaySec for 300 e o aplicativo fechar ou ficar em segundo plano por mais de 300 segundos, o provedor do token interromperá a atualização do token. Quando o aplicativo retorna ao estado ativo, o provedor de token reinicia automaticamente a atualização em segundo plano.

Quando seu aplicativo voltar ao estado ativo, chame onTokenReady() para que você possa ser notificado quando o provedor do token tiver recuperado e armazenado em cache um novo token. Não chame simplesmente getToken(), porque o cache pode ainda não conter um token válido e atual.