Come posso integrare e configurare in modo sicuro Amazon Cognito con gestori dell'identità digitale SAML esterni?
Desidero configurare il mio pool di utenti Amazon Cognito per utilizzare asserzioni SAML crittografate dal mio gestore dell'identità digitale SAML esterno. Desidero che l'autenticazione utente per la mia applicazione sia sicura.
Risoluzione
Aggiungi un gestore dell'identità digitale SAML al pool di utenti
Se non disponi di un pool di utenti Amazon Cognito, consulta Nozioni di base sui pool di utenti. Dopo aver creato il pool di utenti, configura l'applicazione SAML sul lato gestore dell'identità digitale. Per aggiungere un gestore dell'identità digitale SAML al pool di utenti Amazon Cognito, consulta Aggiungere e gestire i gestori dell'identità digitale SAML in un pool di utenti.
Fornisci il certificato di crittografia al gestore dell'identità digitale SAML per inviare asserzioni SAML crittografate ad Amazon Cognito
Prima di tutto, scarica il certificato di crittografia dalla console Amazon Cognito. Quindi, nell'interfaccia di configurazione del gestore dell'identità digitale SAML, importa il certificato di crittografia. Consulta la documentazione del gestore dell'identità digitale per istruzioni su come importare e attivare il certificato di crittografia. Ad esempio, consulta Configurare la crittografia del token nell'interfaccia di amministrazione di Microsoft Entra sul sito web Microsoft Learn.
Verifica il flusso di asserzioni SAML crittografato
Completa i seguenti passaggi:
- Apri gli strumenti per sviluppatori del browser e crea un file HTTP Archive (HAR).
- Accedi alla pagina di accesso gestito del pool di utenti Amazon Cognito.
- Seleziona SAML IdP (Gestore identità digitale SAML). Amazon Cognito reindirizza alla pagina di accesso del gestore dell'identità digitale.
- Nel file HAR, recupera la richiesta di asserzione SAML inviata dal gestore dell'identità digitale all'endpoint saml2/idpresponse.
- Nel browser, visualizza la risposta all'asserzione SAML dal file HAR.
Esempio di risposta SAML decodificata con un'asserzione SAML crittografata:
<saml:EncryptedAssertion> <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <xenc:EncryptedKey> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/> <xenc:CipherData> <xenc:CipherValue> <!-- Encrypted key data --> hY7PK8L9eM+2Uw7....[abbreviated]....4nmB2gTfLwqX= </xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedKey> </ds:KeyInfo> <xenc:CipherData> <xenc:CipherValue> <!-- Encrypted assertion data --> kB4urcHh7K5HHJ....[abbreviated]....8JpWGpfTj= </xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> </saml:EncryptedAssertion>
Esempio di risposta SAML decodificata senza crittografia:
<saml:Assertion ID="ASRT#########" Version="2.0" IssueInstant="2024-07-10T10:00:00Z"> <saml:Issuer>https://idp.example.com/saml</saml:Issuer> <saml:Subject> <saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"> USER123456789 </saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml:SubjectConfirmationData NotOnOrAfter="2024-07-10T11:00:00Z" Recipient="https://app.example.com/saml/acs"/> </saml:SubjectConfirmation> </saml:Subject> <saml:Conditions NotBefore="2024-07-10T10:00:00Z" NotOnOrAfter="2024-07-10T11:00:00Z"> <saml:AudienceRestriction> <saml:Audience>https://app.example.com/saml</saml:Audience> </saml:AudienceRestriction> </saml:Conditions> <saml:AuthnStatement AuthnInstant="2024-07-10T10:00:00Z" SessionNotOnOrAfter="2024-07-10T18:00:00Z" SessionIndex="SESSION123456789"> <saml:AuthnContext> <saml:AuthnContextClassRef> urn:oasis:names:tc:SAML:2.0:ac:classes:Password </saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement> <saml:AttributeStatement> <saml:Attribute Name="uid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue>user123</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="email" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue>user@example.com</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="roles" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue>user</saml:AttributeValue> <saml:AttributeValue>admin</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> </saml:Assertion>
Nota: l'elemento saml:EncryptedAssertion nella risposta conferma che hai un'asserzione SAML crittografata. Solo il gestore dell'identità digitale può decrittografare e leggere i contenuti delle asserzioni con la chiave privata corretta. Se saml:EncryptedAssertion non è presente nella risposta, hai un'asserzione SAML non crittografata che mostra i dettagli dell'utente e dell'autenticazione in chiaro.
Informazioni correlate
Utilizzo di gestori dell'identità digitale SALM con un pool di utenti
How to set up Amazon Cognito for federated authentication using Azure AD (Configurazione di Amazon Cognito per l'autenticazione federata utilizzando Azure AD)
Configurare le asserzioni SAML per la risposta di autenticazione
- Argomenti
- Security, Identity, & Compliance
- Lingua
- Italiano
