Sviluppa la tua integrazione - AWS Identity and Access Management

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.