

**推出 的新主控台體驗 AWS WAF**

您現在可以使用更新後的體驗，在主控台的任何位置存取 AWS WAF 功能。如需詳細資訊，請參閱[使用 主控台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

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

# AWS WAF 行動 SDK 規格
<a name="waf-mobile-sdk-specification"></a>

本節列出 AWS WAF 行動 SDK 最新可用版本的 SDK 物件、操作和組態設定。如需字符提供者和操作如何針對各種組態設定組合運作的詳細資訊，請參閱 [AWS WAF 行動開發套件的運作方式](waf-mobile-sdk-how-it-works.md)。

**`WAFToken`**  
保留權 AWS WAF 杖。    
**`getValue()`**  
擷取 的`String`表示法`WAFToken`。

**`WAFTokenProvider`**  
管理行動應用程式中的字符。使用 `WAFConfiguration` 物件實作此項目。    
**`getToken()`**  
如果已啟用背景重新整理，這會傳回快取的字符。如果停用背景重新整理，這會導致同步，封鎖呼叫 AWS WAF 以擷取新的字符。  
**`loadTokenIntoProvider(WAFToken)`**  
將指定的權杖載入 `WAFTokenProvider`，取代提供者管理的任何權杖。權杖提供者會取得新權杖的所有權，並在未來處理重新整理權杖。如果在 中`setTokenCookie`啟用 ，此操作也會更新 Cookie 存放區中的字符`WAFConfiguration`。  
**`onTokenReady(WAFTokenResultCallback)`**  
指示權杖提供者重新整理權杖，並在作用中權杖就緒時叫用提供的回呼。當字符快取並就緒時，字符提供者會在背景執行緒中叫用您的回呼。當您的應用程式第一次載入時，以及它回到作用中狀態時，請呼叫此選項。如需返回作用中狀態的詳細資訊，請參閱 [在應用程式閒置後擷取字符](waf-mobile-sdk-how-it-works.md#waf-mobile-sdk-how-back-from-inactive)。  
對於 Android 或 iOS 應用程式，您可以將 `WAFTokenResultCallback` 設定為您希望權杖提供者在請求權杖就緒時叫用的操作。您的 實作`WAFTokenResultCallback`必須採用參數 `WAFToken`、`SdkError`。對於 iOS 應用程式，您可以交替建立內嵌函數。  
**`storeTokenInCookieStorage(WAFToken)`**  
指示 將指定的 AWS WAF 字符`WAFTokenProvider`存放到開發套件的 Cookie 管理員。根據預設，字符只會在第一次取得和重新整理時新增至 Cookie 存放區。如果應用程式因任何原因清除共用的 Cookie 存放區，軟體開發套件不會自動新增 AWS WAF 字符，直到下一次重新整理為止。

**`WAFConfiguration`**  
保留 實作的組態`WAFTokenProvider`。當您實作此項目時，您會提供保護套件 (Web ACL) 的整合 URL、要在字符中使用的網域名稱，以及您希望字符提供者使用的任何非預設設定。  
下列清單指定您可以在 `WAFConfiguration` 物件中管理的組態設定。    
**`applicationIntegrationUrl`**   
應用程式整合 URL。從 AWS WAF 主控台或透過 `getWebACL` API 呼叫取得。  
必要：是  
類型：應用程式特定的 URL。對於 iOS，請參閱 [iOS URL](https://developer.apple.com/documentation/foundation/url)。對於 Android，請參閱 [java.net URL](https://docs.oracle.com/javase/7/docs/api/java/net/URL.html)。  
**`backgroundRefreshEnabled`**   
指出您是否希望權杖提供者在背景重新整理權杖。如果您設定此項目，權杖提供者會根據管理自動權杖重新整理活動的組態設定，在背景重新整理權杖。  
必要：否  
類型：`Boolean`  
預設值：`TRUE`  
**`domainName`**   
要在字符中使用的網域，用於字符獲取和 Cookie 儲存。例如 `example.com` 或 `aws.amazon.com`。這通常是與保護套件 (Web ACL) 相關聯的 資源的主機網域，您將在其中傳送 Web 請求。對於 ACFP 受管規則群組 `AWSManagedRulesACFPRuleSet`，這通常是與您在規則群組組態中提供的帳戶建立路徑中的網域相符的單一網域。對於 ATP 受管規則群組 `AWSManagedRulesATPRuleSet`，這通常是與您在規則群組組態中提供的登入路徑中的網域相符的單一網域。  
不允許公有尾碼。例如，您無法使用 `gov.au`或 `co.uk`做為字符網域。  
根據受保護的主機網域和保護套件 (Web ACL) 的字符網域清單，網域必須是 AWS WAF 將接受的網域。如需詳細資訊，請參閱[AWS WAF 保護套件 (Web ACL) 權杖網域清單組態](waf-tokens-domains.md#waf-tokens-domain-lists)。  
必要：是  
類型：`String`  
**`maxErrorTokenRefreshDelayMsec`**   
嘗試失敗後重複權杖重新整理之前等待的時間上限，以毫秒為單位。對於失敗嘗試的每個自動重試，它會新增指數退避，直到指定的輸入延遲時間為止。此值會在字符擷取失敗並重試`maxRetryCount`時間後使用。  
必要：否  
類型：`Integer`  
預設值：`5000`(5 秒）  
允許的最小值： `1` (1 毫秒）  
允許的最大值：`30000`(30 秒）  
**`maxRetryCount`**   
請求權杖時，以指數退避執行的重試次數上限。  
必要：否  
類型：`Integer`  
預設值：`Infinity`  
允許的最小值： `0`  
允許的最大值： `100`  
**`setTokenCookie`**   
指出您是否希望開發套件的 Cookie 管理員將權杖 Cookie 新增至請求和其他區域。  
使用 `TRUE`值：  
+ Cookie 管理員會將權杖 Cookie 新增至路徑位於 中指定路徑下的所有請求`tokenCookiePath`。
+ 除了將權杖載入權杖提供者之外， `WAFTokenProvider`操作還會`loadTokenIntoProvider()`更新 Cookie 存放區中的權杖。
必要：否  
類型：`Boolean`  
預設值：`TRUE`  
**`tokenCookiePath`**   
當 `setTokenCookie`為 時使用`TRUE`。指出您希望開發套件的 Cookie 管理員新增字符 Cookie 的頂層路徑。管理員會將權杖 Cookie 新增至您傳送至此路徑和所有子路徑的所有請求。  
例如，如果您將此設定為 `/web/login`，則管理員會包含傳送至 的所有項目`/web/login`及其任何子路徑的字符 Cookie，例如 `/web/login/help`。它不包含傳送至其他路徑之請求的字符，例如 `/`、 `/web`或 `/web/order`。  
必要：否  
類型：`String`  
預設值：`/`  
**`tokenRefreshDelaySec`**   
用於背景重新整理。背景權杖重新整理之間的秒數上限。  
必要：否  
類型：`Integer`  
預設值：`88`  
允許的最小值： `88`  
允許的最大值：`300`(5 分鐘）

## AWS WAF 行動 SDK 錯誤
<a name="waf-mobile-sdk-errors"></a>

本節列出目前 AWS WAF 行動 SDK 版本的可能錯誤。

**`SdkError`**  
無法擷取字符時傳回的錯誤類型。Android 和 iOS 開發套件具有相同的錯誤類型。  
 AWS WAF 行動開發套件具有下列錯誤類型：    
**`invalidChallenge`**  
當字符伺服器傳回無效的挑戰資料，或攻擊者變更回應 Blob 時，會傳回此錯誤。  
**`errorInvokingGetChallengeEndpoint`**  
當字符伺服器傳送不成功的回應碼回用戶端或發生網路錯誤時，會傳回此錯誤。  
**`invalidVerifyChallengeResponse`**  
當`aws-waf-token`從 AWS WAF 伺服器的驗證回應擷取 時發生錯誤，或伺服器回應遭到竄改時，就會傳回此錯誤。  
**`errorInvokingVerifyEndpoint`**  
當用戶端在驗證已解決的挑戰時收到 AWS WAF 伺服器或網路錯誤的回應時，會傳回此錯誤。  
**`internalError`**  
此錯誤會在 SDK 本身可能發生的所有其他錯誤上傳回。

**`socketTimeoutException`**  
在權杖擷取期間遇到網路錯誤時，通常會傳回此錯誤。  
此錯誤可能由下列原因造成：  
+ 低網路頻寬：確認您的網路連線設定
+ 變動的應用程式整合 URL：確認整合 URL 未從 AWS WAF 主控台上顯示的內容修改