Configuração de declarações SAML para a resposta de autenticação - AWS Identity and Access Management

Configuração de declarações SAML para a resposta de autenticação

Na organização, depois da verificação da identidade de um usuário, o provedor de identidade externa (IdP) enviará uma resposta de autenticação ao endpoint SAML da AWS em https://signin.aws.amazon.com/saml. Essa resposta é uma solicitação POST que inclui um token SAML que segue o padrão Vinculação POST de HTTP para SAML 2.0 e contém os seguintes elementos ou solicitações. Você configura essas solicitações em seu IdP compatível com SAML. Consulte a documentação de seu IdP para obter instruções sobre como inserir essas solicitações.

Quando o IdP envia a resposta contendo as solicitações para a AWS, muitas das solicitações de entrada são mapeadas para as chaves de contexto da AWS. Essas chaves de contexto podem ser verificadas nas políticas do IAM usando o elemento Condition. Há uma lista de mapeamentos disponíveis na seção Mapeamento de atributos SAML para chaves de contexto de política de confiança da AWS.

Subject e NameID

O trecho a seguir mostra um exemplo. Substitua os valores marcados pelos seus próprios valores. Deve haver exatamente um elemento SubjectConfirmation com um elemento SubjectConfirmationData que inclui ambos os atributos NotOnOrAfter e Recipient. Esses atributos incluem um valor que deve corresponder ao endpoint da AWS (https://signin.aws.amazon.com/saml), conforme mostrado no exemplo a seguir. Para obter informações sobre os formatos de identificador de nome com suporte para interações de logon único consulte Oracle Sun OpenSSO Enterprise Administration Reference.

<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://signin.aws.amazon.com/saml"/> </SubjectConfirmation> </Subject>

AudienceRestriction e Audience

Por motivos de segurança, a AWS deve ser incluída como um público na declaração SAML que seu IdP envia para a AWS. Para o valor do elemento Audience, especifique https://signin.aws.amazon.com/saml ou urn:amazon:webservices. O exemplo de fragmentos XML de declarações SAML a seguir mostra como essa chave pode ser especificada pelo IdP. Inclua o exemplo que se aplica ao seu caso de uso.

<Conditions> <AudienceRestriction> <Audience>https://signin.aws.amazon.com/saml</Audience> </AudienceRestriction> </Conditions>
<Conditions> <AudienceRestriction> <Audience>urn:amazon:webservices</Audience> </AudienceRestriction> </Conditions>
Importante

O valor AudienceRestriction SAML na declaração SAML do IdP não é mapeado para a chave de contexto saml:aud que você pode testar em uma política do IAM. Em vez disso, a chave de contexto saml:aud vem do atributo destinatário SAML porque é o equivalente SAML ao campo de público OIDC, por exemplo, por accounts.google.com:aud.

PrincipalTag SAML Attribute

(Opcional) Você pode usar um elemento Attribute com o atributo Name definido como https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}. Este elemento permite que você passe atributos como tags de sessão na declaração do SAML. Para obter mais informações sobre tags de sessão, consulte Passar tags de sessão no AWS STS.

Para passar atributos como tags de sessão, inclua o elemento AttributeValue que especifica o valor da tag. Por exemplo, para passar os pares chave-valor de tag Project = Marketing e CostCenter = 12345, use o atributo a seguir. Inclua um elemento Attribute separado para cada 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>

Para definir as tags acima como transitivas, inclua outro elemento Attribute com o atributo Name definido como https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys. Ele é um atributo multivalor opcional que define suas tags de sessão como transitivas. As tags transitivas persistem quando você usa a sessão do SAML para assumir outra função na AWS. Isso é conhecido como encadeamento de funções. Por exemplo, para definir as tags Principal e CostCenter como transitivas, use o atributo a seguir para especificar as chaves.

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

Role SAML Attribute

Você pode usar um elemento Attribute com o atributo Name definido como https://aws.amazon.com/SAML/Attributes/Role Esse elemento contém um ou mais elementos AttributeValue que listam o provedor de identidade do IAM e a função para a qual o usuário é mapeado pelo IdP. A função e o provedor de identidade do IAM são especificados como um par de ARNs delimitado por vírgulas no mesmo formato que os parâmetros RoleArn e PrincipalArn que são passados para AssumeRoleWithSAML. Esse elemento deve conter pelo menos um par de provedor e função (elemento AttributeValue) e pode conter vários pares. Se o elemento contiver vários pares, será solicitado que o usuário escolhA qual função assumir quando usar o WebSSO para fazer login no AWS Management Console.

