Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bahşiş
Bu içerik, .NET Docs veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sağlanan Azure için Bulut Yerel .NET Uygulamaları Tasarlama adlı e-Kitap'tan bir alıntıdır.
Azure eKitap kapak küçük resmi için Buluta Özel .NET uygulamaları.
Duende IdentityServer, ASP.NET Core kullanarak OpenID Connect (OIDC) ve OAuth 2.x standartlarıyla uyumlu bir kimlik doğrulama sunucusu oluşturmaya yönelik bir çerçevedir.
Web, yerel, mobil veya API uç noktaları olsun, tüm uygulamalarınızda isteklerin kimliğini doğrulamak için ortak bir yol sağlamak üzere tasarlanmıştır. IdentityServer, birden çok uygulama ve uygulama türü için Tek Sign-On (SSO) uygulamak için kullanılabilir. Oturum açma formları ve benzer kullanıcı arabirimleri aracılığıyla gerçek kullanıcıların kimliğini doğrulamak ve genellikle herhangi bir kullanıcı arabirimi olmadan belirteç verme, doğrulama ve yenilemeyi içeren hizmet tabanlı kimlik doğrulaması için kullanılabilir. Ayrıca, kimlik doğrulama sağlayıcılarını birleştirmek için federasyon ağ geçidi olarak da görev yapabilir.
IdentityServer, özelleştirilebilir bir çözüm olarak tasarlanmıştır. Her örnek genellikle tek bir kuruluşa veya bir uygulama kümesinin gereksinimlerine uyacak şekilde özelleştirilir.
Yaygın web uygulaması senaryoları
Genellikle uygulamaların aşağıdaki senaryolardan bazılarını veya tümünü desteklemesi gerekir:
- Web uygulamalarına tarayıcıyla erişen insan kullanıcılar.
- Tarayıcı tabanlı uygulamalardan arka uç Web API'lerine erişen insan kullanıcılar.
- Arka uç Web API'lerine erişen mobil/yerel istemcilerdeki insan kullanıcılar.
- Arka uç Web API'lerine erişen diğer uygulamalar (etkin kullanıcı veya kullanıcı arabirimi olmadan).
- Herhangi bir uygulamanın kendi kimliğini kullanarak veya kullanıcının kimliğine temsilci atayarak diğer Web API'leriyle etkileşim kurması gerekebilir.
Şekil 8-1. Uygulama türleri ve senaryoları.
Bu senaryoların her birinde, kullanıma sunulan işlevselliğin yetkisiz kullanıma karşı korunması gerekir. En azından, bu genellikle bir kaynak için istekte bulunan kullanıcının veya sorumlunun kimliğini doğrulamayı gerektirir. Bu kimlik doğrulaması SAML2p, WS-Fed veya OpenID Connect gibi birçok yaygın protokolden birini kullanabilir. API'lerle iletişim kurmak genellikle OAuth 2 protokolünü ve güvenlik belirteçleri desteğini kullanır. Bu kritik çapraz kesme güvenlik endişelerini ve bunların uygulama ayrıntılarını uygulamalardan ayırmak tutarlılık sağlar ve güvenliği ve sürdürülebilirliği artırır. IdentityServer gibi özel bir ürüne bu endişeleri dış kaynak olarak temin etmek, her uygulamanın bu sorunları çözme gereksinimini ortadan kaldırır.
IdentityServer, ASP.NET Core uygulamasında çalışan ara yazılım sağlar ve OpenID Connect ve OAuth 2.x için destek ekler ( desteklenen belirtimlere bakın). IdentityServer kullanarak kuruluşlar, tüm belirteç tabanlı güvenlik protokolleri için yetkilendirme sunucusu olarak görev yapmak üzere IdentityServer ara yazılımını kullanarak kendi ASP.NET Core uygulamalarını oluşturabilir. IdentityServer ara yazılımı, aşağıdakiler dahil olmak üzere standart işlevleri desteklemek için uç noktaları kullanıma sunar:
- Yetkilendirme (son kullanıcının kimliğini doğrulama)
- Belirteç (program aracılığıyla belirteç isteme)
- Bulma (sunucu hakkındaki meta veriler)
- Kullanıcı Bilgileri (geçerli bir erişim belirteci ile kullanıcı bilgilerini alma)
- Cihaz Yetkilendirme (cihaz akışı yetkilendirmesini başlatmak için kullanılır)
- İçgözlem (belirteç doğrulama)
- İptal (belirteç iptali)
- Oturumu Sonlandır (tüm uygulamalarda tek seferde oturum kapatmayı sağlama)
- Gönderilen Yetkilendirme İstekleri (daha güvenli bir kimlik doğrulama işlemi için)
Başlangıç
IdentityServer kullanılabilir:
- Küçük şirketler ve kar amacı gütmeyen kuruluşlar için IdentityServer'ı ücretsiz kullanmanızı sağlayan bir topluluk lisansı ile (koşullar geçerlidir)
- Ücretli, bu sayede IdentityServer ticari bir senaryoda kullanmanıza olanak
Fiyatlandırma hakkında daha fazla bilgi için resmi ürünün fiyatlandırma sayfasınabakın.
NuGet paketlerini kullanarak uygulamalarınıza ekleyebilirsiniz. Ana paket, dört milyondan fazla kez indirilen IdentityServer. Temel paket herhangi bir kullanıcı arabirimi kodu içermez ve yalnızca bellek içi yapılandırmayı destekler. Bunu bir veritabanıyla kullanmak için, IdentityServer için yapılandırma ve işlem verilerini depolamak için Entity Framework Core kullanan Duende.IdentityServer.Storagegibi bir veri sağlayıcısı da istersiniz. Kullanıcı arabirimi için, IdentityServer ara yazılımını kullanarak oturum açma ve oturumu kapatma desteği eklemek için örnek deposundaki dosyaları ASP.NET Core MVC uygulamanıza kopyalayabilirsiniz.
Konfigürasyon
IdentityServer, her özel yüklemenin parçası olarak yapılandırılabilir farklı protokol türlerini ve sosyal kimlik doğrulama sağlayıcılarını destekler. Bu genellikle ASP.NET Core uygulamasının Program sınıfında yapılır. Yapılandırma, desteklenen protokolleri ve kullanılacak sunucuların ve uç noktaların yollarını belirtmeyi içerir. Şekil 8-2'de ASP.NET Core uygulamaları projesi için IdentityServer Hızlı Başlangıcı'ndan alınan örnek bir yapılandırma gösterilmektedir:
// some details omitted
builder.Services.AddIdentityServer();
builder.Services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddGoogle("Google", options =>
{
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
options.ClientId = "<insert here>";
options.ClientSecret = "<insert here>";
})
.AddOpenIdConnect("oidc", options =>
{
options.Authority = "https://localhost:5001";
options.ClientId = "web";
options.ClientSecret = "secret";
options.ResponseType = "code";
options.Scope.Clear();
options.Scope.Add("openid");
options.Scope.Add("profile");
options.MapInboundClaims = false; // Don't rename claim types
options.SaveTokens = true;
});
}
Şekil 8-2. IdentityServer'ın yapılandırılması.
JavaScript istemcileri
Buluta özel birçok uygulama, örneğin React, Angular veya Blazor WebAssembly kullanarak ön uçta sunucu tarafı API'leri ve zengin istemci tek sayfalı uygulamaları (SPA' lar) kullanır. Ön uç için arka uç (BFF) deseni, bu tür istemciler için kullanılır ve bu da belirteçleri tarayıcının erişiminden uzak tutmayı mümkün kılar. Bu desen, IETF'nin Browser-Based Uygulamaları için OAuth 2.0 belirtimlerine uyar.