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à.
Tutorial IAM: utilizza un AWS CloudFormation modello per creare un provider di identità SAML (IdP)
Per configurare la federazione SAML per il tuo AWS account, devi creare un provider di identità SAML (IdP). Questo tutorial mostra come utilizzare un AWS CloudFormation modello per creare un IdP SAML che stabilisca la fiducia AWS tra e il tuo IdP esterno.
Il modello crea un IdP SAML configurato con il documento di metadati del tuo IdP. I ruoli IAM federati possono quindi fare riferimento a questo IdP per consentire agli utenti autenticati del tuo IdP esterno di accedere alle risorse. AWS
La risorsa distribuita è costituita da un IdP SAML configurato con il documento di metadati del tuo IdP e impostazioni di crittografia opzionali.
Prerequisiti
Questo tutorial presuppone che tu abbia a disposizione quanto segue:
-
Python 3.6 o versione successiva installato sul computer locale per eseguire il comando Python utilizzato in questo tutorial per formattare il file XML dei metadati SAML del tuo IdP.
-
Un documento di metadati SAML del tuo IdP esterno salvato come file XML.
Crea un IdP SAML utilizzando AWS CloudFormation
Per creare l'IdP SAML, creerai CloudFormation un modello e lo utilizzerai per creare uno stack contenente la risorsa IdP.
Crea il modello
Per prima cosa, crea il CloudFormation modello.
-
Nella Modello sezione, fai clic sull'icona di copia nella scheda JSON o YAML per copiare il contenuto del modello.
-
Incolla il contenuto del modello in un nuovo file.
-
Salva il file localmente.
Creazione dello stack
Quindi, usa il modello che hai salvato per effettuare il provisioning di uno CloudFormation stack.
-
Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformation.
-
Nella pagina Stacks, dal menu Crea stack, scegli con nuove risorse (standard).
-
Specificate il modello:
-
In Prerequisito, scegli Scegli un modello esistente.
-
In Specificare il modello, scegli Carica un file modello.
-
Scegli il file, vai al file modello e selezionalo.
-
Scegli Next (Successivo).
-
-
Specificate i seguenti dettagli dello stack:
-
Immettete un nome per lo stack.
-
Infatti IdentityProviderName, puoi lasciare vuoto questo campo per generare automaticamente un nome basato sul nome dello stack o inserire un nome personalizzato per il tuo IdP SAML. I nomi personalizzati devono contenere solo caratteri alfanumerici, punti, caratteri di sottolineatura e trattini.
-
Per IdentityProviderSAMLMetadataDocument, devi formattare il file XML di metadati SAML come una singola riga prima di incollarlo in questo campo. Ciò è necessario perché la CloudFormation console richiede che il contenuto XML venga formattato come una singola riga quando viene passato attraverso i parametri della console.
Usa il seguente comando Python per riformattare il tuo file XML:
python3 -c "import sys, re; content=open(sys.argv[1]).read(); print(re.sub(r'>\s+<', '><', content.replace('\n', '').replace('\r', '').strip()))"saml-metadata.xmlNota
Il documento di metadati SAML dell'IdP deve essere formattato come una singola riga per l'immissione dei parametri della console. Il comando Python rimuove le interruzioni di riga e gli spazi bianchi aggiuntivi per creare il formato richiesto mantenendo tutto il contenuto e la struttura originali.
Copia l'output dal comando Python e incollalo nel campo IdentityProviderSAMLMetadataDocumento.
Esempio di documento di metadati SAML formattato (abbreviato):
<?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://portal.sso.example.com/saml/assertion/CompanyIdP"><md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><md:KeyDescriptor use="signing"><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:X509Data><ds:X509Certificate>MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiIMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV...</ds:X509Certificate></ds:X509Data></ds:KeyInfo></md:KeyDescriptor><md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://portal.sso.example.com/saml/logout/CompanyIdP"/><md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat><md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://portal.sso.example.com/saml/assertion/CompanyIdP"/></md:IDPSSODescriptor></md:EntityDescriptor> -
Per gli altri parametri, accetta i valori predefiniti o inserisci i tuoi in base alle tue esigenze:
-
IdentityProviderAddPrivateKey- Chiave privata opzionale per decrittografare le asserzioni SAML
-
IdentityProviderAssertionEncryptionMode- Facoltativo, imposta la modalità di crittografia per le asserzioni SAML (consentita, obbligatoria o vuota)
-
-
Scegli Next (Successivo).
-
-
Configura le opzioni dello stack:
-
In Opzioni di errore dello stack, scegli Elimina tutte le risorse appena create.
Nota
La scelta di questa opzione evita che ti vengano addebitate le risorse la cui politica di eliminazione specifica che tali risorse vengano mantenute anche se la creazione dello stack fallisce.
-
Accetta tutti gli altri valori predefiniti.
-
In Capacità, seleziona la casella per confermare che CloudFormation potresti creare risorse IAM nel tuo account.
-
Scegli Next (Successivo).
-
-
Controlla i dettagli dello stack e scegli Invia.
AWS CloudFormation crea lo stack. Una volta completata la creazione dello stack, le risorse dello stack sono pronte per l'uso. Puoi utilizzare la scheda Risorse nella pagina dei dettagli dello stack per visualizzare le risorse che sono state fornite nel tuo account.
Lo stack produrrà i seguenti valori, che puoi visualizzare nella scheda Output:
-
providerARN: l'ARN dell'IdP SAML creato (ad esempio,).
arn:aws:iam::123456789012:saml-provider/CompanyIdPAvrai bisogno di questo ARN per creare ruoli che si affidano a questo provider. -
ProviderName: il nome dell'IdP SAML creato (ad esempio
CompanyIdP, se hai specificato un nome personalizzatomy-saml-stack-saml-providero se hai utilizzato la denominazione predefinita).
Questi output vengono inoltre esportati, consentendo loro di essere importati da altri AWS CloudFormation
stack utilizzando la funzione. Fn::ImportValue
Verifica l'IdP SAML
Una volta creato l'IdP SAML, puoi verificarne la configurazione e prendere nota del relativo ARN da utilizzare con i ruoli federati.
-
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel pannello di navigazione, scegli Identity providers (Provider di identità).
Dovresti vedere il tuo IdP SAML appena creato nell'elenco.
-
Scegli il nome dell'IdP per visualizzarne i dettagli.
Nella pagina dei dettagli dell'IdP, puoi vedere il documento di metadati SAML e altri dettagli di configurazione.
-
Nota il Provider ARN visualizzato nella pagina dei dettagli.
Avrai bisogno di questo ARN per creare ruoli IAM federati che si fidano di questo IdP.
-
Esamina il documento di metadati per assicurarti che corrisponda a quello che hai fornito dal tuo IdP esterno.
Il tuo IdP SAML è ora pronto per essere utilizzato dai ruoli IAM federati. Puoi creare ruoli che si fidano di questo IdP per consentire agli utenti autenticati del tuo IdP esterno di assumere tali ruoli e accedere alle risorse. AWS
Pulisci: elimina le risorse
Come passaggio finale, eliminerai lo stack e le risorse in esso contenute.
-
Apri la AWS CloudFormation console.
-
Nella pagina Pile, scegli lo stack creato dal modello, quindi scegli Elimina, quindi conferma Elimina.
CloudFormation avvia l'eliminazione dello stack e di tutte le risorse che include.
CloudFormation dettagli del modello
Risorse
Il AWS CloudFormation modello di questo tutorial creerà la seguente risorsa nel tuo account:
AWS::IAM::SAMLProvider: un IdP SAML che stabilisce un rapporto di fiducia AWS tra e il tuo IdP esterno.
Configurazione
Il modello include i seguenti parametri configurabili:
-
IdentityProviderName- Il nome del tuo IdP SAML (lascia vuoto il nome generato automaticamente)
Esempio: o
CompanyIdPEnterpriseSSO -
IdentityProviderSAMLMetadataDocumento: il documento di metadati SAML del tuo IdP esterno (formattato come una singola riga)
-
IdentityProviderAddPrivateKey- Chiave privata opzionale per decrittografare le asserzioni SAML
-
IdentityProviderAssertionEncryptionMode- Facoltativo, imposta la modalità di crittografia per le asserzioni SAML
CloudFormation modello
Salva il seguente codice JSON o YAML come file separato da utilizzare come CloudFormation modello per questo tutorial.