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 API richieste in modo che la sicurezza avanzata di Amazon Cognito possa valutare più accuratamente i rischi. 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 programma SDK che generi 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 o di un API componente intermedio devono implementare un modulo separato. SDK
Nei seguenti scenari, il front-end di autenticazione gestisce la raccolta dei dati contestuali degli utenti senza alcuna configurazione aggiuntiva:
-
L'interfaccia utente ospitata raccoglie e invia automaticamente i dati contestuali a funzionalità di sicurezza avanzate.
-
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
SDKsAmplify supporta i client mobili che si autenticano direttamente con Amazon Cognito. I clienti di questo tipo inoltrano API richieste dirette alle operazioni pubbliche API di Amazon Cognito. Per impostazione predefinita, i client Amplify raccolgono automaticamente dati contestuali per funzionalità di sicurezza avanzate.
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 API operazioni non autenticate come e. InitiateAuthRespondToAuthChallenge L'UserContextDataoggetto aiuta a valutare i rischi in modo più accurato per queste operazioni. SDKsAmplify 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 di applicazioni in questa configurazione utilizza API operazioni 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 HTTP richiesta dell'utente al server. Questi dettagli contestuali aggiuntivi, come le HTTP intestazioni e l'indirizzo IP, forniscono al server delle applicazioni le caratteristiche dell'ambiente dell'utente.
Il server delle applicazioni potrebbe anche eseguire l'accesso con operazioni non autenticate API come e. InitiateAuthRespondToAuthChallenge L'UserContextDataoggetto consente l'analisi avanzata dei rischi di sicurezza in queste operazioni. Le operazioni nelle librerie di raccolta dati contestuali pubbliche 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 HTTP intestazioni pertinenti, il nome del server richiesto e il percorso richiesto dalla HTTP richiesta. Inserisci questi valori nel ContextDataparametro della tua API richiesta ad Amazon Cognito.
-
Compila il
EncodedData
parametro ofContextData
nella tua API richiesta 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 modulo Mobile SDK for iOS AWSCognitoIdentityProviderASF
Per raccogliere dati contestuali codificati per una sicurezza avanzata, 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 modulo Mobile SDK for Android
Per raccogliere dati contestuali codificati per una sicurezza avanzata, aggiungi il seguente frammento all'applicazione:
UserContextDataProvider provider = UserContextDataProvider.getInstance(); // context here is android application context. String encodedContextData = provider.getEncodedContextData(context, username, userPoolId, userPoolClientId);