Single sign-on con AWS SDK for .NET - AWS SDK for .NET

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à.

Single sign-on con AWS SDK for .NET

AWS IAM Identity Centerè un servizio Single Sign-On (SSO) basato sul cloud che semplifica la gestione centralizzata dell'accesso SSO a tutte le tue applicazioni e al cloud. Account AWS Per tutti i dettagli, consulta la Guida per l'utente di IAM Identity Center.

Se non conosci il modo in cui un SDK interagisce con IAM Identity Center, consulta le seguenti informazioni.

Ad alto livello, gli SDK interagiscono con IAM Identity Center in modo simile al seguente schema:

  1. IAM Identity Center è configurato, in genere tramite la console IAM Identity Center, e un utente SSO è invitato a partecipare.

  2. Il AWS config file condiviso sul computer dell'utente viene aggiornato con informazioni SSO.

  3. L'utente accede tramite IAM Identity Center e riceve credenziali a breve termine per le autorizzazioni AWS Identity and Access Management (IAM) che sono state configurate per lui. Questo accesso può essere avviato tramite uno strumento non SDK come o programmaticamente tramite un'AWS CLIapplicazione.NET.

  4. L'utente procede a svolgere il proprio lavoro. Quando eseguono altre applicazioni che utilizzano SSO, non è necessario accedere nuovamente per aprire le applicazioni.

Il resto di questo argomento fornisce informazioni di riferimento per la configurazione e l'utilizzoAWS IAM Identity Center. Fornisce informazioni supplementari e più avanzate rispetto alla configurazione SSO di base in. Configura l'autenticazione SDK Se non conosci l'SSOAWS, potresti voler dare un'occhiata prima a questo argomento per ottenere informazioni fondamentali e poi ai seguenti tutorial per vedere l'SSO in azione:

Questo argomento contiene le seziconi seguenti:

Prerequisiti

Prima di utilizzare IAM Identity Center, devi eseguire determinate attività, come la scelta di una fonte di identità e la configurazione delle relative applicazioni. Account AWS Per ulteriori informazioni, consulta la seguente documentazione:

  • Per informazioni generali su queste attività, consulta la Guida introduttiva alla IAM Identity Center User Guide.

  • Per esempi di attività specifiche, consulta l'elenco dei tutorial alla fine di questo argomento. Tuttavia, assicurati di leggere le informazioni contenute in questo argomento prima di provare i tutorial.

Configurazione di un profilo SSO

Dopo aver configurato IAM Identity Center nel file pertinenteAccount AWS, è necessario aggiungere un profilo denominato per SSO al file condiviso AWS config dell'utente. Questo profilo viene utilizzato per connettersi al portale di AWS accesso, che restituisce credenziali a breve termine per le autorizzazioni IAM configurate per l'utente.

Il config file condiviso viene in genere denominato %USERPROFILE%\.aws\config in Windows e ~/.aws/config in Linux e macOS. Puoi usare il tuo editor di testo preferito per aggiungere un nuovo profilo per SSO. In alternativa, puoi usare il aws configure sso comando. Per ulteriori informazioni su questo comando, consulta Configurazione della AWS CLI per l'utilizzo di IAM Identity Center nella Guida per AWS Command Line Interface l'utente.

Il nuovo profilo è simile al seguente:

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 123456789012 sso_role_name = SSOReadOnlyRole

Le impostazioni per il nuovo profilo sono definite di seguito. Le prime due impostazioni definiscono il portale di AWS accesso. Le altre due impostazioni sono una coppia che, prese insieme, definisce le autorizzazioni configurate per un utente. Tutte e quattro le impostazioni sono obbligatorie.

sso_start_url

L'URL che rimanda al portale di AWS accesso dell'organizzazione. Per trovare questo valore, apri la console IAM Identity Center, scegli Impostazioni e trova l'URL del portale.

sso_region

Il Regione AWS che contiene l'host del portale di accesso. Questa è la regione selezionata quando hai abilitato IAM Identity Center. Può essere diversa dalle regioni utilizzate per altre attività.

Per un elenco completo di Regioni AWS e dei relativi codici, consulta Endpoint regionali in. Riferimenti generali di Amazon Web Services

sso_account_id

L'ID di un utente Account AWS che è stato aggiunto tramite il AWS Organizations servizio. Per visualizzare l'elenco degli account disponibili, vai alla console IAM Identity Center e apri la Account AWSpagina. L'ID dell'account che scegli per questa impostazione corrisponderà al valore che intendi assegnare all'sso_role_nameimpostazione, mostrato di seguito.

sso_role_name

Il nome di un set di autorizzazioni IAM Identity Center. Questo set di autorizzazioni definisce le autorizzazioni concesse a un utente tramite IAM Identity Center.

La procedura seguente è un modo per trovare il valore per questa impostazione.

  1. Vai alla console IAM Identity Center e apri la Account AWSpagina.

  2. Scegli un account per visualizzarne i dettagli. L'account che scegli sarà quello che contiene l'utente o il gruppo SSO a cui desideri concedere le autorizzazioni SSO.

  3. Guarda l'elenco di utenti e gruppi assegnati all'account e trova l'utente o il gruppo di interesse. Il set di autorizzazioni specificato nell'sso_role_nameimpostazione è uno dei set associati a questo utente o gruppo.

Quando dai un valore a questa impostazione, usa il nome del set di autorizzazioni, non l'Amazon Resource Name (ARN).

Ai set di autorizzazioni sono associate politiche IAM e politiche di autorizzazioni personalizzate. Per ulteriori informazioni, consulta i set di autorizzazioni nella Guida per l'utente di IAM Identity Center.

