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.
Construisez 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 achèvement.
États de la demande
Une demande de délégation passe par les états suivants :
| State | Description |
|---|---|
| Non assigné | Demande créée mais pas encore associée à un compte client et à un responsable IAM. La demande a peut-être été créée sans spécifier de compte cible, ou avec un identifiant de compte cible mais n'a pas encore été revendiquée par le propriétaire du compte. |
| Assigné | 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 remis 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é | La demande a expiré en raison d'une inactivité ou d'un délai d'attente |
Transitions d'état
Flux normal (chemin d'approbation)
Non attribué → Assigné : le client associe la demande à son compte
Assigné → Accepté OU Assigné → 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
Assigné → Rejeté : le client rejette la demande
En attente d'approbation → Rejeté : l'administrateur rejette la demande
Accepté → Rejeté : le client révoque l'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)
Attribué → Expiré (7 jours)
En attente d'approbation → Expiré (7 jours)
Accepté → Expiré (7 jours)
Rejeté → Expiré (7 jours)
Finalisé → Expiré (7 jours)
États des terminaux
Les états suivants sont terminaux (aucune autre transition) :
Finalisé : jeton d'échange envoyé
Rejeté : la demande a été refusée
Expiré : la demande a expiré ou la période de délégation est 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 répercutez-les dans votre interface utilisateur orientée client. 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'action de l'administrateur. Pendant ce temps, montrez aux clients que leur demande est en attente d'approbation par 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 contacter leur administrateur. Il est important de gérer correctement la machine d'état dans votre backend et de présenter les informations d'état correctes aux clients à chaque étape pour une bonne expérience d'intégration.
Configuration des notifications
IAM utilise Amazon Simple Notification Service (SNS) pour vous communiquer les modifications d'état des demandes de délégation. Lorsque vous créez une demande de délégation, vous devez fournir un ARN de sujet SNS à partir de votre AWS compte enregistré. IAM publiera des messages sur ce sujet lors d'é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 figurer dans les 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 optionnelles, consultez la section Gestion des AWS régions dans le guide de gestion des AWS comptes.
Configuration des rubriques SNS
Pour recevoir les notifications de demande de délégation, vous devez configurer votre rubrique SNS de manière à accorder à IAM les autorisations nécessaires pour publier des messages sur cette rubrique. Ajoutez la déclaration de politique suivante à votre politique en matière de 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
La rubrique SNS doit se trouver dans 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é 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 des 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 libéré 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 | La demande a expiré 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 du changement d'état (format ISO 8601) |
Champs supplémentaires (ExchangeToken notifications uniquement)
| Champ | Type | Description |
|---|---|---|
| ExchangeToken | String | Le jeton à échanger contre les informations d'identification à l'aide de l' AWS STS GetDelegatedAccessToken API |
| ExpiresAt | String | Quand 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": "..." }
Jetons d'échange
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 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 produit autorisé peut obtenir des informations d'identification pour accéder au compte client.
Durée d'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 libère 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.
Rédemptions 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 à 10h00 :
| Heure de sortie du jeton | Heure d'échange de jetons | Expiration des informations d'identification | Temps utilisable |
|---|---|---|---|
| 10 h 00 | 10 h 00 | 12:00 | 2 heures |
| 10 h 00 | 10 h 20 | 12:00 | 1 heure 40 minutes |
| 10 h 00 | 11 h 40 | 12:00 | 20 minutes |
| 10 h 00 | 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.