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à.
Federazione SAML 2.0
AWS supporta la federazione delle identità con SAML 2.0 (Security Assertion Markup Language 2.0)
La federazione IAM supporta i casi d'uso indicati di seguito.
-
Accesso federato per consentire a un utente o a un'applicazione dell'organizzazione di chiamare le operazioni AWS API. Questo caso d'uso è discusso nella sezione seguente. viene utilizzata un'asserzione SAML (come parte della risposta di autenticazione) generata nell'organizzazione per ottenere credenziali di sicurezza temporanee. Questo scenario è analogo ad altri scenari di federazione supportati da IAM, come descritto in Richiesta di credenziali di sicurezza temporanee e Federazione OIDC. Tuttavia, l'organizzazione basata su SAML 2.0 gestisce molti dettagli IdPs in fase di esecuzione per eseguire il controllo dell'autenticazione e delle autorizzazioni.
-
Single Sign-On (SSO) basato sul Web da e verso l'organizzazione. AWS Management Console Gli utenti possono accedere a un portale dell'organizzazione ospitato da un IdP compatibile con SAML 2.0, selezionare un'opzione a cui accedere ed essere reindirizzati AWS alla console senza dover fornire ulteriori informazioni di accesso. Puoi utilizzare un IdP SAML di terze parti per stabilire l'accesso SSO alla console o creare un IdP personalizzato per consentire l'accesso alla console per utenti esterni. Per ulteriori informazioni sulla creazione di un provider di identità personalizzato, consulta Abilitazione dell'accesso personalizzato da parte di un broker di identità alla AWS console.
Argomenti
- Utilizzo della federazione basata su SAML per l'accesso API ad AWS
- Panoramica della configurazione della federazione basata su SAML 2.0
- Panoramica del ruolo per consentire l'accesso federato SAML alle tue risorse AWS
- Identificazione univoca degli utenti nella federazione basata su SAML
- Crea un provider di identità SAML in IAM
- Configura il tuo IdP SAML 2.0 con la fiducia dei relying party e l'aggiunta di claim
- Integra fornitori di soluzioni SAML di terze parti con AWS
- Configurare le asserzioni SAML per la risposta di autenticazione
- Consentire agli utenti federati SAML 2.0 di accedere a AWS Management Console
Utilizzo della federazione basata su SAML per l'accesso API ad AWS
Supponi di voler fornire ai dipendenti un modo per copiare i dati dai loro computer a una cartella di backup. È possibile creare un'applicazione che gli utenti possono eseguire sui propri computer. Sul back-end, l'applicazione legge e scrive oggetti in un bucket Amazon S3. Gli utenti non hanno accesso diretto a. AWS viene utilizzato invece il seguente processo:
-
Un utente dell'organizzazione utilizza un'app client per richiedere l'autenticazione dal provider di identità della propria organizzazione.
-
Il provider di identità autentica l'utente rispetto all'archivio identità organizzazione.
-
Il provider di identità crea un'asserzione SAML con informazioni sull'utente e invia l'asserzione all'app client.
-
L'app client chiama l' AWS STS
AssumeRoleWithSAML
API, passando l'ARN del provider SAML, l'ARN del ruolo da assumere e l'asserzione SAML di IdP. -
La risposta dell'API all'app client include credenziali di sicurezza temporanee.
-
L'app client utilizza le credenziali di sicurezza temporanee per chiamare le operazioni dell'API di Amazon S3.
Panoramica della configurazione della federazione basata su SAML 2.0
Prima di poter utilizzare la federazione basata su SAML 2.0 come descritto nello scenario e nel diagramma precedenti, devi configurare l'IdP dell'organizzazione e il tuo in modo che si fidino l'uno dell'altro. Account AWS Di seguito è descritta la procedura generale per la configurazione di questo tipo di attendibilità. All'interno dell'organizzazione, è necessario disporre di un provider di identità che supporti SAML 2.0, come Microsoft Active Directory Federation Service (ADFS, parte di Windows Server), Shibboleth o di un altro provider compatibile con SAML 2.0.
Nota
Per migliorare la resilienza della federazione, ti consigliamo di configurare l'IdP e la federazione AWS
per supportare più endpoint di accesso SAML. Per i dettagli, consulta l'articolo del AWS Security Blog Come utilizzare gli endpoint SAML regionali per il failover
Configura l'IdP della tua organizzazione e fidati AWS l'uno dell'altro
-
Registrati AWS come fornitore di servizi (SP) con l'IdP della tua organizzazione. Utilizzo del documento dei metadati SAML generato da
https://
region-code
.signin.aws.amazon.com/static/saml-metadata.xmlPer un elenco dei possibili valori di
region-code
, consulta la colonna Region (Regione) in Endpoint di accesso AWS.Se lo desideri, puoi utilizzare il documento dei metadati SAML generati da
https://signin.aws.amazon.com/static/saml-metadata.xml
. -
Utilizzando il provider di identità dell'organizzazione, generare un file XML di metadati equivalenti che possono descrivere l'IdP come provider di identità IAM in AWS. Deve includere il nome dell'emittente, una data di creazione, una data di scadenza e le chiavi che AWS possono essere utilizzate per convalidare le risposte di autenticazione (asserzioni) dell'organizzazione.
-
Nella console IAM, crei un provider di identità SAML. Come parte di questo processo, carichi il documento di metadati SAML prodotti dall'IdP della tua organizzazione in. Passo 2 Per ulteriori informazioni, consulta Crea un provider di identità SAML in IAM.
-
In IAM, vengono creati uno o più ruoli IAM. Nella politica di fiducia del ruolo, imposti il provider SAML come principale, che stabilisce una relazione di fiducia tra la tua organizzazione e. AWS La policy di autorizzazione del ruolo stabilisce le operazioni che gli utenti dell'organizzazione possono effettuare in AWS. Per ulteriori informazioni, consulta Creazione di un ruolo per un provider di identità di terza parte (federazione).
Nota
Gli IDP SAML utilizzati in una policy di attendibilità dei ruoli devono appartenere allo stesso account in cui si trova il ruolo.
-
Nel provider di identità dell'organizzazione, si definiscono asserzioni che associano utenti o gruppi dell'organizzazione ai ruoli IAM. Nota che i diversi utenti e gruppi dell'organizzazione potrebbero essere mappati a diversi ruoli IAM. La procedura per eseguire la mappatura dipende dal provider di identità che si sta utilizzando. Nello scenario precedente che utilizza una cartella Amazon S3 per gli utenti, è possibile che tutti gli utenti dispongano della mappatura allo stesso ruolo che fornisce le autorizzazioni Amazon S3. Per ulteriori informazioni, consulta Configurare le asserzioni SAML per la risposta di autenticazione.
Se il tuo IdP abilita l'SSO AWS sulla console, puoi configurare la durata massima delle sessioni della console. Per ulteriori informazioni, consulta Consentire agli utenti federati SAML 2.0 di accedere a AWS Management Console.
-
Nell'applicazione che stai creando, chiami l' AWS Security Token Service
AssumeRoleWithSAML
API, passandole l'ARN del provider SAML in cui hai creato, Passo 3 l'ARN del ruolo da assumere in cui hai creato e l'asserzione SAML sull'utente corrente che ricevi dal tuo IdP. Passo 4 AWS si assicura che la richiesta di assunzione del ruolo provenga dall'IdP a cui si fa riferimento nel provider SAML.Per ulteriori informazioni, consulta AssumeRoleWithSAML nell'API Reference.AWS Security Token Service
-
Se la richiesta ha esito positivo, l'API restituisce una serie di credenziali di sicurezza temporanee, che l'applicazione può utilizzare per inviare richieste firmate ad AWS. L'applicazione contiene informazioni sull'utente corrente e può accedere a cartelle specifiche dell'utente in Amazon S3, come descritto nello scenario precedente.
Panoramica del ruolo per consentire l'accesso federato SAML alle tue risorse AWS
Il ruolo o i ruoli creati in IAM definiscono ciò che gli utenti federati dell'organizzazione possono fare in AWS. Quando si creano policy di affidabilità per il ruolo, è necessario specificare il provider SAML creato in precedenza come Principal
. È inoltre possibile estendere la policy di affidabilità con un elemento Condition
per permettere solo agli utenti che corrispondono ad alcuni attributi SAML di accedere al ruolo. Ad esempio, è possibile specificare che solo gli utenti con l'affiliazione SAML staff
(come affermato da https://openidp.feide.no) possono accedere al ruolo, come illustrato dalla seguente policy di esempio:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Federated": "arn:aws:iam::
account-id
:saml-provider/ExampleOrgSSOProvider"}, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "saml:aud": "https://signin.aws.amazon.com/saml", "saml:iss": "https://openidp.feide.no" }, "ForAllValues:StringLike": {"saml:edupersonaffiliation": ["staff"]} } }] }
Nota
Gli IDP SAML utilizzati in una policy di attendibilità dei ruoli devono appartenere allo stesso account in cui si trova il ruolo.
Per ulteriori informazioni sulle chiavi SAML che è possibile verificare in una policy, consulta Chiavi disponibili per la federazione AWS STS basata su SAML.
Puoi includere endpoint regionali per l'attributo saml:aud
in https://
. Per un elenco dei possibili valori di region-code
.signin.aws.amazon.com/static/saml-metadata.xmlregion-code
, consulta la colonna Region (Regione) in Endpoint di accesso AWS.
Per la policy di autorizzazione nel ruolo, è necessario specificare le autorizzazioni come per qualsiasi ruolo. Ad esempio, se agli utenti della tua organizzazione è consentito amministrare istanze di Amazon Elastic Compute Cloud, devi consentire esplicitamente le azioni di Amazon EC2 nella politica delle autorizzazioni, come quelle nella politica gestita di Amazon EC2. FullAccess
Identificazione univoca degli utenti nella federazione basata su SAML
Quando si creano policy di accesso in IAM, spesso è utile poter specificare le autorizzazioni in base all'identità degli utenti. Ad esempio, per gli utenti che sono stati federati tramite SAML, un'applicazione potrebbe voler mantenere le informazioni in Amazon S3 utilizzando una struttura come questa:
myBucket/app1/user1
myBucket/app1/user2
myBucket/app1/user3
Puoi creare il bucket (myBucket
) e la cartella (app1
) tramite la console Amazon S3 o AWS CLI il, poiché si tratta di valori statici. Tuttavia, le cartelle specifiche dell'utente (user1
, user2
, user3
e così via) devono essere create in fase di runtime utilizzando il codice, poiché il valore che identifica l'utente non è noto fino al primo accesso dell'utente tramite il processo di federazione.
Per scrivere policy che fanno riferimento ai dettagli specifici dell'utente come parte di un nome di risorsa, l'identità dell'utente deve essere disponibile nelle chiavi SAML che possono essere utilizzate nelle condizioni di policy. Le seguenti chiavi sono disponibili per la federazione basata su SAML 2.0 da utilizzare nelle policy IAM. È possibile utilizzare i valori restituiti dalle chiavi seguenti per creare identificativi utente univoci per risorse come le cartelle Amazon S3.
-
saml:namequalifier
. Un valore hash basato sulla concatenazione del valore della rispostaIssuer
(saml:iss
) e una stringa con l'ID accountAWS
e il nome descrittivo (l'ultima parte dell'ARN) del provider SAML in IAM. La concatenazione dell'ID account e del nome descrittivo del provider SAML è disponibile per le policy IAM sotto forma di chiavesaml:doc
. L'ID account e il nome del provider devono essere separati da una barra "/" come in "123456789012/provider_name". Per ulteriori informazioni, consulta la chiavesaml:doc
in Chiavi disponibili per la federazione AWS STS basata su SAML.La combinazione di
NameQualifier
eSubject
può essere utilizzata per identificare in modo univoco un utente federato. Il seguente pseudocodice mostra come viene calcolato questo valore. In questo pseudocodice+
indica la concatenazione,SHA1
rappresenta una funzione che produce un digest del messaggio utilizzando SHA-1 eBase64
rappresenta una funzione che genera una versione con codificazione Base-64 dell'output hash.Base64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) )
Per ulteriori informazioni sulle chiavi di policy disponibili quando si utilizza la federazione basata su SAML, consulta Chiavi disponibili per la federazione AWS STS basata su SAML.
-
saml:sub
(Stringa). Questo è l'oggetto della richiesta, che include un valore che identifica in modo univoco un singolo utente in un'organizzazione (ad esempio,_cbb88bf52c2510eabe00c1642d4643f41430fe25e3
). -
saml:sub_type
(Stringa). Questa chiave può esserepersistent
,transient
o l'URIFormat
completo degli elementiSubject
eNameID
utilizzati nell'asserzione SAML. Il valorepersistent
indica che il valore insaml:sub
è lo stesso per un utente in tutte le sessioni. Se il valore ètransient
, l'utente dispone di un valoresaml:sub
diverso per ogni sessione. Per ulteriori informazioni sull'attributoFormat
dell'elementoNameID
, consulta Configurare le asserzioni SAML per la risposta di autenticazione.
L'esempio seguente mostra una policy di autorizzazione che utilizza le chiavi precedenti per concedere le autorizzazioni a una cartella specifica per utente in Amazon S3. La policy presuppone che gli oggetti Amazon S3 vengano identificati utilizzando un prefisso che include sia saml:namequalifier
che saml:sub
. Si noti che l'elemento Condition
include un test per assicurarsi che saml:sub_type
sia impostato su persistent
. Se è impostato su transient
, il valore saml:sub
per l'utente può essere diverso per ogni sessione e la combinazione di valori non deve essere utilizzata per identificare le cartelle specifiche dell'utente.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::exampleorgBucket/backup/${saml:namequalifier}/${saml:sub}", "arn:aws:s3:::exampleorgBucket/backup/${saml:namequalifier}/${saml:sub}/*" ], "Condition": {"StringEquals": {"saml:sub_type": "persistent"}} } }
Per ulteriori informazioni sulle asserzioni di mappatura dal provider di identità alle chiavi di policy, consulta Configurare le asserzioni SAML per la risposta di autenticazione.