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à.
Cose da sapere sui pool SAML IdPs di utenti di Amazon Cognito
L'implementazione di un IdP SAML 2.0 comporta alcuni requisiti e restrizioni. Fai riferimento a questa sezione quando implementi il tuo IdP. Troverai anche informazioni utili per la risoluzione degli errori durante la SAML federazione con un pool di utenti.
- Amazon Cognito elabora le SAML asserzioni per te
-
I pool di utenti di Amazon Cognito supportano la federazione SAML 2.0 con endpoint POST -binding. Ciò elimina la necessità per l'app di recuperare o analizzare le risposte di SAML asserzione, poiché il pool di utenti riceve direttamente la SAML risposta dal tuo IdP tramite uno user agent. Il bacino d'utenza si comporta da provider di servizi (SP) per conto della tua applicazione. Amazon Cognito supporta il single sign-on avviato da SP e IdP (SSO) come descritto nelle sezioni 5.1.2 e 5.1.4 della panoramica tecnica della versione 2.0. SAML
- Fornisci un certificato di firma IdP valido
-
Il certificato di firma nei metadati SAML del provider non deve essere scaduto quando configuri l'SAMLIdP nel tuo pool di utenti.
- I pool di utenti supportano più certificati di firma
-
Quando il tuo SAML IdP include più di un certificato di firma nei SAML metadati, al momento dell'accesso il tuo pool di utenti determina che l'SAMLasserzione è valida se corrisponde a qualsiasi certificato nei metadati. SAML Ogni certificato di firma non deve contenere più di 4.096 caratteri.
- Mantenere il parametro dello stato del relè
-
Amazon Cognito e il tuo SAML IdP gestiscono le informazioni sulla sessione con un parametro.
relayState
-
Amazon Cognito supporta i valori
relayState
superiori a 80 byte. Sebbene SAML le specifiche stabiliscano che ilrelayState
valore «non deve superare gli 80 byte di lunghezza», la pratica corrente del settore spesso si discosta da questo comportamento. Di conseguenza, il rifiuto direlayState
valori superiori a 80 byte interromperà molte integrazioni di provider standard. SAML -
Il
relayState
token è un riferimento opaco alle informazioni sullo stato gestite da Amazon Cognito. Amazon Cognito non garantisce i contenuti del parametrorelayState
. Non analizza i contenuti in modo tale che l'app dipende dal risultato. Per ulteriori informazioni, consulta la specifica SAML2.0.
-
- Identifica l'ACSendpoint
-
Il tuo provider di SAML identità richiede che tu imposti un endpoint di assertion consumer. Il tuo IdP reindirizza gli utenti a questo endpoint con la loro affermazione. SAML Configura il seguente endpoint nel dominio del tuo pool di utenti per l'associazione SAML 2.0 POST nel tuo provider di identità. SAML
https://
Your user pool domain
/saml2/idpresponse With an Amazon Cognito domain: https://mydomain.us-east-1.amazoncognito.com
/saml2/idpresponse With a custom domain: https://auth.example.com
/saml2/idpresponsePer ulteriori informazioni sui domini del pool di utenti, consulta l'articolo Configurazione di un dominio di bacino d'utenza.
- Nessuna asserzione ripetuta
-
Non puoi ripetere o riprodurre un'SAMLasserzione sul tuo endpoint Amazon
saml2/idpresponse
Cognito. Un'SAMLasserzione riprodotta ha un ID di asserzione che duplica l'ID di una risposta IdP precedente. - L'ID del pool di utenti è l'ID dell'entità SP
-
Devi fornire al tuo IdP l'ID del tuo pool di utenti nel service provider (SP)
urn
, chiamato anche audience URI o ID entità SP. Il pubblico URI del tuo pool di utenti ha il seguente formato.urn:amazon:cognito:sp:
us-east-1_EXAMPLE
Puoi trovare l'ID del tuo pool di utenti nella sezione Panoramica del pool di utenti nella console Amazon Cognito
. - Mappa tutti gli attributi obbligatori
-
Configura il tuo SAML IdP per fornire valori per tutti gli attributi che hai impostato come richiesto nel tuo pool di utenti. Ad esempio,
email
è un attributo obbligatorio comune per i pool di utenti. Prima che gli utenti possano accedere, le asserzioni SAML IdP devono includere un'affermazione da mappare all'attributo User pool.email
Per ulteriori informazioni sulla mappatura attributi, consultareMappatura degli attributi IdP su profili e token. - Il formato di asserzione ha requisiti specifici
-
Il tuo SAML IdP deve includere le seguenti affermazioni nell'SAMLasserzione.
-
Un
NameID
reclamo. Amazon Cognito associa un'SAMLasserzione all'utente di destinazione tramite.NameID
In caso diNameID
modifiche, Amazon Cognito considera l'affermazione come riferita a un nuovo utente. L'attributo impostatoNameID
nella configurazione IdP deve avere un valore persistente. Per assegnare SAML gli utenti a un profilo utente coerente nel tuo pool di utenti, assegna la tuaNameID
dichiarazione in base a un attributo con un valore che non cambia.<saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:persistent"> carlos </saml2:NameID>
Una
Format
NameID
dichiarazione del tuo IdPurn:oasis:names:tc:SAML:1.1:nameid-format:persistent
indica che il tuo IdP sta passando un valore invariato. Amazon Cognito non richiede questa dichiarazione di formato e assegna un formato seurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
il tuo IdP non specifica un formato del claim.NameID
Questo comportamento è conforme alla sezione 2.2.2 Complex Type N ameIDType, della specifica 2.0. SAML -
Una richiesta
AudienceRestriction
con un valoreAudience
che imposta l'ID dell'entità SP del pool di utenti come destinazione della risposta.<saml:AudienceRestriction> <saml:Audience> urn:amazon:cognito:sp:
us-east-1_EXAMPLE
</saml:AudienceRestriction> -
Per il Single Sign-On avviato da SP, un
Response
elemento con unInResponseTo
valore dell'ID della richiesta originale. SAML<saml2p:Response Destination="https://
mydomain.us-east-1.amazoncognito.com
/saml2/idpresponse" ID="id123
" InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" IssueInstant="Date-time stamp
" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema">Nota
Le SAML asserzioni avviate da IDP non devono contenere un valore.
InResponseTo
-
Un
SubjectConfirmationData
elemento con unRecipient
valore dell'saml2/idpresponse
endpoint del pool di utenti e, per SP-InitiatedSAML, unInResponseTo
valore che corrisponde all'ID della richiesta originale. SAML<saml2:SubjectConfirmationData InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" NotOnOrAfter="
Date-time stamp
" Recipient="https://mydomain.us-east-1.amazoncognito.com
/saml2/idpresponse"/>
-
- Richieste di accesso avviate da SP
-
Quando Endpoint Authorize reindirizza l'utente alla pagina di accesso del tuo IdP, Amazon Cognito include una SAMLrichiesta in un parametro della richiesta. URL
HTTP GET
Una SAML richiesta contiene informazioni sul tuo pool di utenti, incluso l'endpoint. ACS Facoltativamente, puoi applicare una firma crittografica a queste richieste. - Firma le richieste e crittografa le risposte
-
Ogni pool di utenti con un SAML provider genera una coppia di chiavi asimmetrica e un certificato di firma per una firma digitale che Amazon Cognito assegna alle richieste. SAML Ogni SAML IdP esterno che configuri per supportare la SAML risposta crittografata fa sì che Amazon Cognito generi una nuova coppia di chiavi e un nuovo certificato di crittografia per quel provider. Per visualizzare e scaricare i certificati con la chiave pubblica, scegli il tuo IdP nella scheda Esperienza di accesso della console Amazon Cognito.
Per stabilire un rapporto di fiducia con SAML le richieste provenienti dal tuo pool di utenti, fornisci al tuo IdP una copia del certificato di firma del pool di utenti SAML 2.0. Il tuo IdP potrebbe ignorare SAML le richieste firmate dal tuo pool di utenti se non configuri l'IdP per accettare le richieste firmate.
-
Amazon Cognito applica una firma digitale alle SAML richieste che l'utente trasmette al tuo IdP. Il tuo pool di utenti firma tutte le richieste single logout (SLO) e puoi configurare il tuo pool di utenti per firmare le richieste Single Sign-on (SSO) per qualsiasi IdP esternoSAML. Quando fornisci una copia del certificato, il tuo IdP può verificare l'integrità delle richieste degli utentiSAML.
-
Il tuo SAML IdP può crittografare SAML le risposte con il certificato di crittografia. Quando configuri un IdP con SAML crittografia, l'IdP deve inviare solo risposte crittografate.
-
- Codifica caratteri non alfanumerici
-
Amazon Cognito non accetta 8 caratteri a 4 byte UTF come 😐 oppure 𠮷 che il tuo IdP passa come valore di attributo. Puoi codificare il carattere in Base64, passarlo come testo e quindi decodificarlo nell'app.
Nell'esempio seguente, la richiesta di attributo non verrà accettata:
<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">😐</saml2:AttributeValue> </saml2:Attribute>
Contrariamente all'esempio precedente, la richiesta di attributo seguente verrà accettata:
<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">8J+YkA==</saml2:AttributeValue> </saml2:Attribute>
- L'endpoint di metadati deve disporre di una protezione valida a livello di trasporto
-
Se
InvalidParameterException
durante la creazione di un SAML IdP con un endpoint di HTTPS metadati viene visualizzato, ad esempioURL, «Errore nel recupero dei metadati da<metadata endpoint>
», assicurati che l'endpoint di metadati sia configurato SSL correttamente e che sia associato un certificato valido. SSL Per ulteriori informazioni sulla convalida dei certificati, consulta What Is An SSL/Certificate? TLS . - I client di app con IdP iniziated SAML possono accedere solo con SAML
-
Quando attivi il supporto per un IdP SAML 2.0 che supporta l'accesso avviato da IdP in un app client, puoi aggiungere solo altri SAML 2.0 IdPs a quell'app client. Ti viene impedito di aggiungere la directory utente nel pool di utenti e tutti i provider di identità non SAML esterni a un client di app configurato in questo modo.
- Le risposte di disconnessione devono utilizzare l'associazione POST
-
L'
/saml2/logout
endpoint accetta richiesteLogoutResponse
comeHTTP POST
richieste. I pool di utenti non accettano risposte di disconnessione conHTTP GET
associazione.