Hızlı Başlangıç: Microsoft Entra kullanıcılarında oturum açma ASP.NET web uygulaması

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ıç: ASP.NET web uygulamasına Microsoft ile 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 ASP.NET bir web uygulamasını gösteren bir kod örneği indirip çalıştıracaksınız.

1. Adım: Uygulamanızı Azure portalında yapılandırma

Bu hızlı başlangıçtaki kod örneğinin çalışması için Yeniden Yönlendirme URI'sini girinhttps://localhost:44368/.

Already configured 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ılmış ve çalışmaya hazır

Projenizi uygulamanızın özelliklerinin değerleriyle yapılandırdık.

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

  2. Çözümü Visual Studio'da açın (AppModelv2-WebApp-OpenID Bağlan-DotNet.sln).

  3. Visual Studio sürümüne bağlı olarak, AppModelv2-WebApp-OpenID Bağlan-DotNet projesine >sağ tıklayıp NuGet paketlerini geri yükle'yi seçmeniz gerekebilir.

  4. Diğer Windows> Paket Yöneticisi Konsolunu Görüntüle'yi> seçerek Paket Yöneticisi Konsolunu 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?

Diagram of the interaction between the web browser, the web app, and the Microsoft identity platform in the sample app.

OWIN ara yazılımı NuGet paketleri

OWIN ara yazılım paketleriyle ASP.NET OpenID Bağlan 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
            }
        }
    );
}
Konumu Açıklama
ClientId Azure portalında 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 veya common ortak uç nokta başvurusudur. (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çmayı kabul ettiğini belirtmek için olarak ayarlanır false .
Notifications İletilerde çalıştırılabilir OpenIdConnect temsilcilerin listesi.

Not

Ayar ValidateIssuer = false , bu hızlı başlangıç için 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ğrulama sınaması istemek isteğe bağlıdır. Bir 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 korumaya yönelik öznitelik

Özniteliğini kullanarak bir denetleyiciyi veya denetleyici eylemlerini [Authorize] koruyabilirsiniz. Bu öznitelik, denetleyicideki eylemlere yalnızca kimliği doğrulanmış kullanıcıların 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ği tarafından [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 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şturma hakkında tam adım adım kılavuz için ASP.NET öğreticisini deneyin.