Generazione e utilizzo di token SSO

Per utilizzare SSO, un utente deve prima generare un token temporaneo e quindi utilizzare tale token per accedere alle AWS applicazioni e alle risorse appropriate. Per le applicazioni.NET, è possibile utilizzare i seguenti metodi per generare e utilizzare questi token temporanei:

  • Crea applicazioni.NET che generano prima un token, se necessario, e poi utilizza il token.

  • Genera un token con AWS CLI e poi usa il token nelle applicazioni.NET.

Questi metodi sono descritti nelle sezioni seguenti e dimostrati nei tutorial.

Importante

L'applicazione deve fare riferimento ai seguenti NuGet pacchetti in modo che la risoluzione SSO possa funzionare:

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Il mancato riferimento a questi pacchetti comporterà un'eccezione di runtime.

In questa sezione viene illustrato come creare un'applicazione.NET che generi un token SSO temporaneo, se necessario, e quindi utilizzi tale token. Per un tutorial completo di questo processo, vediTutorial per SSO che utilizza solo applicazioni.NET.

Genera e usa un token SSO a livello di codice

Oltre a utilizzare ilAWS CLI, puoi anche generare un token SSO a livello di codice.

A tale scopo, l'applicazione crea un AWSCredentialsoggetto per il profilo SSO, che carica le credenziali temporanee, se disponibili. L'applicazione deve quindi eseguire il cast dell'AWSCredentialsoggetto su un SSOAWSCredentialsoggetto e impostare alcune proprietà Options, incluso un metodo di callback utilizzato per richiedere all'utente le informazioni di accesso, se necessario.

Questo metodo è illustrato nel seguente frammento di codice.

Importante

L'applicazione deve fare riferimento ai seguenti NuGet pacchetti in modo che la risoluzione SSO possa funzionare:

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Il mancato riferimento a questi pacchetti comporterà un'eccezione di runtime.

static AWSCredentials LoadSsoCredentials() { var chain = new CredentialProfileStoreChain(); if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials)) throw new Exception("Failed to find the my-sso-profile profile"); var ssoCredentials = credentials as SSOAWSCredentials; ssoCredentials.Options.ClientName = "Example-SSO-App"; ssoCredentials.Options.SsoVerificationCallback = args => { // Launch a browser window that prompts the SSO user to complete an SSO sign-in. // This method is only invoked if the session doesn't already have a valid SSO token. // NOTE: Process.Start might not support launching a browser on macOS or Linux. If not, // use an appropriate mechanism on those systems instead. Process.Start(new ProcessStartInfo { FileName = args.VerificationUriComplete, UseShellExecute = true }); }; return ssoCredentials; }

Se non è disponibile un token SSO appropriato, viene avviata la finestra del browser predefinita e viene aperta la pagina di accesso appropriata. Ad esempio, se utilizzi IAM Identity Center come origine dell'identità, l'utente visualizza una pagina di accesso simile alla seguente:

AWS IAM Identity Centerpagina di accesso.
Nota

La stringa di testo fornita non SSOAWSCredentials.Options.ClientName può contenere spazi. Se la stringa contiene spazi, otterrai un'eccezione di runtime.

Tutorial per SSO che utilizza solo applicazioni.NET

Questa sezione mostra come generare un token SSO temporaneo utilizzando e come utilizzare tale token in un'applicazione. AWS CLI Per un tutorial completo di questo processo, vediTutorial per l'utilizzo delle AWS CLI applicazioni SSO e.NET.

Genera un token SSO utilizzando il AWS CLI

Oltre a generare un token SSO temporaneo a livello di codice, si utilizza il AWS CLI per generare il token. Le seguenti informazioni mostrano come fare.

Dopo che l'utente ha creato un profilo abilitato per l'SSO, come illustrato nella sezione precedente, esegue il aws sso login comando da. AWS CLI Devono assicurarsi di includere il --profile parametro con il nome del profilo abilitato all'SSO. Questo viene mostrato nell'esempio seguente:

aws sso login --profile my-sso-profile

Se l'utente desidera generare un nuovo token temporaneo dopo la scadenza di quello corrente, può eseguire nuovamente lo stesso comando.

Usa il token SSO generato in un'applicazione.NET

Le seguenti informazioni mostrano come utilizzare un token temporaneo che è già stato generato.

Importante

L'applicazione deve fare riferimento ai seguenti NuGet pacchetti in modo che la risoluzione SSO possa funzionare:

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Il mancato riferimento a questi pacchetti comporterà un'eccezione di runtime.

L'applicazione crea un AWSCredentialsoggetto per il profilo SSO, che carica le credenziali temporanee generate in precedenza da. AWS CLI È simile ai metodi mostrati in Accesso a credenziali e profili in un'applicazione e ha la forma seguente:

static AWSCredentials LoadSsoCredentials() { var chain = new CredentialProfileStoreChain(); if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials)) throw new Exception("Failed to find the my-sso-profile profile"); return credentials; }

L'AWSCredentialsoggetto viene quindi passato al costruttore per un client di servizio. Per esempio:

var S3Client_SSO = new AmazonS3Client(LoadSsoCredentials());
Nota

L'utilizzo AWSCredentials per caricare le credenziali temporanee non è necessario se l'applicazione è stata creata per utilizzare il [default] profilo per SSO. In tal caso, l'applicazione può creare client AWS di servizio senza parametri, simili a "»var client = new AmazonS3Client();.

Tutorial per l'utilizzo delle AWS CLI applicazioni SSO e.NET

Risorse aggiuntive

Per ulteriore assistenza, consulta le seguenti risorse.