Esercitazione: Configurare un'app Web ASP.NET Core che autentica gli utenti
si applica a: utenti della forza lavoro
utenti esterni (ulteriori informazioni)
In questa esercitazione viene creata un'app Web ASP.NET Core e configurata per l'autenticazione. Questa è la parte 1 di una serie che illustra come creare un'applicazione Web ASP.NET Core e prepararla per l'autenticazione usando l'interfaccia di amministrazione di Microsoft Entra. Questa applicazione può essere usata per i dipendenti in un tenant della forza lavoro o per i clienti che usano un tenant esterno
In questa esercitazione:
- Creare un'app Web ASP.NET Core
- Creare un certificato autofirmato
- Configurare le impostazioni per l'applicazione
- Definire le impostazioni e gli URL della piattaforma
Prerequisiti
- Un account Azure con una sottoscrizione attiva.
Crea un account gratuitamente. Questo account deve disporre delle autorizzazioni per gestire le applicazioni. Usare uno dei ruoli seguenti necessari per registrare l'applicazione:
- Amministratore dell'applicazione
- Sviluppatore di applicazioni
- Amministratore di applicazioni cloud
- Anche se è possibile usare qualsiasi ambiente di sviluppo integrato (IDE) che supporta applicazioni ASP.NET Core, questa esercitazione usa Visual Studio Code. Puoi scaricarlo qui .
- Requisito minimo di .NET 8.0 SDK.
- Un certificato per sviluppatori ASP.NET Core. Installare un certificato usando dotnet dev-certs
- tenant di Workforce
- tenant esterno
- Partecipante del personale. È possibile usare la directory predefinita di oppure configurare un nuovo tenant.
- Un'applicazione registrata nell'interfaccia di amministrazione di Microsoft Entra. Usare la configurazione seguente ai fini di questa serie di esercitazioni:
- Nome: identity-client-web-app
- Tipi di account supportati: account in questa directory organizzativa
-
URI di reindirizzamento:
https://localhost:5001/signin-oidc
- URL di disconnessione del canale frontale :
https://localhost:5001/signout-oidc
- Per scopi di sviluppo, creare un certificato autofirmato. Fare riferimento a , aggiungere credenziali per caricare il certificato e registrare l'impronta digitale del certificato . Non usare un certificato autofirmato per le app di produzione. Usare un'autorità di certificazione attendibile.
Creare un progetto ASP.NET Core
In questa sezione verrà creato un progetto ASP.NET Core in Visual Studio Code.
Aprire Visual Studio Code, selezionare File > Apri cartella.... Passare a e selezionare il percorso in cui creare il progetto.
Aprire un nuovo terminale selezionando Terminale > Nuovo terminale.
Immettere il comando seguente per creare un progetto MVC (Model View Controller) ASP.NET Core.
dotnet new mvc -n identity-client-web-app
Installare i pacchetti Identity
Questa applicazione usa Microsoft.Identity.Web e deve essere installato il pacchetto NuGet correlato.
Usare il frammento di codice seguente per passare alla nuova cartella di identity-client-web-app e installare il pacchetto NuGet pertinente:
dotnet add package Microsoft.Identity.Web.UI
Configurare l'applicazione per l'autenticazione
I valori registrati nella configurazione dell'applicazione vengono usati per configurare l'applicazione per l'autenticazione. Il file di configurazione, appsettings.json, viene usato per archiviare le impostazioni dell'applicazione usate durante l'esecuzione.
Aggiornare il file di configurazione
Nell'IDE aprire appsettings.json e sostituire il contenuto del file con il frammento di codice seguente. Sostituire il testo tra virgolette con i valori registrati in precedenza.
- tenant di Workforce
- tenant esterno
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "Enter_the_Tenant_Id_Here",
"ClientId": "Enter_the_Application_Id_Here",
"ClientCertificates": [
{
"SourceType": "StoreWithThumbprint",
"CertificateStorePath": "CurrentUser/My",
"CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center"
}
],
"CallbackPath": "/signin-oidc"
},
"DownstreamApi": {
"BaseUrl": "https://graph.microsoft.com/v1.0/",
"RelativePath": "me",
"Scopes": [
"user.read"
]
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
- L'endpoint di autenticazione
Instance
. Controlla i diversi endpoint disponibili nei servizi cloud nazionali . -
TenantId
: identificatore del tenant in cui è registrata l'applicazione. Sostituire il testo tra virgolette con il valore ID della Directory (tenant) che è stato registrato in precedenza dalla pagina di panoramica dell'applicazione registrata. -
ClientId
: identificatore dell'applicazione, detto anche client. Sostituire il testo tra virgolette con il valore dell'ID dell'applicazione (client) che è stato registrato in precedenza dalla pagina di panoramica dell'applicazione registrata. -
ClientCertificates
: viene usato un certificato autofirmato per l'autenticazione nell'applicazione. Sostituire il testo delCertificateThumbprint
con l'impronta digitale del certificato registrato in precedenza. Non usare un certificato autofirmato per le app di produzione. -
CallbackPath
: identificatore che consente al server di reindirizzare una risposta all'applicazione appropriata. -
DownstreamApi
: identificatore che definisce un endpoint per l'accesso a Microsoft Graph. L'URI dell'applicazione viene combinato con l'ambito specificato. Per definire la configurazione per un'applicazione di proprietà dell'organizzazione, il valore dell'attributoScopes
è leggermente diverso.
Aggiornare l'URI di reindirizzamento
Dai prerequisiti , l'URI di reindirizzamento è impostato su https://localhost:5001/signin-oidc
. Questa operazione deve essere aggiornata nelle impostazioni di avvio dell'applicazione. È possibile usare l'URI di reindirizzamento creato durante la configurazione dell'applicazione locale o qualsiasi altro numero di porta disponibile, purché corrisponda all'URI di reindirizzamento nella registrazione dell'applicazione.
Nella cartella Proprietà aprire il file di launchSettings.json.
Trovare l'oggetto
https
e aggiornare il valore diapplicationURI
con il numero di porta corretto, in questo caso,5001
. La riga dovrebbe essere simile al frammento di codice seguente:"applicationUrl": "https://localhost:5001;http://localhost:{port}",