Configurazione di un SAML provider come pool di identità IdP - 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à.

Configurazione di un SAML provider come pool di identità IdP

Con i pool di identità di Amazon Cognito, puoi autenticare gli utenti con provider di identità (IdPs) fino alla versione 2.0. SAML Puoi utilizzare un IdP che supporta Amazon SAML Cognito per fornire un flusso di onboarding semplice per i tuoi utenti. Il tuo SAML IdP che supporta specifica i ruoli che IAM gli utenti possono assumere. In questo modo, diversi utenti possono ricevere diversi set di autorizzazioni.

Configurazione del pool di identità per un SAML IdP

I passaggi seguenti descrivono come configurare il pool di identità per l'utilizzo di un IdP SAML basato.

Per aggiungere un provider di SAML identità (IdP)
  1. Scegli Pool di identità dalla console di Amazon Cognito. Seleziona un pool di identità.

  2. Seleziona la scheda Accesso utente.

  3. Seleziona Aggiungi provider di identità.

  4. Scegli SAML.

  5. Scegli un provider di SAML identità tra IAM IdPs i tuoi Account AWS. Se desideri aggiungere un nuovo SAML provider, scegli Crea nuovo provider per accedere alla IAM console.

  6. Per impostare il ruolo richiesto da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura Impostazioni ruolo.

    1. Puoi assegnare agli utenti di tale IdP il ruolo predefinito impostato quando hai configurato il ruolo autenticato oppure selezionare l'opzione Scegli ruolo con regole.

      1. Se scegli l'opzione Scegli ruolo con regole, inserisci la Richiesta dall'autenticazione dell'utente, l'Operatore con cui desideri confrontare la richiesta, il Valore che determina una corrispondenza a questa scelta di ruolo e il Ruolo che desideri assegnare quando l'Assegnazione del ruolo corrisponde. Seleziona Aggiungi un altro per creare una regola aggiuntiva basata su una condizione diversa.

      2. Scegli una Risoluzione del ruolo. Quando le richieste dell'utente non corrispondono alle regole, puoi negare le credenziali o emettere credenziali per il Ruolo autenticato.

  7. Per modificare i tag principali assegnati da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura Attributi per il controllo degli accessi.

    1. Per non applicare alcun tag principale, scegli Inattivo.

    2. Per applicare i tag principali in base alle richieste sub e aud, scegli Utilizza mappature predefinite.

    3. Per creare un tuo schema personalizzato di attributi dei tag principali, scegli Utilizza mappature personalizzate. Quindi, inserisci una Chiave tag che deve essere originata da ciascuna Richiesta che desideri rappresentare in un tag.

  8. Seleziona Salva modifiche.

Configurazione del tuo SAML IdP

Dopo aver creato il SAML provider, configura il tuo SAML IdP per aggiungere un relying party trust tra il tuo IdP e. AWS Con molti IdPs, puoi specificare uno URL che l'IdP può utilizzare per leggere le informazioni e i certificati del relying party da un documento. XML Infatti AWS, puoi usare https://signin.aws.amazon.com/static/ saml-metadata.xml. Il passaggio successivo consiste nel configurare la risposta all'SAMLasserzione del tuo IdP per compilare i claim necessari. AWS Per i dettagli sulla configurazione delle attestazioni, consulta Configurazione delle SAML asserzioni per la risposta di autenticazione.

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

Personalizzazione del ruolo utente con SAML

Se lo utilizzi SAML con Amazon Cognito Identity, puoi personalizzare il ruolo dell'utente finale. Amazon Cognito supporta solo il flusso avanzato con l'SAMLIdP basato. Non è necessario specificare un ruolo autenticato o non autenticato per il pool di identità per utilizzare un IdP basatoSAML. L'attributo https://aws.amazon.com/SAML/Attributes/Role claim specifica una o più coppie di ruolo e provider delimitati da virgole. ARN Questi sono i ruoli che l'utente può assumere. È possibile configurare l'SAMLIdP per popolare gli attributi del ruolo in base alle informazioni sugli attributi utente disponibili dall'IdP. Se ricevi più ruoli nell'SAMLasserzione, compila il parametro opzionale customRoleArn quando chiami. getCredentialsForIdentity L'utente lo assume customRoleArn se il ruolo corrisponde a uno nell'affermazione dell'asserzione. SAML

Autenticazione degli utenti con un IdP SAML

Per eseguire la federazione con l'IdP SAML basato, determina URL il punto in cui l'utente avvia l'accesso. AWS la federazione utilizza l'accesso avviato da IDP. In AD FS 2.0, URL assume la forma di. https://<fqdn>/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices

Per aggiungere il supporto per il tuo SAML IdP in Amazon Cognito, per prima cosa autentica gli utenti con SAML il tuo provider di identità dall'applicazione iOS o Android. Il codice utilizzato per l'integrazione e l'autenticazione con l'SAMLIdP è specifico SAML dei provider. Dopo aver autenticato l'utente, puoi utilizzare Amazon APIs Cognito per fornire l'asserzione SAML risultante ad Amazon Cognito Identity.

Non puoi ripetere o riprodurre un'SAMLasserzione nella Logins mappa della tua richiesta di pool di identità. API Un'asserzione ripetuta ha un ID di SAML asserzione che duplica l'ID di una richiesta precedente. API APIle operazioni che possono accettare un'SAMLasserzione nella Logins mappa includono GetId,, e. GetCredentialsForIdentityGetOpenIdTokenGetOpenIDTokenForDeveloperIdentity È possibile riprodurre un ID di SAML asserzione una volta per API richiesta in un flusso di autenticazione del pool di identità. Ad esempio, puoi fornire la stessa SAML asserzione in una GetId richiesta e in una GetCredentialsForIdentity richiesta successiva, ma non in una seconda richiesta. GetId

Android

Se utilizzi AndroidSDK, puoi compilare la mappa degli accessi con l'SAMLasserzione come segue.

Map logins = new HashMap(); logins.put("arn:aws:iam::aws account id:saml-provider/name", "base64 encoded assertion response"); // Now this should be set to CognitoCachingCredentialsProvider object. CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(context, identity pool id, region); credentialsProvider.setLogins(logins); // If SAML assertion contains multiple roles, resolve the role by setting the custom role credentialsProvider.setCustomRoleArn("arn:aws:iam::aws account id:role/customRoleName"); // This should trigger a call to the Amazon Cognito service to get the credentials. credentialsProvider.getCredentials();

iOS

Se utilizzi iOSSDK, puoi fornire l'SAMLasserzione AWSIdentityProviderManager come segue.

- (AWSTask<NSDictionary<NSString*,NSString*> *> *) logins { //this is hardcoded for simplicity, normally you would asynchronously go to your SAML provider //get the assertion and return the logins map using a AWSTaskCompletionSource return [AWSTask taskWithResult:@{@"arn:aws:iam::aws account id:saml-provider/name":@"base64 encoded assertion response"}]; } // If SAML assertion contains multiple roles, resolve the role by setting the custom role. // Implementing this is optional if there is only one role. - (NSString *)customRoleArn { return @"arn:aws:iam::accountId:role/customRoleName"; }