Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Raccolta di dati per la protezione dalle minacce nelle applicazioni
L'autenticazione adattiva di Amazon Cognito valuta i livelli di rischio per il tentativo di acquisizione dell'account sulla base dei dettagli contestuali dei tentativi di accesso degli utenti. L'applicazione deve aggiungere dati contestuali alle richieste API in modo che la protezione dalle minacce di Amazon Cognito possa valutare più accuratamente il rischio. I dati contestuali sono informazioni quali indirizzo IP, agente del browser, informazioni sul dispositivo e intestazioni di richiesta che forniscono informazioni contestuali su come un utente si è connesso al tuo pool di utenti.
La responsabilità principale di un'applicazione che invia questo contesto ad Amazon Cognito è EncodedData
un parametro nelle richieste di autenticazione ai pool di utenti. Per aggiungere questi dati alle tue richieste, puoi implementare Amazon Cognito con un SDK che genera automaticamente queste informazioni per te oppure puoi implementare un modulo per JavaScript iOS o Android che raccolga questi dati. Le applicazioni solo client che effettuano richieste dirette ad Amazon Cognito devono essere implementate. AWS Amplify SDKs Le applicazioni client-server che dispongono di un server intermedio o di un componente API devono implementare un modulo SDK separato.
Nei seguenti scenari, il front-end di autenticazione gestisce la raccolta dei dati contestuali degli utenti senza alcuna configurazione aggiuntiva:
-
L'accesso gestito raccoglie e invia automaticamente i dati contestuali per la protezione dalle minacce.
-
Tutte le AWS Amplify librerie dispongono di una raccolta di dati contestuali integrata nei metodi di autenticazione.
Invio di dati contestuali utente in applicazioni solo client con Amplify

SDKs Amplify supporta i client mobili che si autenticano direttamente con Amazon Cognito. I clienti di questo tipo effettuano richieste API dirette alle operazioni API pubbliche di Amazon Cognito. Per impostazione predefinita, i client Amplify raccolgono automaticamente dati contestuali per la protezione dalle minacce.
Le applicazioni Amplify JavaScript with sono un'eccezione. Richiedono l'aggiunta di un JavaScript modulo che raccolga i dati relativi al contesto dell'utente.
In genere, un'applicazione in questa configurazione utilizza operazioni API non autenticate come e. InitiateAuthRespondToAuthChallenge L'UserContextDataoggetto aiuta a valutare i rischi in modo più accurato per queste operazioni. SDKs Amplify aggiunge informazioni sul dispositivo e sulla sessione a EncodedData
un parametro di. UserContextData
Raccolta di dati contestuali in applicazioni client-server
Alcune applicazioni dispongono di un livello front-end che raccoglie i dati di autenticazione degli utenti e un livello di back-end dell'applicazione che invia le richieste di autenticazione ad Amazon Cognito. Si tratta di un'architettura comune nei server Web e nelle applicazioni supportate da microservizi. In queste applicazioni, è necessario importare una libreria pubblica di raccolta di dati contestuali.

In genere, un server applicativo in questa configurazione utilizza operazioni API autenticate come e. AdminInitiateAuthAdminRespondToAuthChallenge L'ContextDataoggetto aiuta Amazon Cognito a valutare i rischi in modo più accurato per queste operazioni. I contenuti ContextData
sono i dati codificati che il front-end ha passato al server e dettagli aggiuntivi derivanti dalla richiesta HTTP dell'utente al server. Questi dettagli contestuali aggiuntivi, come le intestazioni HTTP e l'indirizzo IP, forniscono al server delle applicazioni le caratteristiche dell'ambiente dell'utente.
Il server delle applicazioni potrebbe anche effettuare l'accesso con operazioni API non autenticate come e. InitiateAuthRespondToAuthChallenge L'UserContextDataoggetto consente l'analisi del rischio di protezione dalle minacce in queste operazioni. Le operazioni nelle librerie di raccolta dati di contesto pubblico disponibili aggiungono informazioni di sicurezza al EncodedData
parametro nelle richieste di autenticazione. Inoltre, configura il tuo pool di utenti per accettare dati contestuali aggiuntivi e aggiungi l'IP di origine dell'utente al IpAddress
parametro diUserContextData
.
Per aggiungere dati contestuali alle applicazioni client-server
-
Nella tua applicazione front-end, raccogli dati contestuali codificati dal client con un iOS, Android o un modulo. JavaScript
-
Trasmetti i dati codificati e i dettagli della richiesta di autenticazione al tuo server delle applicazioni.
-
Nel server delle applicazioni, estrai l'indirizzo IP dell'utente, le intestazioni HTTP pertinenti, il nome del server richiesto e il percorso richiesto dalla richiesta HTTP. Inserisci questi valori nel ContextDataparametro della tua richiesta API ad Amazon Cognito.
-
Compila il
EncodedData
parametro ofContextData
nella tua richiesta API con i dati codificati del dispositivo raccolti dal modulo SDK. Aggiungi questi dati contestuali alla richiesta di autenticazione.
Librerie di dati contestuali per applicazioni client-server
JavaScript
Il amazon-cognito-advanced-security-data.min.js
modulo raccoglie dati EncodedData
che potete passare al vostro server delle applicazioni.
Aggiungi il amazon-cognito-advanced-security-data.min.js
modulo alla tua JavaScript configurazione. Regione AWS Sostituiscilo <region>
con uno dei seguenti:us-east-1
,us-east-2
,us-west-2
,eu-west-1
,eu-west-2
, oeu-central-1
.
<script src="https://amazon-cognito-assets.<region>.amazoncognito.com/amazon-cognito-advanced-security-data.min.js"></script>
Per generare un encodedContextData
oggetto da utilizzare nel EncodedData
parametro, aggiungete quanto segue all'origine JavaScript dell'applicazione:
var encodedContextData = AmazonCognitoAdvancedSecurityData.getData(_username, _userpoolId, _userPoolClientId);
iOS/Swift
Per generare dati contestuali, le applicazioni iOS possono integrare il AWSCognitoIdentityProvidermodulo
Per raccogliere dati contestuali codificati per la protezione dalle minacce, aggiungi il seguente frammento all'applicazione:
import AWSCognitoIdentityProviderASF let deviceId = getDeviceId() let encodedContextData = AWSCognitoIdentityProviderASF.userContextData( userPoolId, username: username, deviceId: deviceId, userPoolClientId: userPoolClientId) /** * Reuse DeviceId from keychain or generate one for the first time. */ func getDeviceId() -> String { let deviceIdKey = getKeyChainKey(namespace: userPoolId, key: "AWSCognitoAuthAsfDeviceId") if let existingDeviceId = self.keychain.string(forKey: deviceIdKey) { return existingDeviceId } let newDeviceId = UUID().uuidString self.keychain.setString(newDeviceId, forKey: deviceIdKey) return newDeviceId } /** * Get a namespaced keychain key given a namespace and key */ func getKeyChainKey(namespace: String, key: String) -> String { return "\(namespace).\(key)" }
Android
Per generare dati contestuali, le applicazioni Android possono integrare il aws-android-sdk-cognitoidentityprovidermodulo
Per raccogliere dati contestuali codificati per la protezione dalle minacce, aggiungi il seguente frammento all'applicazione:
UserContextDataProvider provider = UserContextDataProvider.getInstance(); // context here is android application context. String encodedContextData = provider.getEncodedContextData(context, username, userPoolId, userPoolClientId);