Importante

O valor do atributo Name na tag Attribute faz distinção de maiúsculas e minúsculas. Ele deve ser definido exatamente como 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>

RoleSessionName SAML Attribute

Você pode usar um elemento Attribute com o atributo Name definido como https://aws.amazon.com/SAML/Attributes/RoleSessionName Este elemento contém um elemento AttributeValue que fornece um identificador para as credenciais temporárias que são emitidas quando a função é assumida. Você pode usar isso para associar as credenciais temporárias ao usuário que está usando sua aplicação. Esse elemento é usado para exibir as informações do usuário no AWS Management Console. O valor no elemento AttributeValue deve ter entre 2 e 64 caracteres, pode conter apenas caracteres alfanuméricos, sublinhados e os seguintes caracteres: . , + = @ - (hífen). Ele nome não pode conter espaços. O valor é geralmente um ID de usuário (johndoe) ou um endereço de e-mail (johndoe@example.com). Ele não deve ser um valor que inclua espaço, como o nome de exibição de um usuário (John Doe).

Importante

O valor do atributo Name na tag Attribute faz distinção de maiúsculas e minúsculas. Ele deve ser definido exatamente como https://aws.amazon.com/SAML/Attributes/RoleSessionName.

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

SessionDuration SAML Attribute

(Opcional) Você pode usar um elemento Attribute com o atributo Name definido como https://aws.amazon.com/SAML/Attributes/SessionDuration". Esse elemento contém um elemento AttributeValue que especifica por quanto tempo o usuário pode acessar o AWS Management Console antes de precisar solicitar novas credenciais temporárias. O valor é um número inteiro que representa o número de segundos da sessão. O valor pode variar de 900 segundos (15 minutos) a 43.200 segundos (12 horas). Se esse atributo não estiver presente, a credencial será válida por uma hora (o valor padrão do parâmetro DurationSeconds da API AssumeRoleWithSAML).

Para usar esse atributo, você deve configurar o provedor SAML para fornecer acesso de logon único ao AWS Management Console pelo endpoint da web de entrada do console em https://signin.aws.amazon.com/saml. Observe que esse atributo estende sessões apenas para o AWS Management Console. Ele não pode ampliar a vida útil de outras credenciais. No entanto, se estiver presente em uma chamada de API AssumeRoleWithSAML, ele poderá ser usado para abreviar a duração da sessão. O tempo útil padrão das credenciais retornadas pela chamada é de 60 minutos.

Observe também que, se um atributo SessionNotOnOrAfter também for definido, o menor valor dos dois atributos SessionDuration ou SessionNotOnOrAfter, estabelecerá a duração máxima da sessão do console.

Quando você ativa as seções do console com uma duração estendida, o risco de comprometimento das credenciais aumenta. Para ajudar a reduzir esse risco, você pode desabilitar imediatamente as sessões ativas do console para qualquer função escolhendo a opção Revoke Sessions (Revogar sessões) na página Role Summary (Resumo da função) no console do IAM. Para obter mais informações, consulte Revogação das credenciais de segurança temporárias da função do IAM.

Importante

O valor do atributo Name na tag Attribute faz distinção de maiúsculas e minúsculas. Ele deve ser definido exatamente como https://aws.amazon.com/SAML/Attributes/SessionDuration.

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

SourceIdentity SAML Attribute

(Opcional) Você pode usar um elemento Attribute com o atributo Name definido como https://aws.amazon.com/SAML/Attributes/SourceIdentity. Este elemento contém um elemento AttributeValue que fornece um identificador da pessoa ou da aplicação que está usando uma função do IAM. O valor da identidade de origem persiste quando você usa a sessão do SAML para assumir outra função na AWS conhecida como encadeamento de funções. O valor da identidade de origem está presente na solicitação para cada ação executada durante a sessão da função. O valor definido não pode ser alterado durante a sessão da função. Os administradores podem então usar logs do AWS CloudTrail para monitorar e auditar as informações de identidade de origem para determinar quem executou ações com funções compartilhadas.

