Configurare le asserzioni SAML per la risposta di autenticazione - AWS Identity and Access Management

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à.

Configurare le asserzioni SAML per la risposta di autenticazione

Dopo aver verificato l'identità di un utente nell'organizzazione, il gestore dell'identità digitale (IdP) esterno invia una risposta di autenticazione all'URL dell'endpoint di accesso AWS. Questa risposta è una richiesta POST che include un token SAML che aderisce al binding POST HTTP per lo standard SAML 2.0 e che contiene i seguenti elementi o attestazioni. È possibile configurare queste affermazioni nell'IDP compatibile con SAML. Per ulteriori informazioni, consulta la documentazione del provider di identità per istruzioni su come inserire queste attestazioni.

Quando il provider di identità invia la risposta contenente le attestazioni ad AWS, molte delle attestazioni in arrivo si associano alle chiavi di contesto AWS. Queste chiavi di contesto possono essere controllate nelle policy IAM utilizzando l'elemento Condition. L'elenco delle mappature disponibili è incluso nella sezione Mappatura degli attributi SAML alle chiavi di contesto delle policy di attendibilità AWS.

Subject e NameID

La risposta deve includere esattamente un elemento SubjectConfirmation con un elemento SubjectConfirmationData che include sia l'attributo NotOnOrAfter sia l'attributo Recipient. L'attributo Recipient deve includere un valore che corrisponda all'URL dell'endpoint di accesso di AWS. Il tuo IdP può utilizzare il termine ACS, Recipient o Target per fare riferimento a questo attributo.

Se è richiesta la crittografia SAML, l'URL di accesso deve includere l'identificatore univoco che AWS assegna al provider SAML, che puoi trovare nella pagina dei dettagli del provider di identità. L'esempio seguente mostra il formato di URL di accesso con il region-code facoltativo.

https://region-code.signin.aws.amazon.com/saml

Nell'esempio seguente, l'URL di accesso include un identificatore univoco, per cui è necessario aggiungere /acs/ al percorso di accesso.

https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID

Per un elenco dei possibili valori di region-code, consulta la colonna Region (Regione) in Endpoint di accesso AWS. Per il valore AWS, puoi anche utilizzare l'endpoint di accesso globale https://signin.aws.amazon.com/saml.

Gli elementi NameID possono avere il valore persistente, transitorio o oppure possono essere costituiti dall'URI formato completo, come fornito dalla soluzione IdP. Un valore permanente indica che il valore in NameID è lo stesso per un utente da una sessione all'altra. Se il valore è transitorio, l'utente dispone di un valore NameID diverso per ogni sessione. Le interazioni Single Sign-on supportano i seguenti tipi di identificatori:

  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName

  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos

  • urn:oasis:names:tc:SAML:2.0:nameid-format:entity

Di seguito viene riportato un estratto di esempio. Sostituire con i propri valori i valori contrassegnati.

<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">_cbb88bf52c2510eabe00c1642d4643f41430fe25e3</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2013-11-05T02:06:42.876Z" Recipient="https://region-code.signin.aws.amazon.com/saml/SAMLSP4SHN3UIS2D558H46"/> </SubjectConfirmation> </Subject>
Importante

Al contrario, la chiave di contesto saml:aud proviene dall'attributo recipient SAML perché è l'equivalente SAML del campo del destinatario OIDC, ad esempio, accounts.google.com:aud.

PrincipalTagAttributo SAML

(Facoltativo) Puoi utilizzare un elemento Attribute con l'attributo Name impostato su https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}. Questo elemento consente di passare attributi come tag di sessione nell'asserzione SAML. Per ulteriori informazioni sui tag di sessione, consultare Passa i tag di sessione AWS STS.

Per passare gli attributi come tag di sessione, includi l'elemento AttributeValue che specifica il valore del tag. Ad esempio, per passare la coppia chiave-valore del tag Project = Marketing e CostCenter = 12345, utilizza il seguente attributo. Includi un elemento Attribute separato per ogni tag.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project"> <AttributeValue>Marketing</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter"> <AttributeValue>12345</AttributeValue> </Attribute>

Per impostare i tag sopra elencati come transitivi, includere un altro elemento Attribute con l'attributo Name impostato a https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys. Questo è un attributo con più valori opzionale che imposta i tag di sessione come transitivi. I tag transitivi persistono quando utilizzi la sessione SAML per assumere un altro ruolo in AWS. Questo è noto come concatenazione del ruolo. Ad esempio, per impostare entrambi i tag Principal e CostCenter come transitivi, utilizza il seguente attributo per specificare le chiavi.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>CostCenter</AttributeValue> </Attribute>

RoleAttributo SAML

Puoi utilizzare un elemento Attribute con l'attributo Name impostato su https://aws.amazon.com/SAML/Attributes/Role Questo elemento contiene uno o più elementi AttributeValue che elencano il ruolo e il provider di identità IAM a cui l'utente è mappato dall'IdP. Il ruolo IAM e il provider di identità IAM sono specificati come una coppia di ARN delimitata da virgole nello stesso formato dei parametri RoleArn e PrincipalArn inoltrati ad AssumeRoleWithSAML. Questo elemento deve contenere almeno una coppia ruolo-provider (elemento AttributeValue) e può contenere più coppie. Se l'elemento contiene più coppie, all'utente viene chiesto di scegliere il ruolo da assumere quando utilizza WebSSO per accedere alla Console di gestione AWS.

