Cose da sapere sui pool SAML IdPs di utenti di Amazon Cognito - 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à.

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

  1. Amazon Cognito supporta i valori relayState superiori a 80 byte. Sebbene SAML le specifiche stabiliscano che il relayState valore «non deve superare gli 80 byte di lunghezza», la pratica corrente del settore spesso si discosta da questo comportamento. Di conseguenza, il rifiuto di relayState valori superiori a 80 byte interromperà molte integrazioni di provider standard. SAML

  2. Il relayState token è un riferimento opaco alle informazioni sullo stato gestite da Amazon Cognito. Amazon Cognito non garantisce i contenuti del parametro relayState. 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/idpresponse

Per 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 di NameID modifiche, Amazon Cognito considera l'affermazione come riferita a un nuovo utente. L'attributo impostato NameID 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 tua NameID 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 IdP urn: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 se urn: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 valore Audience 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 un InResponseTo 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 un Recipient valore dell'saml2/idpresponseendpoint del pool di utenti e, per SP-InitiatedSAML, un InResponseTo 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.

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

  2. 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/logoutendpoint accetta richieste LogoutResponse come HTTP POST richieste. I pool di utenti non accettano risposte di disconnessione con HTTP GET associazione.