Utilizzo delle operazioni dell'API di federazione OIDC per app mobili - 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à.

Utilizzo delle operazioni dell'API di federazione OIDC per app mobili

Per ottenere i migliori risultati, usa Amazon Cognito come broker di identità per quasi tutti gli scenari di federazione OIDC. Amazon Cognito è semplice da utilizzare e fornisce funzionalità aggiuntive quali l'accesso anonimo (non autenticato) e la sincronizzazione dei dati degli utenti tra più dispositivi e provider. Tuttavia, se hai già creato un'app che utilizza la federazione OIDC chiamando manualmente l'AssumeRoleWithWebIdentityAPI, puoi continuare a usarla e le tue app continueranno a funzionare correttamente.

Il processo per utilizzare la federazione OIDC senza Amazon Cognito segue questo schema generale:

  1. Effettuare la registrazione come sviluppatore al provider di identità (IdP) esterno e configurare l'app con tale provider, che fornisce un ID univoco per l'app. (Diversi IdPs utilizzano una terminologia diversa per questo processo. Questo schema utilizza il termine configura per il processo di identificazione dell'app con l'IdP.) Ogni IdP ti fornisce un ID app univoco per quell'IdP, quindi se configuri la stessa app con più ID IdPs, la tua app avrà più ID app. È possibile configurare più app con ciascun provider.

    I seguenti link esterni forniscono informazioni sull'utilizzo di alcuni dei provider di identità più utilizzati ()IdPs:

    Importante

    Se utilizzi un provider di identità OIDC di Google, Facebook o Amazon Cognito, non creare un provider di identità IAM separato in. AWS Management Console AWS dispone di questi provider di identità OIDC integrati e disponibili per l'uso da parte tua. Ignora la fase seguente e passa direttamente alla creazione di nuovi ruoli utilizzando il provider di identità.

  2. Se utilizzi un IdP di identità diverso da Google, Facebook o Amazon Cognito compatibile con OIDC, crea un'entità provider di identità IAM.

  3. In IAM, crea uno o più ruoli. Per ogni ruolo, definisci chi può assumere il ruolo (policy di attendibilità) e quali autorizzazioni concedere agli utenti dell'app (policy di autorizzazione). Di solito, è necessario creare un ruolo per ogni provider di identità supportato da un'app. Ad esempio, puoi creare un ruolo che può essere assunto da un'applicazione quando l'utente effettua l'accesso tramite Login with Amazon, un secondo ruolo per la stessa applicazione in cui l'utente effettua l'accesso tramite Facebook e un terzo ruolo per l'applicazione in cui l'utente effettua l'accesso tramite Google. Per la relazione di trust, specificare il provider di identità (ad esempio Amazon.com) come Principal (l'entità attendibile) e includere un elemento Condition corrispondente all'ID app assegnato dal provider di identità. Esempi di ruoli per diversi provider sono descritti più in Creazione di un ruolo per un provider di identità di terza parte (federazione).

  4. Nell'applicazione, autenticare gli utenti con il provider di identità. Le specifiche della procedura variano sia in base al provider di identità in uso (Login with Amazon, Facebook o Google) sia in base alla piattaforma su cui viene eseguita l'app. Ad esempio, il metodo di autenticazione di un'app Android può differire da quello di un'app iOS o di un'app Web JavaScript basata.

    In genere, se l'utente non ha già effettuato l'accesso, il provider di identità si occupa di visualizzare una pagina di accesso. Dopo aver autenticato l'utente, il provider di identità restituisce all'app un token di autenticazione con le informazioni sull'utente. Le informazioni incluse dipendono dagli elementi esposti dal provider di identità e dalle informazioni che l'utente è disposto a condividere. Queste informazioni possono essere utilizzate nell'app.

  5. Nell'app, effettuare una chiamata non firmata all'operazione AssumeRoleWithWebIdentity per richiedere le credenziali di sicurezza provvisorie. Nella richiesta, passi il token di autenticazione dell'IdP e specifichi l'Amazon Resource Name (ARN) per il ruolo IAM che hai creato per quell'IdP. AWS verifica che il token sia affidabile e valido e, in tal caso, restituisce all'app credenziali di sicurezza temporanee che dispongono delle autorizzazioni per il ruolo indicato nella richiesta. La risposta include anche i metadati relativi all'utente forniti dal provider di identità, ad esempio l'ID utente univoco che il provider associa all'utente.

  6. Utilizzando le credenziali di sicurezza temporanee della AssumeRoleWithWebIdentity risposta, l'app invia richieste firmate alle operazioni API. AWS Le informazioni sull'ID utente fornite dall'IdP possono distinguere gli utenti nella tua app. Ad esempio, puoi inserire oggetti nelle cartelle Amazon S3 che includono l'ID utente come prefissi o suffissi. Ciò consente di creare policy di controllo degli accessi che bloccano la cartella in modo che solo l'utente con l'ID specificato possa accedervi. Per ulteriori informazioni, consulta AWS STS principi di sessione utente federati.

  7. L'app dovrebbe memorizzare nella cache le credenziali di sicurezza temporanee in modo da non doverne ottenere di nuove ogni volta che ha bisogno di effettuare una richiesta ad AWS. Come impostazione predefinita, le credenziali sono valide per un'ora. Quando scadono (o prima), devi effettuare un'altra chiamata ad AssumeRoleWithWebIdentity per ottenere un nuovo set di credenziali di sicurezza temporanee. A seconda del provider di identità e di come gestisce i token, potrebbe essere necessario aggiornare il token del provider prima di effettuare una nuova chiamata ad AssumeRoleWithWebIdentity, dato che anche i token di solito scadono dopo un determinato periodo di tempo. Se utilizzi l' AWS SDK per iOS o l'SDK per Android, puoi utilizzare AWS l'azione CredentialsProvider AmazonSTS, che gestisce le credenziali temporanee IAM, incluso l'aggiornamento delle stesse come richiesto.