View a markdown version of this page

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

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.

Diagramma di stato che mostra il flusso delle richieste di delega dallo stato Non assegnato a quello Assegnato, In attesa di approvazione, a quello Accettato, Rifiutato, Finalizzato, Scaduto o Eliminato.

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.