As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criar aplicação para usar a federação de identidades na Web
Para usar a federação de identidades na Web, sua aplicação precisa assumir o perfil do IAM que você criou. A partir daí, o aplicativo honra a política de acesso que você anexou ao perfil.
No tempo de execução, se o seu aplicativo usa a federação de identidades na web, ele deverá seguir estas etapas:
-
Autentique-se com um provedor de identidade de terceiros. Seu aplicativo deve chamar o provedor de identidade usando uma interface fornecida por ele. A maneira exata em que você autentica o usuário depende do provedor e em que plataforma seu aplicativo está em execução. Normalmente, se o usuário ainda não estiver conectado, o provedor de identidade exibe uma página de login para esse provedor.
Depois de autenticar o usuário, o provedor de identidade retorna um token de identidade da web para seu aplicativo. O formato desse token depende do fornecedor, mas geralmente é uma string muito longa.
-
Obtenha credenciais AWS de segurança temporárias. Para fazer isso, sua aplicação envia uma solicitação
AssumeRoleWithWebIdentity
para o AWS Security Token Service (AWS STS). Essa solicitação contém o seguinte:-
O token de identidade da web da etapa anterior
-
O ID do aplicativo do provedor de identidade
-
O nome do recurso da Amazon (ARN) do perfil do IAM que você criou junto a este provedor de identidade para esta aplicação
AWS STS retorna um conjunto de credenciais de AWS segurança que expiram após um determinado período de tempo (3.600 segundos, por padrão).
Veja a seguir uma solicitação e resposta de exemplo de uma ação
AssumeRoleWithWebIdentity
no AWS STS. O token de identidade da web foi obtido do provedor de identidade Login with Amazon.GET / HTTP/1.1 Host: sts.amazonaws.com Content-Type: application/json; charset=utf-8 URL: https://sts.amazonaws.com/?ProviderId=www.amazon.com &DurationSeconds=900&Action=AssumeRoleWithWebIdentity &Version=2011-06-15&RoleSessionName=web-identity-federation &RoleArn=arn:aws:iam::123456789012:role/GameRole &WebIdentityToken=Atza|IQEBLjAsAhQluyKqyBiYZ8-kclvGTYM81e...(remaining characters omitted)
<AssumeRoleWithWebIdentityResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <AssumeRoleWithWebIdentityResult> <SubjectFromWebIdentityToken>amzn1.account.AGJZDKHJKAUUSW6C44CHPEXAMPLE</SubjectFromWebIdentityToken> <Credentials> <SessionToken>AQoDYXdzEMf//////////wEa8AP6nNDwcSLnf+cHupC...(remaining characters omitted)</SessionToken> <SecretAccessKey>8Jhi60+EWUUbbUShTEsjTxqQtM8UKvsM6XAjdA==</SecretAccessKey> <Expiration>2013-10-01T22:14:35Z</Expiration> <AccessKeyId>06198791C436IEXAMPLE</AccessKeyId> </Credentials> <AssumedRoleUser> <Arn>arn:aws:sts::123456789012:assumed-role/GameRole/web-identity-federation</Arn> <AssumedRoleId>AROAJU4SA2VW5SZRF2YMG:web-identity-federation</AssumedRoleId> </AssumedRoleUser> </AssumeRoleWithWebIdentityResult> <ResponseMetadata> <RequestId>c265ac8e-2ae4-11e3-8775-6969323a932d</RequestId> </ResponseMetadata> </AssumeRoleWithWebIdentityResponse>
-
-
Acesse AWS os recursos. A resposta do AWS STS contém informações de que seu aplicativo precisa para acessar recursos do DynamoDB:
-
Os campos
AccessKeyID
,SecretAccessKey
eSessionToken
contêm credenciais de segurança válidas apenas para este usuário e este aplicativo. -
O campo
Expiration
significa o limite de tempo dessas credenciais. Depois disso, elas não são mais válidas. -
O campo
AssumedRoleId
contém o nome de um perfil do IAM específico da sessão que foi assumida pela aplicação. A aplicação honra os controles de acesso do documento de política do IAM durante esta sessão. -
O campo
SubjectFromWebIdentityToken
contém o ID exclusivo que aparece em uma variável de política do IAM para esse provedor de identidade específico. Veja a seguir as variáveis de política do IAM para provedores compatíveis, e alguns valores de exemplo para elas:Variável de política Valor de exemplo ${www.amazon.com:user_id}
amzn1.account.AGJZDKHJKAUUSW6C44CHPEXAMPLE
${graph.facebook.com:id}
123456789
${accounts.google.com:sub}
123456789012345678901
-
Por obter políticas do IAM de exemplo nas quais essas variáveis de política são usadas, consulte Políticas de exemplo: usar condições para controle de acesso refinado.
Para obter mais informações sobre como AWS STS gerar credenciais de acesso temporário, consulte Solicitação de credenciais de segurança temporárias no Guia do usuário do IAM.