Écriture de votre application pour utiliser la fédération d'identité web - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Écriture de votre application pour utiliser la fédération d'identité web

Pour utiliser la fédération d'identité Web, votre application doit assumer le IAM rôle que vous avez créé. À partir de là, les applications satisfont la politique d'accès attachée au rôle.

Lors de l'exécution, si votre application utilise la fédération d'identité web, elle doit suivre cette procédure :

  1. S'authentifier auprès d'un fournisseur d'identité tiers. Votre application doit appeler le fournisseur d'identité à l'aide d'une interface fournie. La façon exacte dont vous authentifiez l'utilisateur dépend du fournisseur et de la plateforme sur laquelle votre application s'exécute. Généralement, si l'utilisateur n'est pas déjà connecté, le fournisseur d'identité veille à afficher une page de connexion pour ce fournisseur.

    Une fois que le fournisseur d'identité a authentifié l'utilisateur, le fournisseur renvoie un jeton d'identité web à votre application. Le format de ce jeton dépend du fournisseur, mais il s'agit généralement d'une très longue chaîne de caractères.

  2. Obtenez des informations d'identification AWS de sécurité temporaires. Pour ce faire, votre application envoie une demande AssumeRoleWithWebIdentity à AWS Security Token Service (AWS STS). Cette demande contient les éléments suivants :

    • Le jeton d'identité web de l'étape précédente

    • L'ID d'application du fournisseur d'identité

    • Le nom de ressource Amazon (ARN) du IAM rôle que vous avez créé pour ce fournisseur d'identité pour cette application

    AWS STS renvoie un ensemble d'informations d'identification de AWS sécurité qui expirent après un certain temps (3 600 secondes, par défaut).

    Voici un exemple de demande et de réponse d'une action AssumeRoleWithWebIdentity dans AWS STS. Le jeton d'identité web a été obtenu depuis le fournisseur d'identité 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. Accédez aux AWS ressources. La réponse de AWS STS contient les informations que votre application requiert pour accéder aux ressources DynamoDB :

    • Les champs AccessKeyID, SecretAccessKey et SessionToken contiennent les informations d'identification de sécurité qui sont valides pour cet utilisateur et cette application uniquement.

    • Le champ Expiration indique le délai des informations d'identification, au terme duquel elles ne sont plus valides.

    • Le AssumedRoleId champ contient le nom d'un IAM rôle spécifique à la session qui a été assumé par l'application. L'application respecte les contrôles d'accès contenus dans le document de IAM politique pendant toute la durée de cette session.

    • Le SubjectFromWebIdentityToken champ contient l'identifiant unique qui apparaît dans une variable de IAM politique pour ce fournisseur d'identité en particulier. Voici les variables de IAM politique pour les fournisseurs pris en charge, ainsi que quelques exemples de valeurs pour ces derniers :

      Variable de politique Exemple de valeur
      ${www.amazon.com:user_id} amzn1.account.AGJZDKHJKAUUSW6C44CHPEXAMPLE
      ${graph.facebook.com:id} 123456789
      ${accounts.google.com:sub} 123456789012345678901

Pour des exemples IAM de politiques dans lesquelles ces variables de stratégie sont utilisées, voirExemples de politique : utilisation de conditions pour un contrôle d'accès détaillé.

Pour plus d'informations sur la façon dont AWS STS les informations d'identification d'accès temporaires sont générées, consultez la section Demande d'informations d'identification de sécurité temporaires dans le guide de IAM l'utilisateur.