Mulai cepat: ASP.NET aplikasi web yang masuk ke pengguna Microsoft Entra
Selamat Datang! Ini mungkin bukan halaman yang Anda inginkan. Sementara kami bekerja memperbaikinya, tautan ini akan membawa Anda ke artikel yang tepat:
Mulai cepat: Menambahkan masuk dengan Microsoft ke aplikasi web ASP.NET
Kami mohon maaf atas ketidaknyamanan ini dan menghargai kesabaran Anda selama kami menyelesaikan masalah ini.
Dalam mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan aplikasi web ASP.NET yang dapat memasukkan pengguna dengan akun Microsoft Entra.
Langkah 1: Konfigurasikan aplikasi di portal Microsoft Azure
Agar sampel kode dalam mulai cepat ini berfungsi, masukkan https://localhost:44368/ untuk URI Pengalihan.
Aplikasi Anda dikonfigurasi dengan atribut ini.
Langkah 2: Unduh proyek
Jalankan proyek dengan menggunakan Visual Studio 2019.
Tip
Untuk menghindari kesalahan yang disebabkan oleh keterbatasan panjang jalur di Windows, kami sarankan mengekstrak arsip atau mengkloning repositori ke direktori di dekat akar drive Anda.
Langkah 3: Aplikasi Anda dikonfigurasi dan siap dijalankan
Kami telah mengonfigurasi proyek Anda dengan nilai properti aplikasi Anda.
Ekstrak file .zip ke folder lokal yang dekat dengan folder akar. Misalnya, ekstrak ke C:\Azure-Samples.
Sebaiknya ekstrak arsip ke direktori dekat akar drive untuk menghindari kesalahan yang disebabkan oleh keterbatasan panjang jalur di Windows.
Buka solusi di Visual Studio(AppModelv2-WebApp-OpenIDConnect-DotNet.sln).
Bergantung pada versi Visual Studio, Anda mungkin perlu mengeklik kanan proyek >AppModelv2-WebApp-OpenIDConnect-DotNet, lalu pilih Pulihkan paket NuGet.
Buka Package Manager Console dengan memilih Lihat>Windows Lainnya>Package Manager Console. Kemudian jalankan
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
.
Catatan
Enter_the_Supported_Account_Info_Here
Informasi selengkapnya
Bagian ini memberikan gambaran umum tentang kode yang diperlukan untuk memasukkan pengguna. Gambaran umum ini dapat berguna untuk memahami cara kerja kode, apa argumen utamanya, dan cara menambahkan rincian masuk ke aplikasi ASP.NET Core yang ada.
Cara kerja sampel
Paket NuGet middleware OWIN
Anda dapat mengatur saluran autentikasi dengan autentikasi berbasis cookie menggunakan OpenID Connect di ASP.NET dengan paket middleware OWIN. Anda dapat menginstal paket ini dengan menjalankan perintah berikut di Package Manager Console dalam Visual Studio:
Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb
Kelas permulaan OWIN
Middleware OWIN menggunakan kelas permulaan yang berjalan ketika proses hosting dimulai. Dalam mulai cepat ini, file startup.cs berada di folder akar. Kode berikut menunjukkan parameter yang digunakan mulai cepat ini:
public void Configuration(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
// Sets the client ID, authority, and redirect URI as obtained from Web.config
ClientId = clientId,
Authority = authority,
RedirectUri = redirectUri,
// PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it's using the home page
PostLogoutRedirectUri = redirectUri,
Scope = OpenIdConnectScope.OpenIdProfile,
// ResponseType is set to request the code id_token, which contains basic information about the signed-in user
ResponseType = OpenIdConnectResponseType.CodeIdToken,
// ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
// To only allow users from a single organization, set ValidateIssuer to true and the 'tenant' setting in Web.> config to the tenant name
// To allow users from only a list of specific organizations, set ValidateIssuer to true and use the ValidIssuers parameter
TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = false // Simplification (see note below)
},
// OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to > the OnAuthenticationFailed method
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = OnAuthenticationFailed
}
}
);
}
Di mana Deskripsi ClientId
ID aplikasi untuk aplikasi yang terdaftar di portal Microsoft Azure. Authority
Titik akhir layanan token keamanan (STS) untuk diautentikasi pengguna. Biasanya https://login.microsoftonline.com/{tenant}/v2.0
untuk awan publik. Dalam URL tersebut, {tenant} adalah nama penyewa, ID penyewa, ataucommon
untuk referensi ke titik akhir umum. (Titik akhir umum digunakan untuk aplikasi multipenyewa.)RedirectUri
URL tempat pengguna dikirim setelah autentikasi terhadap platform identitas Microsoft. PostLogoutRedirectUri
URL tempat pengguna dikirim setelah keluar. Scope
Daftar lingkup yang diminta, dipisahkan oleh spasi. ResponseType
Permintaan agar respons dari autentikasi berisi kode otorisasi dan token ID. TokenValidationParameters
Daftar parameter untuk validasi token. Dalam hal ini, ValidateIssuer
diatur kefalse
untuk menunjukkan bahwa parameter dapat menerima rincian masuk dari jenis akun pribadi, kantor, atau sekolah apa pun.Notifications
Daftar delegasi yang dapat dijalankan di OpenIdConnect
pesan.
Catatan
Mengatur ValidateIssuer = false
adalah penyederhanaan untuk mulai cepat ini. Dalam aplikasi nyata, validasi penerbit. Lihat sampel untuk memahami cara melakukannya.
Tantangan autentikasi
Anda dapat memaksa pengguna untuk masuk dengan meminta tantangan autentikasi di pengontrol Anda:
public void SignIn()
{
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties{ RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
Tip
Meminta tantangan autentikasi menggunakan metode ini bersifat opsional. Anda biasanya menggunakannya saat ingin tampilan dapat diakses dari pengguna yang terautentikasi dan tidak diautentikasi. Atau, Anda dapat melindungi pengontrol menggunakan metode yang dijelaskan di bagian berikutnya.
Atribut untuk melindungi pengontrol atau tindakan pengontrol
Anda dapat melindungi pengontrol atau metode pengontrol menggunakan atribut [Authorize]
. Atribut ini membatasi akses ke pengontrol atau tindakan dengan hanya mengizinkan pengguna terautentikasi untuk mengakses tindakan di pengontrol. Tantangan otentikasi kemudian akan terjadi secara otomatis ketika pengguna yang tidak diautentikasi mencoba mengakses salah satu tindakan atau pengontrol yang dihiasi oleh atribut [Authorize]
.
Bantuan dan dukungan
Jika Anda memerlukan bantuan, ingin melaporkan masalah, atau ingin mempelajari opsi dukungan, lihat Bantuan dan dukungan bagi pengembang.
Langkah berikutnya
Untuk panduan langkah demi langkah lengkap tentang membangun aplikasi dan fitur baru, termasuk penjelasan lengkap dari mulai cepat ini, cobalah tutorial ASP.NET.