Construire votre intégration - AWS Identity and Access Management

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.

Construire votre intégration

Comprendre le cycle de vie des demandes

Avant de créer votre intégration, il est important de comprendre comment les demandes de délégation progressent de leur création à leur réalisation.

États de la demande

Une demande de délégation passe par les états suivants :

State Description
Non attribué Demande créée mais pas encore associée à un compte client et à un principal IAM. La demande peut avoir été créée sans spécifier de compte cible, ou avec un identifiant de compte cible mais n'a pas encore été réclamée par le propriétaire du compte.
Attribué Demande associée à un compte client et en attente d'examen
En attente d'approbation Le client a transmis la demande à un administrateur pour approbation
Acceptée Demande approuvée par le client mais le jeton d'échange n'a pas encore été publié
Finalisé Jeton d'échange communiqué au fournisseur du produit. La période de délégation (validité du jeton d'échange) commence lorsque la demande atteint l'état finalisé
Refusée Demande rejetée par le client
Expiré Demande expirée en raison d'une inactivité ou d'un délai d'attente

Transitions entre États

Flux normal (voie d'approbation)

  • Non attribué → Assigné : le client associe la demande à son compte

  • Assigné → Accepté OU attribué → En attente d'approbation : le client approuve la demande directement OU la transmet à l'administrateur pour examen

  • En attente d'approbation → Acceptée : l'administrateur approuve la demande

  • Accepté → Finalisé : le client libère le jeton d'échange

Voie de rejet

  • Attribué → Rejeté : le client rejette la demande

  • En attente d'approbation → Rejeté : l'administrateur rejette la demande

  • Accepté → Rejeté : le client révoque son approbation avant de libérer le jeton

Chemin d'expiration

Les demandes expirent automatiquement si aucune action n'est entreprise dans le délai spécifié :

  • Non attribué → Expiré (1 jour)

  • Assigné → Expiré (7 jours)

  • En attente d'approbation → Expiré (7 jours)

  • Accepté → Expiré (7 jours)

  • Rejeté → Expiré (7 jours)

  • Finalisé → Expiré (7 jours)

États du terminal

Les états suivants sont terminaux (aucune autre transition) :

  • Finalisé : jeton d'échange envoyé

  • Rejeté : la demande a été refusée

  • Expiré : demande expirée ou période de délégation terminée

Les demandes expirées sont finalement supprimées du système après la période de conservation.

Gestion des états des demandes de délégation dans votre application

En tant que partenaire, vous devez suivre l'état des demandes de délégation dans votre système et les communiquer à vos clients. Lorsque vous recevez des notifications SNS concernant des changements d'état, stockez ces mises à jour dans votre backend et reflétez-les dans votre interface utilisateur destinée aux clients. Portez une attention particulière à l'état En attente d'approbation : lorsqu'un client transmet une demande à un administrateur pour examen, il vous AWS envoie une notification en attente d'approbation. Les demandes peuvent rester dans cet état jusqu'à 7 jours en attendant l'intervention de l'administrateur. Pendant ce temps, montrez aux clients que leur demande est en attente de l'approbation de l'administrateur dans votre application. Envisagez de fournir un lien profond vers la AWS console où les clients peuvent vérifier l'état de la demande ou effectuer un suivi auprès de leur administrateur. Pour une bonne expérience d'intégration, il est important de gérer correctement la machine d'état dans votre backend et de communiquer les informations d'état correctes aux clients à chaque étape.

Configuration des notifications

IAM utilise Amazon Simple Notification Service (SNS) pour vous communiquer les modifications de l'état des demandes de délégation. Lorsque vous créez une demande de délégation, vous devez fournir un ARN de rubrique SNS à partir de votre AWS compte enregistré. IAM publiera des messages sur cette rubrique pour les événements importants, notamment lorsque les clients approuvent ou rejettent des demandes et lorsque le jeton d'échange est prêt.

Note

Les sujets SNS ne peuvent pas se trouver dans des régions optionnelles. AWS Votre rubrique SNS doit se trouver dans une AWS région activée par défaut. Pour obtenir la liste des régions admises, consultez la section Gestion des AWS régions dans le guide de gestion des AWS comptes.

Configuration de la rubrique SNS

Pour recevoir des notifications de demande de délégation, vous devez configurer votre rubrique SNS pour accorder à IAM les autorisations nécessaires pour y publier des messages. Ajoutez la déclaration de politique suivante à votre politique relative aux sujets SNS :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMServiceToPublish", "Effect": "Allow", "Principal": { "Service": "iam.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:REGION:ACCOUNT-ID:TOPIC-NAME" } ] }
Important

Le sujet SNS doit figurer sur l'un de vos AWS comptes enregistrés. IAM n'acceptera pas les sujets SNS provenant d'autres comptes. Si la politique thématique n'est pas correctement configurée, vous ne recevrez pas de notifications de changement d'état ni le jeton d'échange.

Types de notifications

IAM envoie deux types de notifications :

StateChange Notifications

Envoyée lorsqu'une demande de délégation passe à un nouvel état (attribuée, en attente d'approbation, acceptée, finalisée, rejetée, expirée).

ExchangeToken Notifications

Envoyé lorsqu'un client libère le jeton de délégation (état Finalisé). Cette notification inclut le jeton d'échange dont vous avez besoin pour obtenir les informations d'identification.

