Schreiben Sie Ihren Code für das AWS WAF mobile SDK - AWS WAFAWS Firewall Manager, und AWS Shield Advanced

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schreiben Sie Ihren Code für das AWS WAF mobile SDK

Dieser Abschnitt enthält Beispiele für die Verwendung des SDK für Mobilgeräte.

Initialisieren des Token-Anbieters und Abrufen von Token

Sie initiieren die Instance des Token-Anbieters mit einem Konfigurationsobjekt. Dann können Sie Token mit den verfügbaren Operationen abrufen. Im Folgenden finden Sie die grundlegenden Benutzeroberflächenkomponenten des erforderlichen Codes.

iOS
let url: URL = URL(string: "Web ACL integration URL")! let configuration = WAFConfiguration(applicationIntegrationUrl: url, domainName: "Domain name") let tokenProvider = WAFTokenProvider(configuration) //onTokenReady can be add as an observer for UIApplication.willEnterForegroundNotification self.tokenProvider.onTokenReady() { token, error in if let token = token { //token available } if let error = error { //error occurred after exhausting all retries } } //getToken() let token = tokenProvider.getToken()
Android

Java-Beispiel:

String applicationIntegrationURL = "Web ACL integration URL"; //Or URL applicationIntegrationURL = new URL("Web ACL integration URL"); String domainName = "Domain name"; WAFConfiguration configuration = WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL).domainName(domainName).build(); WAFTokenProvider tokenProvider = new WAFTokenProvider(Application context, configuration); // implement a token result callback WAFTokenResultCallback callback = (wafToken, error) -> { if (wafToken != null) { // token available } else { // error occurred in token refresh } }; // Add this callback to application creation or activity creation where token will be used tokenProvider.onTokenReady(callback); // Once you have token in token result callback // if background refresh is enabled you can call getToken() from same tokenprovider object // if background refresh is disabled you can directly call getToken()(blocking call) for new token WAFToken token = tokenProvider.getToken();

Kotlin-Beispiel:

import com.amazonaws.waf.mobilesdk.token.WAFConfiguration import com.amazonaws.waf.mobilesdk.token.WAFTokenProvider private lateinit var wafConfiguration: WAFConfiguration private lateinit var wafTokenProvider: WAFTokenProvider private val WAF_INTEGRATION_URL = "Web ACL integration URL" private val WAF_DOMAIN_NAME = "Domain name" fun initWaf() { // Initialize the tokenprovider instance val applicationIntegrationURL = URL(WAF_INTEGRATION_URL) wafConfiguration = WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL) .domainName(WAF_DOMAIN_NAME).backgroundRefreshEnabled(true).build() wafTokenProvider = WAFTokenProvider(getApplication(), wafConfiguration) // getToken from tokenprovider object println("WAF: "+ wafTokenProvider.token.value) // implement callback for where token will be used wafTokenProvider.onTokenReady { wafToken, sdkError -> run { println("WAF Token:" + wafToken.value) } } }

Wenn setTokenCookie TRUE ist, stellt der Token-Anbieter das Token-Cookie in Ihren Webanforderungen an allen Standorten unter dem Pfad bereit, der in tokenCookiePath angegeben wurde. Standardmäßig ist setTokenCookie TRUE und tokenCookiePath ist /.

Sie schränken den Umfang der Anforderungen, die ein Token-Cookie enthalten, ein, indem Sie den Token-Cookie-Pfad angeben, zum Beispiel /web/login. Stellen Sie in diesem Fall sicher, dass Ihre AWS WAF Regeln in den Anfragen, die Sie an andere Pfade senden, nicht nach Tokens suchen. Wenn Sie die AWSManagedRulesACFPRuleSet Regelgruppe verwenden, konfigurieren Sie die Pfade zur Kontoregistrierung und Kontoerstellung, und die Regelgruppe sucht in Anfragen, die an diese Pfade gesendet werden, nach Tokens. Weitere Informationen finden Sie unter Hinzufügen der verwalteten ACFP-Regelgruppe zu Ihrer Web-ACL. Wenn Sie die AWSManagedRulesATPRuleSet Regelgruppe verwenden, konfigurieren Sie auf ähnliche Weise den Anmeldepfad, und die Regelgruppe sucht in Anfragen, die an diesen Pfad gesendet werden, nach Tokens. Weitere Informationen finden Sie unter Hinzufügen der von ATP verwalteten Regelgruppe zu Ihrer Web-ACL.

iOS

Wenn setTokenCookie jaTRUE, speichert der Token-Anbieter das AWS WAF Token in einer HTTPCookieStorage.shared und nimmt das Cookie automatisch in Anfragen an die Domain auf, in der Sie angegeben habenWAFConfiguration.

let request = URLRequest(url: URL(string: domainEndpointUrl)!) //The token cookie is set automatically as cookie header let task = URLSession.shared.dataTask(with: request) { data, urlResponse, error in }.resume()
Android

In setTokenCookie diesem TRUE Fall speichert der Token-Anbieter das AWS WAF Token in einer CookieHandler Instanz, die für die gesamte Anwendung gemeinsam genutzt wird. Der Token-Anbieter schließt das Cookie automatisch in Anforderungen an die Domäne ein, die Sie in der WAFConfiguration angegeben haben.

Java-Beispiel:

URL url = new URL("Domain name"); //The token cookie is set automatically as cookie header HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); connection.getResponseCode();

Kotlin-Beispiel:

val url = URL("Domain name") //The token cookie is set automatically as cookie header val connection = (url.openConnection() as HttpsURLConnection) connection.responseCode

Wenn Sie die CookieHandler-Standard-Instance bereits initialisiert haben, nutzt der Token-Anbieter diese zur Verwaltung von Cookies. Wenn nicht, initialisiert der Token-Anbieter eine neue CookieManager Instanz mit dem AWS WAF Token CookiePolicy.ACCEPT_ORIGINAL_SERVER und legt diese neue Instanz dann als Standardinstanz in CookieHandler fest.

Der folgende Code zeigt, wie das SDK den Cookie-Manager und den Cookie-Handler initialisiert, wenn diese in Ihrer App nicht verfügbar sind.

Java-Beispiel:

CookieManager cookieManager = (CookieManager) CookieHandler.getDefault(); if (cookieManager == null) { // Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER cookieManager = new CookieManager(); CookieHandler.setDefault(cookieManager); }

Kotlin-Beispiel:

var cookieManager = CookieHandler.getDefault() as? CookieManager if (cookieManager == null) { // Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER cookieManager = CookieManager() CookieHandler.setDefault(cookieManager) }

Wenn Sie setTokenCookie auf FALSE festlegen, müssen Sie das Token-Cookie manuell als Cookie-HTTP-Anforderungsheader in den Anforderungen an Ihren geschützten Endpunkt bereitstellen. Der folgende Code veranschaulicht, wie dazu vorgegangen wird.

iOS
var request = URLRequest(url: wafProtectedEndpoint) request.setValue("aws-waf-token=token from token provider", forHTTPHeaderField: "Cookie") request.httpShouldHandleCookies = true URLSession.shared.dataTask(with: request) { data, response, error in }
Android

Java-Beispiel:

URL url = new URL("Domain name"); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); String wafTokenCookie = "aws-waf-token=token from token provider"; connection.setRequestProperty("Cookie", wafTokenCookie); connection.getInputStream();

Kotlin-Beispiel:

val url = URL("Domain name") val connection = (url.openConnection() as HttpsURLConnection) val wafTokenCookie = "aws-waf-token=token from token provider" connection.setRequestProperty("Cookie", wafTokenCookie) connection.inputStream