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à.
Avvio della sessione SAML nei bacini d'utenza di Amazon Cognito
Amazon Cognito supporta il single sign-on (SSO) avviato dal fornitore di servizi (SP-initiated) e l'SSO. IdP-initiated Come best practice di sicurezza, implementa l'SSO nel tuo pool di utenti. SP-initiated La sezione 5.1.2 della panoramica V2.0 tecnica
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, il provider di identità genera una risposta SAML e la invia al provider di servizi per autenticare l'utente con l'applicazione.
Puoi configurare un IdP SAML nel tuo pool di utenti per supportare l'SSO. IdP-initiated Quando supporti IdP-initiated l'autenticazione, Amazon Cognito non può verificare di aver richiesto la risposta SAML ricevuta perché Amazon Cognito non avvia l'autenticazione con una richiesta SAML. In SP-initiated SSO, Amazon Cognito imposta parametri di stato che convalidano una risposta SAML rispetto alla richiesta originale. Con SP-initiated l'accesso puoi anche proteggerti dalla falsificazione delle richieste tra siti (CSRF).
Implementa l' SP-initated accesso SAML
Come best practice, implementa l'accesso tramite service-provider-initiated () SP-initiated 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 IdP-initiated l'accesso a determinate condizioni.
La procedura seguente mostra come gli utenti completano l' SP-initiated accesso al tuo pool di utenti tramite un provider SAML.
-
L'utente inserisce il proprio indirizzo email in una pagina di accesso. Per determinare il reindirizzamento dell'utente al suo IdP, puoi raccogliere il suo indirizzo email in un'applicazione personalizzata o richiamare l'accesso gestito nella visualizzazione web.
Puoi configurare le tue pagine di accesso gestite in modo da visualizzare un elenco IdPs o richiedere un indirizzo email e abbinarlo all'identificatore del tuo IdP SAML. Per richiedere un indirizzo email, modifica lo stile di branding dell'accesso gestito e, in Foundation, individua il comportamento di autenticazione e, in Visualizzazione del provider, imposta lo stile di visualizzazione sull'input di ricerca del dominio.
-
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 richiesta SAML, 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 risposta SAML del pool di utenti con l'asserzione SAML crittografata opzionalmente nel payload POST.
Nota
Amazon Cognito annulla le sessioni che non ricevono una risposta entro 5 minuti e reindirizza l'utente all'accesso gestito. Quando l'utente riscontra questo risultato, riceve un messaggio di errore.
Something went wrong -
Dopo aver verificato l'asserzione SAML e aver mappato gli attributi utente in base alle affermazioni contenute nella risposta, Amazon Cognito crea o aggiorna internamente il profilo dell'utente nel pool di utenti. In genere, il pool di utenti restituisce un codice di autorizzazione alla sessione del browser dell'utente.
-
L'utente presenta il codice di autorizzazione alla tua app, che scambia il codice con token web JSON (JWT).
-
L'app accetta ed elabora il token ID dell'utente come autenticazione, genera richieste autorizzate alle risorse con il relativo token di accesso e memorizza il token di aggiornamento.
Quando un utente si autentica e riceve la concessione di un codice di autorizzazione, il pool di utenti restituisce ID, accesso e token di aggiornamento. Il token ID è un oggetto di autenticazione per la gestione delle identità. OIDC-based Il token di accesso è un oggetto di autorizzazione con ambiti OAuth 2.0
Puoi anche scegliere la durata dei token di aggiornamento. Dopo la scadenza del token di aggiornamento, l'utente deve accedere nuovamente. Se si sono autenticati tramite un IdP SAML, la durata della sessione degli utenti viene stabilita in base alla scadenza dei loro token, non alla scadenza della loro sessione con il loro IdP. La tua app deve memorizzare il token di aggiornamento di ogni utente e rinnovare la sessione quando scade. L'accesso gestito mantiene le sessioni utente in un cookie del browser valido per 1 ora.
Implementa l' IdP-initiated accesso SAML
Quando configuri il tuo provider di identità per l'accesso IdP-initiated SAML 2.0, puoi presentare le asserzioni SAML all'saml2/idpresponseendpoint nel dominio del tuo pool di utenti senza la necessità di avviare la sessione in. Endpoint Authorize Un pool di utenti con questa configurazione accetta asserzioni IdP-initiated SAML da un provider di identità esterno del pool di utenti supportato dal client dell'app richiesto.
-
Un utente richiede l'accesso SAML con la tua applicazione.
-
L'applicazione richiama un browser o reindirizza l'utente alla pagina di accesso del proprio provider SAML.
-
L'IdP autentica l'utente in modo interattivo o con una sessione memorizzata in un cookie del browser.
-
L'IdP reindirizza l'utente alla tua applicazione con l'asserzione o risposta SAML nel corpo POST.
-
L'applicazione aggiunge l'asserzione SAML al corpo POST di una richiesta all'endpoint del pool di utenti.
saml2/idpresponse -
Amazon Cognito emette un codice di autorizzazione all'utente.
-
L'utente presenta il codice di autorizzazione alla tua app, che lo scambia con token web JSON (JWT).
-
L'applicazione accetta ed elabora il token ID dell'utente come autenticazione, genera richieste autorizzate alle risorse con il relativo token di accesso e memorizza il token di aggiornamento.
I passaggi seguenti descrivono il processo generale di configurazione e accesso con un provider IdP-initiated SAML 2.0.
-
Crea o designa un pool di utenti e un client di app.
-
Crea un IdP SAML 2.0 nel tuo pool di utenti.
-
Configura il tuo IdP per supportare l'iniziazione dell'IdP. IdP-initiated SAML introduce considerazioni sulla sicurezza a cui altri provider SSO non sono soggetti. Per questo motivo, non puoi aggiungere prodotti non SAML IdPs, incluso il pool di utenti stesso, a nessun client di app che utilizza un provider SAML con accesso. IdP-initiated
-
Associa il tuo provider IdP-initiated SAML a un client di app nel tuo pool di utenti.
-
Indirizza l'utente alla pagina di accesso del tuo IdP SAML e recupera un'asserzione SAML.
-
Indirizza l'utente all'endpoint del tuo pool di utenti con la relativa asserzione SAML
saml2/idpresponse. -
Ricevi token web JSON (JWT).
Per accettare asserzioni SAML non richieste nel tuo pool di utenti, devi considerarne l'effetto sulla sicurezza della tua app. I tentativi di spoofing delle richieste e CSRF sono probabili quando si accettano richieste. IdP-initiated Sebbene il tuo pool di utenti non sia in grado di verificare una sessione di IdP-initiated accesso, Amazon Cognito convalida i parametri della richiesta e le asserzioni SAML.
Inoltre, l'asserzione SAML non deve contenere un InResponseTo reclamo e deve essere stata emessa entro i 6 minuti precedenti.
Devi inviare le richieste con IdP-initiated SAML al tuo. /saml2/idpresponse Per le richieste di autorizzazione all'accesso SP-initiated e alla gestione, devi fornire parametri che identifichino il client dell'app richiesto, gli ambiti, l'URI di reindirizzamento e altri dettagli come parametri della stringa di query nelle richieste. HTTP GET Per le asserzioni IdP-initiated SAML, tuttavia, i dettagli della richiesta devono essere formattati come RelayState parametri nel corpo di una richiesta. HTTP POST Il corpo della richiesta deve contenere anche l'asserzione SAML come parametro. SAMLResponse
Di seguito è riportato un esempio di richiesta e risposta per un provider IdP-initiated SAML.
POST /saml2/idpresponse HTTP/1.1 User-Agent:USER_AGENTAccept: */* Host:example.auth.us-east-1.amazoncognito.comContent-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%2BphoneHTTP/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]