AWS WAF行動 SDK 的運作方式 - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS WAF行動 SDK 的運作方式

移動 SDK 為您提供了可配置的令牌提供程序,您可以用於令牌檢索和使用。權杖提供者會驗證您允許的要求來自合法客戶。當您向使用保護的AWS資源發送請求時AWS WAF,您將令牌包含在 cookie 中以驗證請求。您可以手動處理令牌 cookie,也可以讓令牌提供者為您執行此操作。

本節介紹了包含在移動 SDK 中的類,屬性和方法之間的交互。如需 SDK 規格的相關資訊,請參閱行AWS WAF動 SDK 規格

令牌檢索和緩存

在移動應用程序中創建令牌提供程序實例時,您可以配置希望它如何管理令牌和令牌檢索。您的主要選擇是如何維護有效的,未過期的令牌以在應用程序的 Web 請求中使用:

  • [啟用背景重新整理] — 這是預設值。令牌提供程序會在後台自動刷新令牌並對其進行緩存。啟用背景重新整理後,當您呼叫時getToken(),作業會擷取快取的權杖。

    令牌提供程序以可配置的間隔執行令牌刷新,以便在應用程序處於活動狀態時始終在緩存中可用未過期的令牌。當您的應用程式處於非作用中狀態時,背景重新整理會暫停。如需相關資訊,請參閱在應用程序不活動後檢索令牌

  • 背景重新整理停用 — 您可以停用背景權杖重新整理,然後僅在需要時擷取權杖。按需檢索的令牌不會被緩存,如果需要,您可以檢索多個令牌。每個令牌都獨立於您檢索的任何其他令牌,並且每個令牌都有自己的時間戳記用於計算到期時間。

    停用背景重新整理時,您可以選擇以下權杖擷取:

    • getToken()— 當您在停getToken()用背景重新整理的情況下呼叫時,呼叫會同步從中AWS WAF擷取新的權杖。這是一個可能的阻塞調用,如果您在主線程上調用它,可能會影響應用程序響應。

    • onTokenReady(WAFTokenResultCallback)— 此呼叫以非同步方式擷取新的權杖,然後在 Token 就緒時,在背景執行緒中叫用提供的結果回呼。

令牌提供者如何重試失敗的令牌檢索

當擷取失敗時,權杖提供者會自動重試權杖擷取。重試一開始是使用指數輪詢來執行,開始重試等待時間為 100 ms。如需指數重試的相關資訊,請參閱. AWS

當重試次數達到設定後maxRetryCount,權杖提供者會停止嘗試或切換至每maxErrorTokenRefreshDelayMsec毫秒嘗試一次,視記號擷取的類型而定:

  • onTokenReady()— 權杖提供者在嘗試之間切換到等待maxErrorTokenRefreshDelayMsec毫秒數,並繼續嘗試擷取權杖。

  • 背景重新整理 — 權杖提供者會在嘗試之間切換到等待maxErrorTokenRefreshDelayMsec毫秒數,並繼續嘗試擷取權杖。

  • 禁用後台刷新時的按需getToken()調用 — 令牌提供者停止嘗試檢索令牌並返回先前的令牌值,如果沒有先前的令牌,則返回 null 值。

在應用程序不活動後檢索令牌

背景重新整理只會在您的應用程式類型視為作用中時執行:

  • iOS — 當應用程式位於前景時,會執行背景重新整理。

  • Android — 背景重新整理會在應用程式未關閉時執行,無論是在前景還是背景。

如果您的應用程序處於不支持後台刷新的任何狀態超過配置的tokenRefreshDelaySec秒數,則令牌提供程序將暫停後台刷新。例如,對於 iOS 應用程序,如果tokenRefreshDelaySec是 300 並且應用程序關閉或進入後台超過 300 秒,則令牌提供程序將停止刷新令牌。當應用程序返回到活動狀態時,令牌提供程序會自動重新啟動後台刷新。

當您的應用返回到活動狀態時,請調用以onTokenReady()便在令牌提供程序檢索並緩存新令牌時收到通知。不要只是調用getToken(),因為緩存可能還不包含當前的有效令牌。