États de notification

Vous recevrez des notifications pour les états de demande de délégation suivants :

State Type de notification Description
ASSIGNÉ StateChange La demande a été associée à un compte client
EN ATTENTE D'APPROBATION StateChange Le client a transmis la demande à un administrateur pour approbation
ACCEPTÉ StateChange Le client a approuvé la demande mais n'a pas encore publié le jeton
FINALISÉ StateChange Le client a publié le jeton d'échange
FINALISÉ ExchangeToken Cette notification contient le jeton d'échange
REFUSÉE StateChange Le client a rejeté la demande
EXPIRÉ StateChange Demande expirée avant d'être terminée

Format du message de notification

IAM publie des notifications SNS standard. Les informations relatives à la demande de délégation sont contenues dans le champ Message sous forme de chaîne JSON.

Champs communs (toutes les notifications)

Champ Type Description
Type String Soit « StateChange » soit « ExchangeToken »
RequestId String L'ID de demande de délégation IAM
RequestorWorkflowId String L'ID de flux de travail que vous avez fourni lors de la création de la demande
State String État actuel de la demande
OwnerAccountId String Numéro de AWS compte du client
UpdatedAt String Horodatage lorsque l'état a changé (format ISO 8601)

Champs supplémentaires (ExchangeToken notifications uniquement)

Champ Type Description
ExchangeToken String Le jeton à échanger contre des informations d'identification à l'aide de l' AWS STS GetDelegatedAccessToken API
ExpiresAt String Lorsque l'accès délégué expire (format ISO 8601)

Exemples de notifications

StateChange Notification

{ "Type": "Notification", "MessageId": "61ee8ad4-6eec-56b5-8f3d-eba57556aa13", "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications", "Message": "{\"RequestorWorkflowId\":\"workflow-12345\",\"Type\":\"StateChange\",\"RequestId\":\"dr-abc123\",\"State\":\"ACCEPTED\",\"OwnerAccountId\":\"111122223333\",\"UpdatedAt\":\"2025-01-15T10:30:00.123Z\"}", "Timestamp": "2025-01-15T10:30:00.456Z", "SignatureVersion": "1", "Signature": "...", "SigningCertURL": "...", "UnsubscribeURL": "..." }

ExchangeToken Notification

{ "Type": "Notification", "MessageId": "e44e5435-c72c-5333-aba3-354406782f5b", "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications", "Message": "{\"RequestId\":\"dr-abc123\",\"RequestorWorkflowId\":\"workflow-12345\",\"State\":\"FINALIZED\",\"OwnerAccountId\":\"111122223333\",\"ExchangeToken\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\"ExpiresAt\":\"2025-01-15T18:30:00.123Z\",\"UpdatedAt\":\"2025-01-15T10:30:00.456Z\",\"Type\":\"ExchangeToken\"}", "Timestamp": "2025-01-15T10:30:00.789Z", "SignatureVersion": "1", "Signature": "...", "SigningCertURL": "...", "UnsubscribeURL": "..." }

Échangez des jetons

Un jeton d'échange ou un jeton d'échange est émis par IAM lorsqu'un client accepte et finalise une demande de délégation. Le fournisseur du produit utilise ce jeton d'échange ou d'échange pour appeler l' AWS AWS STS GetDelegatedAccessToken API afin d'obtenir des AWS informations d'identification temporaires avec les autorisations approuvées par les clients. Le jeton d'échange lui-même ne donne pas accès à vos AWS ressources ; il doit être échangé contre des informations d'identification réelles via AWS STS.

Le jeton d'échange ne peut être utilisé que par le compte du fournisseur du produit qui a créé la demande de délégation. Le compte demandeur est intégré au jeton, ce qui garantit que seul le fournisseur de produits autorisé peut obtenir les informations d'identification pour accéder au compte client.

Durée de l'accès

La période de délégation commence lorsque le client libère le jeton d'échange, et non lorsque le fournisseur du produit l'échange. Une fois que le client a libéré le jeton :

  • Le fournisseur du produit reçoit le jeton via une notification SNS

  • Ils peuvent immédiatement l'échanger contre des informations d'identification

  • Les informations d'identification expirent à : heure de publication + durée approuvée

  • Le fournisseur du produit peut échanger le jeton plusieurs fois avant son expiration pour obtenir de nouvelles informations d'identification si nécessaire.

Rachats multiples

Les fournisseurs de produits peuvent échanger le jeton plusieurs fois pendant la période de validité pour obtenir de nouvelles informations d'identification. Cependant, toutes les informations d'identification obtenues à partir du même jeton d'échange expirent en même temps, en fonction de la date à laquelle vous avez publié le jeton.

Exemple : Si vous approuvez une demande de délégation de 2 heures et que vous libérez le jeton à 10 h 00 :

Heure de sortie du jeton Heure d'échange de jetons Expiration des informations d'identification Temps utilisable
10 h 10 h 12:00 2 heures
10 h 10 h 20 12:00 1 heure 40 minutes
10 h 11 h 40 12:00 20 minutes
10 h 12 h 10 Échec (le jeton a expiré) 0 minutes

Comme le montre le tableau, l'échange du jeton plus tard dans la période de validité réduit le temps d'utilisation pour le fournisseur du produit.