É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 une fédération d'identité web, votre application doit endosser le rôle IAM 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é

    • L'ARN (Amazon Resource Name) du rôle IAM 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 champ AssumedRoleId contient le nom d'un rôle IAM spécifique de la session qui a été endossé par l'application. L'application respecte les contrôles d'accès décrits dans document de politique IAM pendant la durée de la session.

    • Le champ SubjectFromWebIdentityToken contient l'ID unique qui s'affiche dans une variable de politique IAM pour ce fournisseur d'identité particulier. Voici les variables de politique IAM pour les fournisseurs pris en charge, ainsi que quelques exemples de valeurs associées à ceux-ci :

      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 de politiques IAM où ces variables de politique sont utilisées, consultez Exemples de politique : utilisation de conditions pour un contrôle d'accès détaillé.

Pour plus d'informations sur le mode de génération des AWS STS informations d'identification d'accès temporaires, consultez la section Demande d'informations d'identification de sécurité temporaires dans le guide de l'utilisateur IAM.