Firma e crittografia SAML - Amazon Cognito

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à.

Firma e crittografia SAML

Amazon Cognito supporta richieste SAML firmate e risposte SAML crittografate per l'accesso e la disconnessione. Tutte le operazioni crittografiche durante le operazioni SAML del pool di utenti devono generare firme e testo cifrato con le chiavi generate da user-pool-provided Amazon Cognito. Attualmente, non è possibile configurare un pool di utenti per firmare richieste o accettare asserzioni crittografate con una chiave esterna.

Nota

I certificati del pool di utenti sono validi per 10 anni. Una volta all'anno, Amazon Cognito genera nuovi certificati di firma e crittografia per il tuo pool di utenti. Amazon Cognito restituisce il certificato più recente quando richiedi il certificato di firma e firma le richieste con il certificato di firma più recente. Il tuo IdP può crittografare le asserzioni SAML con qualsiasi certificato di crittografia del pool di utenti non scaduto. I certificati precedenti continuano a essere validi per tutta la loro durata e la chiave pubblica non cambia tra i certificati. Come best practice, aggiorna annualmente il certificato nella configurazione del provider.

Accettazione di risposte SAML crittografate dal tuo IdP

Amazon Cognito e il tuo IdP possono stabilire la riservatezza nelle risposte SAML quando gli utenti accedono e si disconnettono. Amazon Cognito assegna una coppia di chiavi RSA pubblica-privata e un certificato a ogni provider SAML esterno che configuri nel tuo pool di utenti. Quando abiliti la crittografia delle risposte per il provider SAML del tuo pool di utenti, devi caricare il certificato su un IdP che supporti le risposte SAML crittografate. La connessione del pool di utenti al tuo IdP SAML non funziona prima che l'IdP inizi a crittografare tutte le asserzioni SAML con la chiave fornita.

Di seguito è riportata una panoramica del flusso di un accesso SAML crittografato.

  1. L'utente avvia l'accesso e sceglie il proprio IdP SAML.

  2. Il tuo pool di utenti Endpoint Authorize reindirizza l'utente al suo IdP SAML con una richiesta di accesso SAML. Il tuo pool di utenti può facoltativamente accompagnare questa richiesta con una firma che abilita la verifica dell'integrità da parte dell'IdP. Quando desideri firmare richieste SAML, devi configurare il tuo IdP per accettare le richieste che il tuo pool di utenti ha firmato con la chiave pubblica nel certificato di firma.

  3. L'IdP SAML accede al tuo utente e genera una risposta SAML. L'IdP crittografa la risposta con la chiave pubblica e reindirizza l'utente all'endpoint del pool di utenti. /saml2/idpresponse L'IdP deve crittografare la risposta come definito dalla specifica SAML 2.0. Per ulteriori informazioni, vedere Element <EncryptedAssertion> in Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0.

  4. Il tuo pool di utenti decrittografa il testo cifrato nella risposta SAML con la chiave privata e accede all'utente.

Importante

Quando abiliti la crittografia delle risposte per un IdP SAML nel tuo pool di utenti, l'IdP deve crittografare tutte le risposte con una chiave pubblica specifica per il provider. Amazon Cognito non accetta risposte SAML non crittografate da un IdP esterno SAML configurato per supportare la crittografia.

Qualsiasi IdP SAML esterno nel tuo pool di utenti può supportare la crittografia delle risposte e ogni IdP riceve la propria coppia di chiavi.

AWS Management Console
Per configurare la crittografia delle risposte SAML
  1. Crea un pool di utenti, un client di app e un IdP SAML.

  2. Quando crei o modifichi il tuo provider di identità SAML, in Firma le richieste e crittografa le risposte, seleziona la casella con il titolo Richiedi asserzioni SAML crittografate da questo provider.

  3. Dalla scheda Esperienza di accesso del tuo pool di utenti, in Accesso tramite provider di identità federato, seleziona il tuo IdP SAML e scegli Visualizza certificato di crittografia.

  4. Scegli Scarica come .crt e fornisci il file scaricato al tuo IdP SAML. Configura il tuo IdP SAML per crittografare le risposte SAML con la chiave nel certificato.

API/CLI

Per configurare la crittografia delle risposte SAML

Configura la crittografia delle risposte con il EncryptedResponses parametro di una richiesta CreateIdentityProvidero UpdateIdentityProviderAPI. Di seguito è riportato un esempio ProviderDetails di IdP che supporta la firma delle richieste.

"ProviderDetails": { "MetadataURL" : "https://myidp.example.com/saml/metadata", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }

Firma delle richieste SAML

La capacità di dimostrare l'integrità delle richieste SAML 2.0 al tuo IdP è un vantaggio in termini di sicurezza dell'accesso SAML avviato da Amazon Cognito SP. Ogni pool di utenti con un dominio riceve un certificato di firma X.509 del pool di utenti. Con la chiave pubblica in questo certificato, i pool di utenti applicano una firma crittografica alle richieste di disconnessione che il pool di utenti genera quando gli utenti selezionano un IdP SAML. Facoltativamente, puoi configurare il client dell'app per firmare le richieste di accesso SAML. Quando firmi le tue richieste SAML, il tuo IdP può verificare che la firma nei metadati XML delle tue richieste corrisponda alla chiave pubblica nel certificato del pool di utenti che fornisci.

AWS Management Console
Per configurare la firma delle richieste SAML
  1. Crea un pool di utenti, un client di app e un IdP SAML.

  2. Quando crei o modifichi il tuo provider di identità SAML, in Firma richieste e risposte crittografate, seleziona la casella con il titolo Firma le richieste SAML a questo provider.

  3. Nella scheda Esperienza di accesso del tuo pool di utenti, in Accesso tramite provider di identità federato, scegli Visualizza certificato di firma.

  4. Scegli Scarica come .crt e fornisci il file scaricato al tuo IdP SAML. Configura il tuo IdP SAML per verificare la firma delle richieste SAML in entrata.

API/CLI

Per configurare la firma delle richieste SAML

Configura la firma delle richieste con il RequestSigningAlgorithm parametro di una richiesta CreateIdentityProvidero UpdateIdentityProviderAPI. Di seguito è riportato un esempio ProviderDetails di IdP che supporta la firma delle richieste.

"ProviderDetails": { "MetadataURL" : "https://myidp.example.com/saml/metadata", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }