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à.
SAMLavvio della sessione nei pool di utenti di Amazon Cognito
Amazon Cognito supporta il single sign-on () avviato dal service provider (avviato da SP) e l'avvio da IdP. SSO SSO Come migliore pratica di sicurezza, implementa SP-initiated nel tuo pool di utenti. SSO La sezione 5.1.2 della panoramica tecnica della SAMLversione 2.0 descrive SP-Initiated
Per alcuni casi d'uso aziendali, l'accesso alle applicazioni interne inizia da un segnalibro in un dashboard ospitato dal provider di identità aziendale. Quando un utente seleziona un segnalibro, l'IdP genera una SAML risposta e la invia all'SP per autenticare l'utente con l'applicazione.
Puoi configurare un SAML IdP nel tuo pool di utenti per supportare l'IdP avviato. SSO Quando supporti l'autenticazione avviata da IdP, Amazon Cognito non può verificare di aver richiesto la risposta che riceve SAML perché Amazon Cognito non avvia l'autenticazione con una richiesta. SAML In SP-Initiated, Amazon SSO Cognito imposta parametri di stato che convalidano una SAML risposta rispetto alla richiesta originale. Con SP-Initiated Sign-in puoi anche proteggerti dalla contraffazione di richieste tra siti (). CSRF
Utilizzo dell'SAMLaccesso avviato da SP
Come best practice, implementa l'accesso service-provider-initiated (avviato da SP) al tuo pool di utenti. Amazon Cognito avvia la sessione dell'utente e lo reindirizza al tuo IdP. Con questo metodo, hai il massimo controllo su chi presenta le richieste di accesso. Puoi anche consentire l'accesso avviato dall'IdP a determinate condizioni.
La procedura seguente mostra come gli utenti completano l'accesso avviato da SP al pool di utenti tramite un provider. SAML
-
L'utente inserisce il proprio indirizzo e-mail in una pagina di accesso. Per determinare il reindirizzamento dell'utente al suo IdP, puoi raccogliere il suo indirizzo email in un'app personalizzata o richiamare l'interfaccia utente ospitata nella visualizzazione web. Puoi configurare l'interfaccia utente ospitata per visualizzare un elenco IdPs o per richiedere solo un indirizzo e-mail.
-
L'app richiama l'endpoint di reindirizzamento del pool di utenti e richiede una sessione con l'ID client che corrisponde all'app e l'ID IdP che corrisponde all'utente.
-
Amazon Cognito reindirizza l'utente all'IdP con una SAML richiesta, facoltativamente firmata, in un elemento.
AuthnRequest
-
L'IdP autentica l'utente in modo interattivo o con una sessione memorizzata in un cookie del browser.
-
L'IdP reindirizza l'utente all'endpoint di SAML risposta del pool di utenti con l'asserzione crittografata facoltativamente SAML nel payload. POST
Nota
Amazon Cognito annulla le sessioni che non ricevono una risposta entro 5 minuti e reindirizza l'utente all'interfaccia utente ospitata. Quando il tuo utente riscontra questo risultato, riceve un messaggio di errore.
Something went wrong
-
Dopo aver verificato l'SAMLasserzione e mappato gli attributi utente dalle affermazioni nella risposta, Amazon Cognito crea o aggiorna internamente il profilo dell'utente nel pool di utenti. In genere, il tuo pool di utenti restituisce un codice di autorizzazione alla sessione del browser dell'utente.
-
L'utente presenta il codice di autorizzazione all'app, che lo scambia con i token JSON web (JWTs).
-
L'app accetta ed elabora il token ID dell'utente come autenticazione, genera richieste autorizzate alle risorse con il relativo token di accesso e archivia il relativo token di aggiornamento.
Quando un utente si autentica e riceve una concessione di codice di autorizzazione, il pool di utenti restituisce ID, accesso e token di aggiornamento. Il token ID è un oggetto di autenticazione per OIDC la gestione delle identità basata. Il token di accesso è un oggetto di autorizzazione con ambiti OAuth2.0
Puoi anche scegliere la durata dei token di aggiornamento. Dopo la scadenza del token di aggiornamento, l'utente deve effettuare nuovamente l'accesso. Se si sono autenticati tramite un SAML IdP, la durata della sessione degli utenti è fissata dalla scadenza dei loro token, non dalla scadenza della sessione con il loro IdP. L'app deve archiviare il token di aggiornamento di ogni utente e rinnovare la sessione alla scadenza. L'interfaccia utente ospitata mantiene le sessioni utente in un cookie del browser valido per 1 ora.
Utilizzo dell'accesso avviato da IdP SAML
Quando configuri il tuo provider di identità per l'accesso SAML 2.0 avviato da IdP, puoi presentare SAML asserzioni all'saml2/idpresponse
endpoint nel dominio del tuo pool di utenti senza la necessità di avviare la sessione presso. Endpoint Authorize Un pool di utenti con questa configurazione accetta SAML asserzioni avviate da IdP da un provider di identità esterno del pool di utenti supportato dal client dell'app richiesto. I passaggi seguenti descrivono il processo generale di configurazione e accesso con un provider 2.0 avviato da IdPSAML.
-
Crea o designa un pool di utenti e un client per l'app.
-
Crea un IdP SAML 2.0 nel tuo pool di utenti.
-
Configura il tuo IdP per supportare l'avvio dell'IdP. IDP-Initiated SAML introduce considerazioni sulla sicurezza a cui gli altri SSO provider non sono soggetti. Per questo motivo, non puoi aggiungere elementi non- SAML IdPs, incluso il pool di utenti stesso, a nessun client di app che utilizza un SAML provider con accesso avviato da IdP.
-
Associa il tuo SAML provider avviato dall'IdP a un client di app nel tuo pool di utenti.
-
Indirizza l'utente alla pagina di accesso del tuo SAML IdP e SAML recupera un'asserzione.
-
Indirizza il tuo utente all'
saml2/idpresponse
endpoint del tuo pool di utenti con la sua asserzione. SAML -
Ricevi token JSON web (). JWTs
Per accettare SAML affermazioni non richieste nel tuo pool di utenti, devi considerarne l'effetto sulla sicurezza dell'app. È probabile che si verifichino CSRF tentativi di falsificazione delle richieste quando si accettano richieste avviate da IdP. Sebbene il tuo pool di utenti non sia in grado di verificare una sessione di accesso avviata dall'IdP, Amazon Cognito convalida i parametri e le asserzioni della richiesta. SAML
Inoltre, la SAML dichiarazione non deve contenere un InResponseTo
reclamo e deve essere stata emessa nei 6 minuti precedenti.
È necessario inviare richieste con IdP iniziate SAML al tuo. /saml2/idpresponse
Per le richieste di autorizzazione dell'interfaccia utente avviate e ospitate da SP, è necessario fornire parametri che identifichino il client dell'app richiesta, gli ambiti, il reindirizzamento e altri dettagli come parametri della stringa di URI query nelle richieste. HTTP GET
Per SAML le asserzioni avviate da IDP, tuttavia, i dettagli della richiesta devono essere formattati come RelayState
parametro nel corpo di una richiesta. HTTP POST
Il corpo della richiesta deve contenere anche l'asserzione come parametro. SAML SAMLResponse
Di seguito è riportato un esempio di richiesta per un provider avviato da IdPSAML.
POST /saml2/idpresponse HTTP/1.1 User-Agent:
USER_AGENT
Accept: */* Host:example.auth.us-east-1.amazoncognito.com
Content-Type: application/x-www-form-urlencoded SAMLResponse=[Base64-encoded SAML assertion]
&RelayState=identity_provider%3DMySAMLIdP
%26client_id%3D1example23456789
%26redirect_uri%3Dhttps%3A%2F%2Fwww.example.com
%26response_type%3Dcode
%26scope%3Demail%2Bopenid%2Bphone
HTTP/1.1 302 Found Date: Wed, 06 Dec 2023 00:15:29 GMT Content-Length: 0 x-amz-cognito-request-id: 8aba6eb5-fb54-4bc6-9368-c3878434f0fb Location:https://www.example.com
?code=[Authorization code]