Importante

Il valore dell'attributo Name nel tag Attribute è sensibile alla distinzione tra maiuscolo/minuscolo. Il valore deve essere impostato esattamente su https://aws.amazon.com/SAML/Attributes/Role.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role"> <AttributeValue>arn:aws:iam::account-number:role/role-name1,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws:iam::account-number:role/role-name2,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws:iam::account-number:role/role-name3,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> </Attribute>

RoleSessionNameAttributo SAML

Puoi utilizzare un elemento Attribute con l'attributo Name impostato su https://aws.amazon.com/SAML/Attributes/RoleSessionName Questo elemento contiene un elemento AttributeValue che fornisce un identificatore per le credenziali temporanee emesse quando viene assunto il ruolo. È possibile utilizzare questa opzione per associare le credenziali temporanee all'utente che utilizza l'applicazione. Questo elemento viene utilizzato per mostrare le informazioni utente nella Console di gestione AWS. Il valore nell'elemento AttributeValue deve contenere tra 2 e 64 caratteri, può contenere solo caratteri alfanumerici, caratteri di sottolineatura e i seguenti caratteri: . , + = @ - (trattino). Non può contenere spazi. Il valore è in genere un ID utente (john) o un indirizzo e-mail (johndoe@example.com). Non deve essere un valore che include uno spazio, ad esempio il nome di visualizzazione di un utente (John Doe).

Importante

Il valore dell'attributo Name nel tag Attribute è sensibile alla distinzione tra maiuscolo/minuscolo. Il valore deve essere impostato esattamente su https://aws.amazon.com/SAML/Attributes/RoleSessionName.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName"> <AttributeValue>user-id-name</AttributeValue> </Attribute>

SessionDurationAttributo SAML

(Facoltativo) Puoi utilizzare un elemento Attribute con l'attributo Name impostato su https://aws.amazon.com/SAML/Attributes/SessionDuration". Questo elemento contiene un elemento AttributeValue che specifica per quanto tempo l'utente può accedere alla Console di gestione AWS prima di dover richiedere nuove credenziali provvisorie. Il valore è un numero intero che rappresenta il numero di secondi per la sessione. Il valore può variare da 900 secondi (15 minuti) a 43.200 secondi (12 ore). Se questo attributo non è presente, la credenziale dura per un'ora (il valore predefinito del parametro DurationSeconds dell'API AssumeRoleWithSAML).

Per utilizzare questo attributo, è necessario configurare il provider SAML per fornire l'accesso Single Sign-On alla Console di gestione AWS tramite l'endpoint Web di accesso della console all'indirizzo https://region-code.signin.aws.amazon.com/saml. Per un elenco dei possibili valori di region-code, consulta la colonna Region (Regione) in Endpoint di accesso AWS. Facoltativamente, puoi utilizzare il seguente URL: https://signin.aws.amazon.com/static/saml. Si noti che questo attributo estende le sessioni solo alla Console di gestione AWS. Non può estendere la durata di altre credenziali. Tuttavia, se è presente in una chiamata API AssumeRoleWithSAML, può essere utilizzato per abbreviare la durata della sessione. La durata predefinita delle credenziali restituite dalla chiamata è di 60 minuti.

Si noti inoltre che, se viene definito anche un attributo SessionNotOnOrAfter, il valore inferiore dei due attributi, SessionDuration o SessionNotOnOrAfter, stabilisce la durata massima della sessione della console.

Quando si abilitano le sessioni della console con una durata estesa, aumenta il rischio di compromissione delle credenziali. Per mitigare questo rischio, è possibile disabilitare immediatamente le sessioni della console attiva per tutti i ruoli, scegliendo Revoca sessioni nella pagina Riepilogo ruolo della console IAM. Per ulteriori informazioni, consulta Revocare le credenziali di sicurezza temporanee per i ruoli IAM.

Importante

Il valore dell'attributo Name nel tag Attribute è sensibile alla distinzione tra maiuscolo/minuscolo. Il valore deve essere impostato esattamente su https://aws.amazon.com/SAML/Attributes/SessionDuration.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/SessionDuration"> <AttributeValue>1800</AttributeValue> </Attribute>

SourceIdentityAttributo SAML

(Facoltativo) Puoi utilizzare un elemento Attribute con l'attributo Name impostato su https://aws.amazon.com/SAML/Attributes/SourceIdentity. Questo elemento contiene un elemento AttributeValue che fornisce un identificatore per la persona o l'applicazione che utilizza un ruolo IAM. Il valore per l'identità di origine persiste quando si utilizza la sessione SAML per assumere un altro ruolo in AWS, operazione nota come concatenamento del ruolo. Il valore per l'identità di origine è presente nella richiesta per ogni operazione eseguita durante la sessione del ruolo. Il valore impostato non può essere modificato durante la sessione del ruolo. Gli amministratori possono quindi utilizzare i log AWS CloudTrail per monitorare e controllare le informazioni sull'identità di origine per determinare chi ha eseguito le operazioni con i ruoli condivisi.

