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/.
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.
.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-OpenID Bağlan-DotNet.sln).
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.
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?
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 veyacommon
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ırfalse
.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.