Criar aplicação para usar a federação de identidades na Web - Amazon DynamoDB

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:

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

  2. 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>
  3. 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 e SessionToken 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.