Il valore nell'elemento AttributeValue deve contenere tra 2 e 64 caratteri, può contenere solo caratteri alfanumerici, caratteri di sottolineatura e i seguenti caratteri: . , + = @ - (trattino). Non può contenere spazi. Il valore è in genere un attributo associato all'utente, ad esempio un ID utente (john) o un indirizzo e-mail (johndoe@example.com). Non deve essere un valore che include uno spazio, ad esempio il nome di visualizzazione di un utente (John Doe). Per ulteriori informazioni sull'utilizzo dell'identità di origine, consulta Monitoraggio e controllo delle operazioni intraprese con i ruoli assunti.

Importante

Se l'asserzione SAML è configurata per utilizzare l'attributo SourceIdentity, allora la policy di attendibilità del ruolo deve includere anche l'operazione sts:SetSourceIdentity altrimenti l'operazione di assunzione del ruolo avrà esito negativo. Per ulteriori informazioni sull'utilizzo dell'identità di origine, consulta Monitoraggio e controllo delle operazioni intraprese con i ruoli assunti.

Per inviare un attributo dell'identità di origine, includi l'elemento AttributeValue che specifica il valore dell'identità di origine. Ad esempio, per inviare Diego dell'identità di origine, utilizza il seguente attributo.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/SourceIdentity"> <AttributeValue>Diego</AttributeValue>

Mappatura degli attributi SAML alle chiavi di contesto delle policy di attendibilità AWS

Le tabelle in questa sezione elencano gli attributi SAML comunemente usati e il modo in cui sono mappati alle chiavi di contesto delle condizioni delle policy in AWS. Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le chiavi con i valori che sono inclusi nelle asserzioni incluse in una richiesta di accesso SAML.

Importante

Queste chiavi sono disponibili solo nelle policy di affidabilità IAM (policy che determinano chi può assumere un ruolo) e non sono applicabili alle policy di autorizzazione.

Nella tabella degli attributi eduPerson e eduOrg, i valori vengono digitati come stringhe o come elenchi di stringhe. Per i valori di stringa, puoi testare questi valori nelle policy di attendibilità IAM utilizzando le condizioni StringEquals o StringLike. Per i valori che contengono un elenco di stringhe, è possibile utilizzare gli ForAnyValueoperatori del set di policyForAllValues e per un test dei valori delle policy di attendibilità.

Nota

Si consiglia di includere solo un'attestazione per chiave di contesto AWS. Se ne include più di una, verrà mappata una sola attestazione.

La tabella riportata di seguito mostra gli attributi eduPerson ed eduOrg.

Attributo eduPerson o eduOrg (chiave Name) Mappa a questa chiave di contesto AWS (chiave FriendlyName) Tipo

urn:oid:1.3.6.1.4.1.5923.1.1.1.1

eduPersonAffiliation

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.1.1.2

eduPersonNickname

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.1.1.3

eduPersonOrgDN

Stringa

urn:oid:1.3.6.1.4.1.5923.1.1.1.4

eduPersonOrgUnitDN

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.1.1.5

eduPersonPrimaryAffiliation

Stringa

urn:oid:1.3.6.1.4.1.5923.1.1.1.6

eduPersonPrincipalName

Stringa

urn:oid:1.3.6.1.4.1.5923.1.1.1.7

eduPersonEntitlement

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.1.1.8

eduPersonPrimaryOrgUnitDN

Stringa

urn:oid:1.3.6.1.4.1.5923.1.1.1.9

eduPersonScopedAffiliation

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.1.1.10

eduPersonTargetedID

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.1.1.11

eduPersonAssurance

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.2.1.2

eduOrgHomePageURI

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.2.1.3

eduOrgIdentityAuthNPolicyURI

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.2.1.4

eduOrgLegalName

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.2.1.5

eduOrgSuperiorURI

Elenco di stringhe

urn:oid:1.3.6.1.4.1.5923.1.2.1.6

eduOrgWhitePagesURI

Elenco di stringhe

urn:oid:2.5.4.3

cn

Elenco di stringhe

La tabella riportata di seguito mostra gli attributi di Active Directory.

Attributo AD Mappa a questa chiave di contesto AWS Tipo

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

name

Stringa

http://schemas.xmlsoap.org/claims/CommonName

commonName

Stringa

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname

givenName

Stringa

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname

surname

Stringa

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

mail

Stringa

http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid

uid

Stringa

La tabella riportata di seguito mostra gli attributi X.500.

Attributo X.500 Mappa a questa chiave di contesto AWS Tipo

2.5.4.3

commonName

Stringa

2.5.4.4

surname

Stringa

2.4.5.42

givenName

Stringa

2.5.4.45

x500UniqueIdentifier

Stringa

0.9.2342.19200300100.1.1

uid

Stringa

0.9.2342.19200300100.1.3

mail

Stringa

0.9.2342.19200300.100.1.45

organizationStatus

Stringa