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
Comprensione del 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 potrebbe essere stata creata senza specificare un account di destinazione o con un ID di account di destinazione ma non essere stata ancora richiesta dal proprietario dell'account. |
| Assegnato | 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 il token di scambio non è ancora stato 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
Assegnato → Accettato OPPURE Assegnato → In attesa di approvazione: il cliente approva la richiesta direttamente OPPURE la inoltra all'amministratore per la revisione
Approvazione in sospeso → 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
Approvazione in sospeso → Rifiutata: l'amministratore rifiuta la richiesta
Accettata → Rifiutata: 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 rifiutata
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, dovete tenere traccia degli stati delle richieste di delega nel sistema e comunicarli ai clienti. Quando ricevi notifiche SNS sui cambiamenti di stato, archivia questi aggiornamenti nel tuo backend e inseriscili nell'interfaccia utente rivolta ai clienti. Presta particolare attenzione allo stato In sospeso di approvazione: quando un cliente inoltra una richiesta a un amministratore per la revisione, ti invia una notifica di approvazione 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 l'amministratore. Gestire correttamente la macchina a stati nel backend e fornire ai clienti le informazioni corrette sullo stato in ogni fase sono importanti per una buona esperienza di integrazione.
Configurazione delle notifiche
IAM utilizza Amazon Simple Notification Service (SNS) per comunicarti le modifiche allo stato della richiesta di delega. Quando crei una richiesta di delega, devi fornire un ARN per argomento SNS dal tuo AWS account registrato. IAM pubblicherà messaggi su questo argomento per eventi importanti, incluso 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 che accettano l'adesione. AWS L'argomento SNS deve trovarsi in una AWS regione abilitata per impostazione predefinita. Per un elenco delle regioni che hanno aderito, consulta Gestione delle AWS regioni nella guida alla gestione degli AWS account.
Configurazione dell'argomento SNS
Per ricevere notifiche di richiesta di delega, devi configurare l'argomento SNS in modo da concedere a IAM le autorizzazioni per pubblicare messaggi su di esso. Aggiungi la seguente dichiarazione politica alla tua policy tematica 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 trovarsi in uno dei tuoi account registrati AWS . IAM non accetterà argomenti SNS da altri account. Se la policy dell'argomento non è configurata correttamente, non riceverai le 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 |
| ACCETTATI | StateChange | Il cliente ha approvato la richiesta ma non ha ancora rilasciato il token |
| FINALIZZATI | StateChange | Il cliente ha rilasciato il token di scambio |
| FINALIZZATI | ExchangeToken | Questa notifica contiene l'Exchange Token |
| REJECTED | StateChange | Il cliente ha rifiutato la richiesta |
| SCADUTO | StateChange | La 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 Messaggio 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 che hai 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 con le credenziali tramite l'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 AWS STS GetDelegatedAccessToken API e ottenere AWS credenziali temporanee con le autorizzazioni approvate dai clienti. Il token di scambio in sé non garantisce l'accesso alle AWS risorse dell'utente; deve essere scambiato con credenziali effettive tramite STS. AWS
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 del prodotto 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 ha rilasciato il token:
Il fornitore del prodotto riceve il token tramite notifica SNS
Possono scambiarlo immediatamente con credenziali
Le credenziali scadono a: data 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 a quando è stato rilasciato il token.
Esempio: se approvi una richiesta di delega di 2 ore e rilasci il token alle 10:00:
| Ora di rilascio del token | Ora di scambio dei token | Scadenza delle credenziali | Tempo utilizzabile |
|---|---|---|---|
| 10:00 | ore 10:00 | 12:00 | 2 ore |
| ore 10:00 | ore 10:20 | 12:00 | 1 ora e 40 minuti |
| 10:00 | 11:40 | 12:00 | 20 minuti |
| ore 10:00 | 12:10 | Fallito (token scaduto) | 0 minuti |
Come mostrato nella tabella, lo scambio del token in una fase successiva del periodo di validità comporta una riduzione del tempo di utilizzo per il fornitore del prodotto.