Hızlı Başlangıç: Microsoft Entra kullanıcıların oturum açtığı web uygulamasını ASP.NET
Hoş geldiniz! Bu muhtemelen beklediğiniz sayfa değildir. Bir düzeltme üzerinde çalışırken bu bağlantı sizi doğru makaleye götürmelidir:
Hızlı Başlangıç: Microsoft ile ASP.NET web uygulamasına oturum açma ekleme
Bu sorun için özür dileriz ve bu sorunu çözmek için çalışırken sabrınızı takdir ediyoruz.
Bu hızlı başlangıçta, kullanıcıları Microsoft Entra hesaplarıyla oturum açabilen bir ASP.NET web uygulamasını gösteren bir kod örneği indirip çalıştıracaksınız.
1. Adım: Uygulamanızı Azure portal yapılandırma
Bu hızlı başlangıçtaki kod örneğinin çalışması için Yeniden Yönlendirme URI'sini girinhttps://localhost:44368/.
Uygulamanız bu öznitelikle yapılandırıldı.
2. Adım: Projeyi indirme
Visual Studio 2019'u kullanarak projeyi çalıştırın.
İpucu
Windows'ta yol uzunluğu sınırlamalarından kaynaklanan hataları önlemek için, arşivi ayıklamanızı veya depoyu sürücünüzün köküne yakın bir dizine kopyalamanızı öneririz.
3. Adım: Uygulamanız yapılandırıldı ve çalışmaya hazır
Projenizi uygulamanızın özelliklerinin değerleriyle yapılandırdık.
.zip dosyasını kök klasöre yakın bir yerel klasöre ayıklayın. Örneğin, C:\Azure-Samples dizinine ayıklayın.
Windows'ta yol uzunluğu sınırlamalarından kaynaklanan hataları önlemek için arşivi sürücünüzün köküne yakın bir dizine ayıklamanızı öneririz.
Çözümü Visual Studio'da açın (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).
Visual Studio sürümüne bağlı olarak AppModelv2-WebApp-OpenIDConnect-DotNet projesine > sağ tıklayıp NuGet paketlerini geri yükle'yi seçmeniz gerekebilir.
Diğer Windows> Paket Yöneticisi Konsolunu Görüntüle'yi> seçerekPaket Yöneticisi Konsolu'nu açın. Ardından
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
komutunu çalıştırın.
Not
Enter_the_Supported_Account_Info_Here
Daha fazla bilgi
Bu bölümde, kullanıcılarda oturum açmak için gereken koda genel bir bakış sunun. Bu genel bakış, kodun nasıl çalıştığını, ana bağımsız değişkenlerin ne olduğunu ve mevcut bir ASP.NET uygulamasına nasıl oturum açma ekleneceğini anlamak için yararlı olabilir.
Örnek nasıl çalışır?
OWIN ara yazılımı NuGet paketleri
OWIN ara yazılım paketleriyle ASP.NET OpenID Connect kullanarak tanımlama bilgisi tabanlı kimlik doğrulaması ile kimlik doğrulama işlem hattını ayarlayabilirsiniz. Visual Studio'daki Paket Yöneticisi Konsolu'nda aşağıdaki komutları çalıştırarak bu paketleri yükleyebilirsiniz:
Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb
OWIN başlangıç sınıfı
OWIN ara yazılımı, barındırma işlemi başladığında çalışan bir başlangıç sınıfı kullanır. Bu hızlı başlangıçta startup.cs dosyası kök klasördedir. Aşağıdaki kod, bu hızlı başlangıcın kullandığı parametreleri gösterir:
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
}
}
);
}
Konum Description ClientId
Azure portal kayıtlı uygulamanın uygulama kimliği. Authority
Kullanıcının kimlik doğrulaması için güvenlik belirteci hizmeti (STS) uç noktası. Genellikle https://login.microsoftonline.com/{tenant}/v2.0
genel bulut içindir. Bu URL'de {tenant} , kiracınızın adı, kiracı kimliğiniz veyacommon
ortak uç noktaya başvuru için kullanılır. (Ortak uç nokta çok kiracılı uygulamalar için kullanılır.)RedirectUri
kullanıcıların Microsoft kimlik platformu karşı kimlik doğrulamasından sonra gönderildiği URL. PostLogoutRedirectUri
Kullanıcıların oturumu kapattıktan sonra gönderildiği URL. Scope
İstenmekte olan kapsamların listesi, boşluklarla ayrılmıştır. ResponseType
Kimlik doğrulamasından gelen yanıtın bir yetkilendirme kodu ve kimlik belirteci içermesi isteği. TokenValidationParameters
Belirteç doğrulaması için parametre listesi. Bu durumda, herhangi bir kişisel, ValidateIssuer
iş veya okul hesabı türünden oturum açmaları kabulebileceğini belirtmek içinfalse
olarak ayarlanır.Notifications
İletilerde çalıştırılabilir OpenIdConnect
temsilcilerin listesi.
Not
Bu hızlı başlangıç için ayar ValidateIssuer = false
basitleştirmedir. Gerçek uygulamalarda vereni doğrulayın. Bunun nasıl yapılacağını anlamak için örneklere bakın.
Kimlik doğrulaması sınaması
Denetleyicinizde kimlik doğrulaması sınaması isteyerek kullanıcıyı oturum açmaya zorlayabilirsiniz:
public void SignIn()
{
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties{ RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
}
İpucu
Bu yöntemi kullanarak kimlik doğrulaması sınaması istemek isteğe bağlıdır. Görünümün hem kimliği doğrulanmış hem de kimliği doğrulanmamış kullanıcılardan erişilebilir olmasını istediğinizde normalde bunu kullanırsınız. Alternatif olarak, bir sonraki bölümde açıklanan yöntemle denetleyicileri koruyabilirsiniz.
Denetleyiciyi veya denetleyici eylemlerini koruma özniteliği
özniteliğini kullanarak bir denetleyiciyi veya denetleyici eylemlerini [Authorize]
koruyabilirsiniz. Bu öznitelik, yalnızca kimliği doğrulanmış kullanıcıların denetleyicideki eylemlere erişmesine izin vererek denetleyiciye veya eylemlere erişimi kısıtlar. Kimlik doğrulaması sınaması, kimliği doğrulanmamış bir kullanıcı özniteliğiyle [Authorize]
düzenlenmiş eylemlerden veya denetleyicilerden birine erişmeye çalıştığında otomatik olarak gerçekleşir.
Yardım ve destek
Yardıma ihtiyacınız varsa, bir sorunu bildirmek istiyorsanız veya destek seçenekleriniz hakkında bilgi edinmek istiyorsanız, bkz. Geliştiriciler için yardım ve destek.
Sonraki adımlar
Bu hızlı başlangıcın tam açıklaması da dahil olmak üzere uygulama ve yeni özellikler oluşturmaya yönelik eksiksiz bir adım adım kılavuz için ASP.NET öğreticisini deneyin.