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ê chamagetToken()
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 esperarmaxErrorTokenRefreshDelayMsec
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.