Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Sviluppa la tua integrazione
Comprendere il ciclo di vita delle richieste
Prima di creare l'integrazione, è importante capire in che modo le richieste di delega procedono dalla creazione al completamento.
Stati della richiesta
Una richiesta di delega procede attraverso i seguenti stati:
| Stato | Description |
|---|---|
| Non assegnato | Richiesta creata ma non ancora associata a un account cliente e a un responsabile IAM. La richiesta può essere stata creata senza specificare un account di destinazione o con un ID account di destinazione ma non ancora richiesta dal proprietario dell'account. |
| Assegnata | Richiesta associata a un account cliente e in attesa di revisione |
| In attesa di approvazione | Il cliente ha inoltrato la richiesta a un amministratore per l'approvazione |
| Accettato | Richiesta approvata dal cliente ma token di scambio non ancora rilasciato |
| Finalizzato | Token di scambio rilasciato al fornitore del prodotto. Il periodo di delega (validità del token di scambio) inizia quando la richiesta raggiunge lo stato Finalizzato |
| Rifiutato | Richiesta rifiutata dal cliente |
| Scaduto | Richiesta scaduta per inattività o timeout |
Transizioni di stato
Flusso normale (percorso di approvazione)
Non assegnato → Assegnato: il cliente associa la richiesta al proprio account
Assegnata → Accettata O Assegnata → In attesa di approvazione: il cliente approva la richiesta direttamente OPPURE la inoltra all'amministratore per la revisione
In attesa di approvazione → Accettata: l'amministratore approva la richiesta
Accettato → Finalizzato: il cliente rilascia il token di scambio
Percorso di rifiuto
Assegnato → Rifiutato: il cliente rifiuta la richiesta
In attesa di approvazione → Rifiutata: l'amministratore rifiuta la richiesta
Accettato → Rifiutato: il cliente revoca l'approvazione prima di rilasciare il token
Percorso di scadenza
Le richieste scadono automaticamente se non viene intrapresa alcuna azione entro il periodo di tempo specificato:
Non assegnato → Scaduto (1 giorno)
Assegnato → Scaduto (7 giorni)
In attesa di approvazione → Scaduto (7 giorni)
Accettato → Scaduto (7 giorni)
Rifiutato → Scaduto (7 giorni)
Finalizzato → Scaduto (7 giorni)
Stati terminali
I seguenti stati sono terminali (senza ulteriori transizioni):
Finalizzato: Exchange Token inviato
Rifiutata: la richiesta è stata respinta
Scaduta: la richiesta è scaduta o il periodo di delega è terminato
Le richieste scadute vengono infine eliminate dal sistema dopo il periodo di conservazione.
Gestione degli stati delle richieste di delega nell'applicazione
In qualità di partner, devi tenere traccia degli stati delle richieste di delega nel tuo sistema e mostrarli ai tuoi clienti. Quando ricevete notifiche SNS sulle modifiche di stato, archiviate questi aggiornamenti nel backend e rifletteteli nell'interfaccia utente rivolta ai clienti. Presta particolare attenzione allo stato In attesa di approvazione: quando un cliente inoltra una richiesta a un amministratore per la revisione, ti invia una notifica in sospeso. AWS Le richieste possono rimanere in questo stato per un massimo di 7 giorni in attesa dell'intervento dell'amministratore. Durante questo periodo, mostra ai clienti che la loro richiesta è in attesa dell'approvazione dell'amministratore nella tua applicazione. Prendi in considerazione la possibilità di fornire un collegamento diretto alla AWS Console in cui i clienti possano verificare lo stato della richiesta o contattare il proprio amministratore. Per una buona esperienza di integrazione è importante gestire correttamente la macchina a stati nel backend e fornire ai clienti le informazioni sullo stato corrette in ogni fase.
Configurazione delle notifiche
IAM utilizza Amazon Simple Notification Service (SNS) per comunicarti le modifiche allo stato delle richieste di delega. Quando crei una richiesta di delega, devi fornire un argomento SNS ARN dal tuo account registrato. AWS IAM pubblicherà messaggi su questo argomento per eventi importanti, ad esempio quando i clienti approvano o rifiutano le richieste e quando il token di scambio è pronto.
Nota
Gli argomenti SNS non possono essere inclusi nelle regioni opt-in. AWS L'argomento SNS deve essere in una AWS regione abilitata per impostazione predefinita. Per un elenco delle regioni opt-in, consulta Gestione delle AWS regioni nella guida alla gestione degli AWS account.
Configurazione degli argomenti SNS
Per ricevere notifiche di richiesta di delega, devi configurare l'argomento SNS per concedere le autorizzazioni IAM per pubblicare messaggi su di esso. Aggiungi la seguente dichiarazione politica alla tua policy sull'argomento 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" } ] }
Importante
L'argomento SNS deve essere presente in uno dei tuoi account registrati AWS . IAM non accetterà argomenti SNS da altri account. Se la policy sull'argomento non è configurata correttamente, non riceverai notifiche di modifica dello stato o il token di scambio.
Tipi di notifica
IAM invia due tipi di notifiche:
StateChange Notifiche
Inviata quando una richiesta di delega passa a un nuovo stato (Assegnata, In attesa di approvazione, Accettata, Finalizzata, Rifiutata, Scaduta).
ExchangeToken Notifiche
Inviato quando un cliente rilascia il token di delega (stato Finalizzato). Questa notifica include il token di scambio necessario per ottenere le credenziali.
Stati di notifica
Riceverai notifiche per i seguenti stati di richiesta di delega:
| Stato | Tipo di notifica | Description |
|---|---|---|
| ASSEGNATO | StateChange | La richiesta è stata associata a un account cliente |
| IN ATTESA DI APPROVAZIONE | StateChange | Il cliente ha inoltrato la richiesta a un amministratore per l'approvazione |
| ACCETTATO | StateChange | Il cliente ha approvato la richiesta ma non ha ancora rilasciato il token |
| FINALIZZATO | StateChange | Il cliente ha rilasciato il token di scambio |
| FINALIZZATO | ExchangeToken | Questa notifica contiene l'Exchange Token |
| REJECTED | StateChange | Il cliente ha rifiutato la richiesta |
| SCADUTO | StateChange | Richiesta scaduta prima del completamento |
Formato del messaggio di notifica
IAM pubblica notifiche SNS standard. Le informazioni sulla richiesta di delega sono contenute nel campo Message come stringa JSON.
Campi comuni (tutte le notifiche)
| Campo | Tipo | Description |
|---|---|---|
| Tipo | Stringa | O "StateChange" o "ExchangeToken» |
| RequestId | Stringa | L'ID della richiesta di delega IAM |
| RequestorWorkflowId | Stringa | L'ID del flusso di lavoro fornito durante la creazione della richiesta |
| Stato | Stringa | Stato attuale della richiesta |
| OwnerAccountId | Stringa | ID dell' AWS account del cliente |
| UpdatedAt | Stringa | Timestamp in cui lo stato è cambiato (formato ISO 8601) |
Campi aggiuntivi (solo notifiche) ExchangeToken
| Campo | Tipo | Description |
|---|---|---|
| ExchangeToken | Stringa | Il token da scambiare per le credenziali tramite API AWS STS GetDelegatedAccessToken |
| ExpiresAt | Stringa | Alla scadenza dell'accesso delegato (formato ISO 8601) |
Esempi di notifiche
StateChange Notifica
{ "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 Notifica
{ "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": "..." }
Token di scambio
Un token di scambio o un token di permuta viene emesso da IAM quando un cliente accetta e finalizza una richiesta di delega. Il fornitore del prodotto utilizza questo token di scambio o permuta per chiamare l' AWS STS GetDelegatedAccessToken API e ottenere AWS credenziali temporanee con le autorizzazioni approvate dai clienti. Il token di scambio di per sé non garantisce l'accesso alle tue AWS risorse; deve essere scambiato con credenziali effettive tramite AWS STS.
Il token di scambio può essere riscattato solo dall'account del fornitore del prodotto che ha creato la richiesta di delega. L'account richiedente è incorporato nel token, garantendo che solo il fornitore di prodotti autorizzato possa ottenere le credenziali per accedere all'account del cliente.
Durata dell'accesso
Il periodo di delega inizia quando il cliente rilascia il token di scambio, non quando il fornitore del prodotto lo riscatta. Una volta che il cliente rilascia il token:
Il fornitore del prodotto riceve il token tramite notifica SNS
Possono scambiarlo immediatamente con credenziali
Le credenziali scadono a: ora di rilascio + durata approvata
Il fornitore del prodotto può scambiare il token più volte prima della scadenza per ottenere nuove credenziali, se necessario
Rimborsi multipli
I fornitori di prodotti possono scambiare il token più volte durante il periodo di validità per ottenere nuove credenziali. Tuttavia, tutte le credenziali ottenute dallo stesso token di scambio scadono contemporaneamente, in base alla data di rilascio del token.
Esempio: se approvi una richiesta di delega di 2 ore e rilasci il token alle 10:00:
| Ora di rilascio del token | Tempo di scambio dei token | Scadenza delle credenziali | Tempo utilizzabile |
|---|---|---|---|
| 10:00 | 10:00 del mattino | 12:00 | 2 ore |
| 10:00 del mattino | 10:20 del mattino | 12:00 | 1 ora e 40 minuti |
| 10:00 del mattino | 11:40 del mattino | 12:00 | 20 minuti |
| 10:00 del mattino | 12:10 | Fallito (token scaduto) | 0 minuti |
Come mostrato nella tabella, lo scambio del token più avanti nel periodo di validità comporta una riduzione del tempo utilizzabile per il fornitore del prodotto.