Configurar declarações SAML para a resposta de autenticação
Após a verificação da identidade de um usuário na sua organização, o provedor de identidades (IdP) externo envia uma resposta de autenticação ao endpoint SAML da AWS em https://
. Para obter uma lista das possíveis substituições de region-code
.signin.aws.amazon.com/samlregion-code
, consulte a coluna Região em Endpoints de login da AWS. 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
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 https://
da AWS. Para obter uma lista dos possíveis valores de region-code
.signin.aws.amazon.com/samlregion-code
, consulte a coluna Região em Endpoints de login da AWS. Para o valor AWS, você também pode usar https://signin.aws.amazon.com/saml
, conforme mostrado no exemplo a seguir.
Os elementos NameID
podem ter o valor persistente, transitório ou consistir no URI de formato completo, conforme fornecido pela solução IdP. O valor persistente indica que o valor em NameID
é o mesmo para um usuário entre as sessões. Se o valor for transitório, o usuário terá um valor NameID
diferente para cada sessão. As interações de login único oferecem suporte aos seguintes tipos de identificadores:
-
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
<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>
Importante
A chave de contexto saml:aud
vem do atributo destinatário SAML porque é o equivalente SAML ao campo de público do OIDC, por exemplo, accounts.google.com:aud
.
Atributo SAML PrincipalTag
(Opcional) Você pode usar um elemento Attribute
com o atributo Name
definido como https://aws.amazon.com/SAML/Attributes/PrincipalTag:
. 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.{TagKey}
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 CostCenter
e Principal
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>
Atributo SAML Role
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 perfil 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>
Atributo SAML RoleSessionName
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>
Atributo SAML SessionDuration
(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://
. Para obter uma lista dos possíveis valores de region-code
.signin.aws.amazon.com/samlregion-code
, consulte a coluna Região em Endpoints de login da AWS. Ou você pode usar a seguinte URL: https://signin.aws.amazon.com/static/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 ter mais informações, consulte Revogar as credenciais de segurança temporárias do perfil 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>
Atributo SAML SourceIdentity
(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-fonte 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-fonte 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-fonte 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-fonte, 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-fonte, consulte Monitorar e controlar ações realizadas com funções assumidas.
Para passar um atributo de identidade-fonte, inclua o elemento AttributeValue
que especifica o valor da identidade-fonte. Por exemplo, para passar a identidade-fonte 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 ForAnyValue
operadores 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.
A tabela a seguir mostra os atributos eduPerson e eduOrg.
Atributo eduPerson ou eduOrg (chave Name ) |
É mapeado para essa chave de contexto da AWS (chave FriendlyName ) |
Tipo |
---|---|---|
|
|
Lista de strings |
|
|
Lista de strings |
|
|
String |
|
|
Lista de strings |
|
|
String |
|
|
String |
|
|
Lista de strings |
|
|
String |
|
|
Lista de strings |
|
|
Lista de strings |
|
|
Lista de strings |
|
|
Lista de strings |
|
|
Lista de strings |
|
|
Lista de strings |
|
|
Lista de strings |
|
|
Lista de strings |
|
|
Lista de strings |
A tabela a seguir mostra atributos do Active Directory.
Atributo do AD | É mapeado para essa chave de contexto da AWS | Tipo |
---|---|---|
|
|
String |
|
|
String |
|
|
String |
|
|
String |
|
|
String |
|
|
String |
A tabela a seguir mostra atributos do X.500.
Atributo X.500 | É mapeado para essa chave de contexto da AWS | Tipo |
---|---|---|
|
|
String |
|
|
String |
|
|
String |
|
|
String |
|
|
String |
|
|
String |
|
|
String |