O valor no elemento AttributeValue deve ter entre 2 e 64 caracteres, pode conter apenas caracteres alfanuméricos, sublinhados e os seguintes caracteres: . , + = @ - (hífen). Ele nome não pode conter espaços. O valor geralmente é um atributo associado ao usuário, como um id de usuário (johndoe) ou um endereço de e-mail (johndoe@example.com). Ele não deve ser um valor que inclua espaço, como o nome de exibição de um usuário (John Doe). Para obter mais informações sobre como usar a identidade de origem, consulte Monitorar e controlar ações realizadas com funções assumidas.

Importante

Se sua asserção SAML estiver configurada para usar o atributo SourceIdentity, sua política de confiança da função também deverá incluir a ação sts:SetSourceIdentity, caso contrário, a operação de assumir função falhará. Para obter mais informações sobre como usar a identidade de origem, consulte Monitorar e controlar ações realizadas com funções assumidas.

Para passar um atributo de identidade de origem, inclua o elemento AttributeValue que especifica o valor da identidade de origem. Por exemplo, para passar a identidade de origem DiegoRamirez use o atributo a seguir.

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

Mapeamento de atributos SAML para chaves de contexto de política de confiança da AWS

As tabelas desta seção listam atributos SAML utilizados com frequência e como eles são mapeados para chaves de contexto de condições de política de confiança na AWS. Você pode usar essas chaves para controlar o acesso a uma função. Para isso, compare as chaves com os valores incluídos nas declarações que acompanham uma solicitação de acesso SAML.

Importante

Essas chaves estão disponíveis apenas em políticas de confiança do IAM (políticas que determinam quem pode assumir uma função) e não são aplicáveis a políticas de permissões.

Na tabela de atributos eduPerson e eduOrg, os valores são digitados como strings ou listas de strings. Para valores de string, você pode testar esses valores em políticas de confiança do IAM usando condições StringEquals ou StringLike. Para valores que contêm uma lista de strings, você pode usar os ForAnyValueoperadores definidos de políticaForAllValues e para testar os valores nas políticas de confiança.

nota

Você deve incluir apenas uma solicitação por chave de contexto da AWS. Se você incluir mais de uma, apenas uma delas será mapeada.

Atributos eduPerson e eduOrg
Atributo eduPerson ou eduOrg (chave Name) É mapeado para essa chave de contexto da AWS (chave FriendlyName) Type

urn:oid:1.3.6.1.4.1.5923.1.1.1.1

eduPersonAffiliation

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.1.1.2

eduPersonNickname

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.1.1.3

eduPersonOrgDN

String

urn:oid:1.3.6.1.4.1.5923.1.1.1.4

eduPersonOrgUnitDN

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.1.1.5

eduPersonPrimaryAffiliation

String

urn:oid:1.3.6.1.4.1.5923.1.1.1.6

eduPersonPrincipalName

String

urn:oid:1.3.6.1.4.1.5923.1.1.1.7

eduPersonEntitlement

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.1.1.8

eduPersonPrimaryOrgUnitDN

String

urn:oid:1.3.6.1.4.1.5923.1.1.1.9

eduPersonScopedAffiliation

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.1.1.10

eduPersonTargetedID

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.1.1.11

eduPersonAssurance

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.2.1.2

eduOrgHomePageURI

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.2.1.3

eduOrgIdentityAuthNPolicyURI

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.2.1.4

eduOrgLegalName

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.2.1.5

eduOrgSuperiorURI

Lista de strings

urn:oid:1.3.6.1.4.1.5923.1.2.1.6

eduOrgWhitePagesURI

Lista de strings

urn:oid:2.5.4.3

cn

Lista de strings

Atributos do Active Directory
Atributo do AD É mapeado para essa chave de contexto da AWS Type

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

name

String

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

commonName

String

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

givenName

String

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

surname

String

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

mail

String

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

uid

String

Atributos X.500
Atributo X.500 É mapeado para essa chave de contexto da AWS Type

2.5.4.3

commonName

String

2.5.4.4

surname

String

2.4.5.42

givenName

String

2.5.4.45

x500UniqueIdentifier

String

0.9.2342.19200300100.1.1

uid

String

0.9.2342.19200300100.1.3

mail

String

0.9.2342.19200300.100.1.45

organizationStatus

String