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:
-
IAM Identity Center è configurato, in genere tramite la console IAM Identity Center
, e un utente SSO è invitato a partecipare. -
Il AWS
config
file condiviso sul computer dell'utente viene aggiornato con informazioni SSO. -
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.
-
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_name
impostazione, 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.
-
Vai alla console IAM Identity Center
e apri la Account AWSpagina. -
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.
-
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_name
impostazione è 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 AWSCredentials
oggetto per il profilo SSO, che carica le credenziali temporanee, se disponibili. L'applicazione deve quindi eseguire il cast dell'AWSCredentials
oggetto su un SSOAWSCredentials
oggetto 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 themy-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.](images/SSO-login.png)
Nota
La stringa di testo fornita non SSOAWSCredentials.Options.ClientName
può contenere spazi. Se la stringa contiene spazi, otterrai un'eccezione di runtime.
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 AWSCredentials
oggetto 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 themy-sso-profile
profile"); return credentials; }
L'AWSCredentials
oggetto 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.