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.
tarafından Mike Rousos
Kimlik doğrulaması, bir kullanıcının kimliğini belirleme işlemidir.
Yetkilendirme, bir kullanıcının bir kaynağa erişimi olup olmadığını belirleme işlemidir. ASP.NET Core'da kimlik doğrulama, kimlik doğrulama
- Kullanıcının kimliğini doğrulama.
- Kimliği doğrulanmamış bir kullanıcı kısıtlanmış bir kaynağa erişmeye çalıştığında yanıt verme.
Kayıtlı kimlik doğrulaması işleyicileri ve yapılandırma seçenekleri "düzenler" olarak adlandırılır.
Kimlik doğrulaması şemaları, içinde kimlik doğrulaması hizmetleri kaydedilerek belirtilir:
- gibi bir çağrının ardından, örneğin veya , şemaya özgü bir uzantı yöntemi çağırarak. Bu uzantı yöntemleri, düzenleri uygun ayarlarla kaydetmek için kullanır.
- Daha az yaygın olan, doğrudan çağrısı yapmaktır.
Örneğin, aşağıdaki kod ve JWT taşıyıcı kimlik doğrulaması düzenleri için kimlik doğrulaması hizmetlerini ve işleyicilerini kaydeder:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("CookieSettings", options));
parametresi , belirli bir düzen istenmediğinde varsayılan olarak kullanılacak düzenin adıdır.
Birden çok düzen kullanılıyorsa, yetkilendirme ilkeleri (veya yetkilendirme öznitelikleri), kullanıcının kimliğini doğrulamak için bağımlı oldukları kimlik doğrulaması düzenini (veya düzenlerini) belirtebilir. Yukarıdaki örnekte, kimlik doğrulaması düzeni adını belirterek kullanılabilir (varsayılan olarak , ancak çağrılırken farklı bir ad sağlanabilir).
Bazı durumlarda, çağrısı diğer uzantı yöntemleri tarafından otomatik olarak yapılır. Örneğin, ASP.NET Core Identity kullanıldığında, AddAuthentication dahili olarak çağrılır.
Kimlik doğrulaması ara yazılımı içinde çağrılarak eklenir. çağrısı, önceden kaydedilmiş kimlik doğrulaması düzenlerini kullanan ara yazılımı kaydeder. Kimlik doğrulaması yapılan kullanıcılara bağlı herhangi bir ara yazılımdan önce çağrısı yapın.
Kimlik doğrulama kavramları
Kimlik doğrulama, yetkilendirme sürecinde izin kararları almak için sağlamaktan sorumludur. Doğru talep kümesini oluşturmak üzere hangi kimlik doğrulaması işleyicisinin sorumlu olduğunu seçmek için birden çok kimlik doğrulaması düzeni yaklaşımı vardır:
- Kimlik doğrulaması düzeni
- Sonraki iki bölümde ele alınan varsayılan kimlik doğrulama düzeni.
- öğesini doğrudan ayarlayın.
Yalnızca tek bir kimlik doğrulama şeması kaydedildiğinde, varsayılan düzen haline gelir. Birden çok düzen kayıtlıysa ve varsayılan düzen belirtilmemişse, authorize özniteliğinde bir düzen belirtilmelidir, aksi takdirde aşağıdaki hata oluşur:
InvalidOperationException: AuthenticationScheme belirtilmedi ve DefaultAuthenticateScheme bulunamadı. Varsayılan düzenler AddAuthentication(string defaultScheme) veya AddAuthentication(ActionAuthenticationOptions configureOptions) kullanılarak ayarlanabilir.
DefaultScheme
Yalnızca tek bir kimlik doğrulama şeması kayıtlı olduğunda, tek kimlik doğrulama düzeni:
- otomatik olarak olarak kullanılır.
- veya 'de belirtme gereğini ortadan kaldırır.
Otomatik olarak tek kimlik doğrulama düzenini devre dışı bırakmak için çağrısını yapın.
Kimlik doğrulaması düzeni
Kimlik doğrulaması düzeni, doğru talep kümesini oluşturmaktan hangi kimlik doğrulaması işleyicisinin sorumlu olduğunu seçebilir. Daha fazla bilgi için, bkz. Belirli bir düzen ile yetkilendirme.
Kimlik doğrulaması düzeni, şu adlara karşılık gelen bir addır:
- Bir kimlik doğrulaması işleyicisi.
- İşleyicinin belirli bir örneğini yapılandırma seçenekleri.
Düzenler, ilişkili işleyicinin kimlik doğrulaması, sınama ve yasak davranışlarına başvurmak için bir mekanizma olarak kullanışlıdır. Örneğin, bir yetkilendirme ilkesi, kullanıcının kimliğini doğrulamak için hangi kimlik doğrulaması düzeninin (veya düzenlerin) kullanılacağını belirtmek için düzen adlarını kullanabilir. Kimlik doğrulamasını yapılandırırken, varsayılan kimlik doğrulaması düzenini belirtmek yaygın bir durum olur. Bir kaynak belirli bir düzeni istemediği sürece varsayılan düzen kullanılır. Ayrıca şunlar da yapılabilir:
- Kimlik doğrulaması, sınama ve yasak eylemler için kullanılacak farklı varsayılan düzenleri belirtme.
- Politika düzenlerini kullanarak birden çok düzeni tek düzende birleştirin.
Kimlik doğrulama işleyicisi
Bir kimlik doğrulaması işleyicisi:
- Bir düzenin davranışını uygulayan bir türdür.
- veya öğesinden türetilir.
- Kullanıcıların kimliğini doğrulama birincil sorumluluğuna sahiptir.
Kimlik doğrulama düzeninin yapılandırmasına ve gelen isteğin bağlamına bağlı olarak, kimlik doğrulama işleyicileri çalışır.
- Kimlik doğrulaması başarılı olursa kullanıcının kimliğini temsil eden nesneleri oluşturma.
- Kimlik doğrulaması başarısız olursa 'sonuç yok' veya 'hata' döndür.
- Kullanıcıların kaynaklara erişim girişimlerinde sınama ve yasaklama eylemleri için yöntemler oluşturmanız gereklidir.
- Erişime yetkileri yoktur (yasaklanmıştır).
- Kimlik doğrulaması yapılmadığında (sınama).
ve
, bir uzak kimlik doğrulaması adımı gerektiren kimlik doğrulaması sınıfıdır. Uzaktan kimlik doğrulama adımı tamamlandığında, işleyici tarafından ayarlanan değeri geri çağrılır. İşleyici, geri çağırma yoluna geçirilen bilgileri kullanarak kimlik doğrulaması adımını tamamlar. OAuth 2.0 ve OIDC bu deseni kullanır. JWT ve çerezler, doğrudan bearer üst bilgisini ve kullanarak kimlik doğrulaması yapabilir. Bu durumda uzaktan barındırılan sağlayıcı:
- Kimlik doğrulaması sağlayıcısıdır.
- Örnek olarak Facebook, Twitter, Google, Microsoft ve işleyiciler mekanizmasını kullanarak kullanıcıların kimliğini doğrulamayı işleyen diğer OIDC sağlayıcıları verilebilir.
Kimliği doğrula
Kimlik doğrulama düzeninin kimlik doğrulama eylemi, istek bağlamını temel alarak kullanıcının kimliğini oluşturmakla sorumludur. Kimlik doğrulamasının başarılı olup olmadığını ve başarılıysa kullanıcının kimliğini bir kimlik doğrulama biletinde belirten bir döndürür. Bkz. . Kimlik doğrulaması örnekleri şu şekildedir:
- kimlik doğrulama düzeni, tanımlama bilgilerinden kullanıcının kimliğini oluşturmaktadır.
- Kullanıcının kimliğini oluşturmak için bir JWT taşıyıcı belirtecini seri durumdan çıkaran ve doğrulayan bir JWT taşıyıcı sistemi.
Sınama
Kimliği doğrulanmamış bir kullanıcı kimlik doğrulaması gerektiren bir uç nokta istediğinde Yetkilendirme tarafından bir kimlik doğrulaması sınaması çağrılır. Örneğin, anonim bir kullanıcı kısıtlı bir kaynak istediğinde veya oturum açma bağlantısını izlediğinde bir kimlik doğrulaması sınaması verilir. Yetkilendirme, belirtilen kimlik doğrulama düzenlerini kullanarak bir sınamayı veya belirtilmemişse varsayılanı çağırır. Bkz. . Kimlik doğrulaması sınaması örnekleri şunlardır:
- Kullanıcıyı oturum açma sayfasına yönlendiren bir kimlik doğrulaması düzeni.
- 401 sonucu döndüren, üst bilgisine sahip bir JWT taşıyıcı şeması.
Sınama eylemi, kullanıcıya istenen kaynağa erişmek için kullanılacak kimlik doğrulama mekanizmasını bildirmelidir.
Yasakla
Kimliği doğrulanmış bir kullanıcı, erişim izni olmayan bir kaynağa erişmeye çalıştığında, kimlik doğrulama düzenine ait yasaklama eylemi Yetkilendirme tarafından çağrılır. Bkz. . Kimlik doğrulamasının yasak olduğu örnekler şunlardır:
- Kullanıcıyı erişimin yasaklandığını belirten bir sayfaya yönlendiren bir kimlik doğrulama şeması cookie.
- 403 sonucunu döndüren bir JWT taşıyıcı sistemi.
- Kullanıcının kaynağa access isteyebileceği bir sayfaya yönlendiren özel bir kimlik doğrulama düzeni.
Yasaklanan bir eylem kullanıcıya şunları bildirir:
- Kimlikleri doğrulandı.
- İstenen kaynağa erişim izni verilmez.
Sınama ve yasak arasındaki farklar için aşağıdaki bağlantılara bakın:
- Operasyonel kaynak işleyicisi ile meydan okuma ve yasaklama.
- Sınama ve yasak arasındaki farklar.
Kiracı başına kimlik doğrulaması sağlayıcıları
ASP.NET Core, çok kiracılı kimlik doğrulaması için yerleşik bir çözüme sahip değildir. Müşterilerin yerleşik özellikleri kullanarak yazması mümkün olsa da, müşterilerin çok kiracılı kimlik doğrulaması için Orchard Core, ABP Framework veya Finbuckle.MultiTenant göz önünde bulundurmalarını öneririz.
Orchard Core nedir:
- ASP.NET Core ile oluşturulmuş açık kaynak, modüler ve çok kiracılı bir uygulama çerçevesi.
- Bu uygulama çerçevesinin üzerinde oluşturulmuş bir içerik yönetim sistemi (CMS).
Kiracı başına kimlik doğrulama sağlayıcıları örneği için Orchard Core kaynağına bakın.
ABP Framework modülerlik, mikro hizmetler, etki alanı odaklı tasarım ve çok kiracılılık gibi çeşitli mimari desenleri destekler. GitHub üzerinde
Finbuckle.MultiTenant:
- açık kaynak
- Kiracı çözümlemesi sağlar
- Hafif
- Veri yalıtımı sağlar
- Uygulama davranışını her kiracı için benzersiz olarak yapılandırma
Ek kaynaklar
- ASP.NET Core’da belirli bir şemayla yetkilendirin
- ASP.NET Core'da İlke şemaları
- Yetkilendirmeyle korunan kullanıcı verileriyle ASP.NET Core uygulaması oluşturma
- Genel olarak kimliği doğrulanmış kullanıcılar gerektir
- GitHub birden çok kimlik doğrulama düzeni kullanma sorunu
tarafından Mike Rousos
Kimlik doğrulaması, bir kullanıcının kimliğini belirleme işlemidir.
Yetkilendirme, bir kullanıcının bir kaynağa erişimi olup olmadığını belirleme işlemidir. ASP.NET Core'da kimlik doğrulama, kimlik doğrulama
- Kullanıcının kimliğini doğrulama.
- Kimliği doğrulanmamış bir kullanıcı kısıtlanmış bir kaynağa erişmeye çalıştığında yanıt verme.
Kayıtlı kimlik doğrulaması işleyicileri ve yapılandırma seçenekleri "düzenler" olarak adlandırılır.
Kimlik doğrulaması şemaları, içinde kimlik doğrulaması hizmetleri kaydedilerek belirtilir:
- gibi bir çağrının ardından, örneğin veya , şemaya özgü bir uzantı yöntemi çağırarak. Bu uzantı yöntemleri, düzenleri uygun ayarlarla kaydetmek için kullanır.
- Daha az yaygın olan, doğrudan çağrısı yapmaktır.
Örneğin, aşağıdaki kod ve JWT taşıyıcı kimlik doğrulaması düzenleri için kimlik doğrulaması hizmetlerini ve işleyicilerini kaydeder:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("CookieSettings", options));
parametresi , belirli bir düzen istenmediğinde varsayılan olarak kullanılacak düzenin adıdır.
Birden çok düzen kullanılıyorsa, yetkilendirme ilkeleri (veya yetkilendirme öznitelikleri), kullanıcının kimliğini doğrulamak için bağımlı oldukları kimlik doğrulaması düzenini (veya düzenlerini) belirtebilir. Yukarıdaki örnekte, kimlik doğrulaması düzeni adını belirterek kullanılabilir (varsayılan olarak , ancak çağrılırken farklı bir ad sağlanabilir).
Bazı durumlarda, çağrısı diğer uzantı yöntemleri tarafından otomatik olarak yapılır. Örneğin, ASP.NET Core Identity kullanıldığında, AddAuthentication dahili olarak çağrılır.
Kimlik doğrulaması ara yazılımı içinde çağrılarak eklenir. çağrısı, önceden kaydedilmiş kimlik doğrulaması düzenlerini kullanan ara yazılımı kaydeder. Kimlik doğrulaması yapılan kullanıcılara bağlı herhangi bir ara yazılımdan önce çağrısı yapın.
Kimlik doğrulama kavramları
Kimlik doğrulama, yetkilendirme sürecinde izin kararları almak için sağlamaktan sorumludur. Doğru talep kümesini oluşturmak üzere hangi kimlik doğrulaması işleyicisinin sorumlu olduğunu seçmek için birden çok kimlik doğrulaması düzeni yaklaşımı vardır:
- Kimlik doğrulaması düzeni
- Sonraki bölümde ele alınan varsayılan kimlik doğrulaması düzeni.
- öğesini doğrudan ayarlayın.
Düzenlerin otomatik olarak incelenmesi yoktur. Varsayılan düzen belirtilmezse, düzen yetkilendirme özniteliğinde belirtilmelidir, aksi takdirde aşağıdaki hata verilir:
InvalidOperationException: AuthenticationScheme belirtilmedi ve DefaultAuthenticateScheme bulunamadı. Varsayılan düzenler AddAuthentication(string defaultScheme) veya AddAuthentication(ActionAuthenticationOptions configureOptions) kullanılarak ayarlanabilir.
Kimlik doğrulaması düzeni
Kimlik doğrulaması düzeni, doğru talep kümesini oluşturmaktan hangi kimlik doğrulaması işleyicisinin sorumlu olduğunu seçebilir. Daha fazla bilgi için, bkz. Belirli bir düzen ile yetkilendirme.
Kimlik doğrulaması düzeni, şu adlara karşılık gelen bir addır:
- Bir kimlik doğrulaması işleyicisi.
- İşleyicinin belirli bir örneğini yapılandırma seçenekleri.
Düzenler, ilişkili işleyicinin kimlik doğrulaması, sınama ve yasak davranışlarına başvurmak için bir mekanizma olarak kullanışlıdır. Örneğin, bir yetkilendirme ilkesi, kullanıcının kimliğini doğrulamak için hangi kimlik doğrulaması düzeninin (veya düzenlerin) kullanılacağını belirtmek için düzen adlarını kullanabilir. Kimlik doğrulamasını yapılandırırken, varsayılan kimlik doğrulaması düzenini belirtmek yaygın bir durum olur. Bir kaynak belirli bir düzeni istemediği sürece varsayılan düzen kullanılır. Ayrıca şunlar da yapılabilir:
- Kimlik doğrulaması, sınama ve yasak eylemler için kullanılacak farklı varsayılan düzenleri belirtme.
- Politika düzenlerini kullanarak birden çok düzeni tek düzende birleştirin.
Kimlik doğrulama işleyicisi
Bir kimlik doğrulaması işleyicisi:
- Bir düzenin davranışını uygulayan bir türdür.
- veya öğesinden türetilir.
- Kullanıcıların kimliğini doğrulama birincil sorumluluğuna sahiptir.
Kimlik doğrulama düzeninin yapılandırmasına ve gelen isteğin bağlamına bağlı olarak, kimlik doğrulama işleyicileri çalışır.
- Kimlik doğrulaması başarılı olursa kullanıcının kimliğini temsil eden nesneleri oluşturma.
- Kimlik doğrulaması başarısız olursa 'sonuç yok' veya 'hata' döndür.
- Kullanıcıların kaynaklara erişim girişimlerinde sınama ve yasaklama eylemleri için yöntemler oluşturmanız gereklidir.
- Erişime yetkileri yoktur (yasaklanmıştır).
- Kimlik doğrulaması yapılmadığında (sınama).
ve
, bir uzak kimlik doğrulaması adımı gerektiren kimlik doğrulaması sınıfıdır. Uzaktan kimlik doğrulama adımı tamamlandığında, işleyici tarafından ayarlanan değeri geri çağrılır. İşleyici, geri çağırma yoluna geçirilen bilgileri kullanarak kimlik doğrulaması adımını tamamlar. OAuth 2.0 ve OIDC bu deseni kullanır. JWT ve çerezler, doğrudan bearer üst bilgisini ve kullanarak kimlik doğrulaması yapabilir. Bu durumda uzaktan barındırılan sağlayıcı:
- Kimlik doğrulaması sağlayıcısıdır.
- Örnek olarak Facebook, Twitter, Google, Microsoft ve işleyiciler mekanizmasını kullanarak kullanıcıların kimliğini doğrulamayı işleyen diğer OIDC sağlayıcıları verilebilir.
Kimliği doğrula
Kimlik doğrulama düzeninin kimlik doğrulama eylemi, istek bağlamını temel alarak kullanıcının kimliğini oluşturmakla sorumludur. Kimlik doğrulamasının başarılı olup olmadığını ve başarılıysa kullanıcının kimliğini bir kimlik doğrulama biletinde belirten bir döndürür. Bkz. . Kimlik doğrulaması örnekleri şu şekildedir:
- kimlik doğrulama düzeni, tanımlama bilgilerinden kullanıcının kimliğini oluşturmaktadır.
- Kullanıcının kimliğini oluşturmak için bir JWT taşıyıcı belirtecini seri durumdan çıkaran ve doğrulayan bir JWT taşıyıcı sistemi.
Sınama
Kimliği doğrulanmamış bir kullanıcı kimlik doğrulaması gerektiren bir uç nokta istediğinde Yetkilendirme tarafından bir kimlik doğrulaması sınaması çağrılır. Örneğin, anonim bir kullanıcı kısıtlı bir kaynak istediğinde veya oturum açma bağlantısını izlediğinde bir kimlik doğrulaması sınaması verilir. Yetkilendirme, belirtilen kimlik doğrulama düzenlerini kullanarak bir sınamayı veya belirtilmemişse varsayılanı çağırır. Bkz. . Kimlik doğrulaması sınaması örnekleri şunlardır:
- Kullanıcıyı oturum açma sayfasına yönlendiren bir kimlik doğrulaması düzeni.
- 401 sonucu döndüren, üst bilgisine sahip bir JWT taşıyıcı şeması.
Sınama eylemi, kullanıcıya istenen kaynağa erişmek için kullanılacak kimlik doğrulama mekanizmasını bildirmelidir.
Yasakla
Kimliği doğrulanmış bir kullanıcı, erişim izni olmayan bir kaynağa erişmeye çalıştığında, kimlik doğrulama düzenine ait yasaklama eylemi Yetkilendirme tarafından çağrılır. Bkz. . Kimlik doğrulamasının yasak olduğu örnekler şunlardır:
- Kullanıcıyı erişimin yasaklandığını belirten bir sayfaya yönlendiren bir kimlik doğrulama şeması cookie.
- 403 sonucunu döndüren bir JWT taşıyıcı sistemi.
- Kullanıcının kaynağa access isteyebileceği bir sayfaya yönlendiren özel bir kimlik doğrulama düzeni.
Yasaklanan bir eylem kullanıcıya şunları bildirir:
- Kimlikleri doğrulandı.
- İstenen kaynağa erişim izni verilmez.
Sınama ve yasak arasındaki farklar için aşağıdaki bağlantılara bakın:
- Operasyonel kaynak işleyicisi ile meydan okuma ve yasaklama.
- Sınama ve yasak arasındaki farklar.
Kiracı başına kimlik doğrulaması sağlayıcıları
ASP.NET Core, çok kiracılı kimlik doğrulaması için yerleşik bir çözüme sahip değildir. Müşterilerin yerleşik özellikleri kullanarak bir çözüm yazması mümkün olsa da, müşterilere çoklu kiracı kimlik doğrulaması için Orchard Core veya ABP Framework'ü göz önünde bulundurmalarını öneririz.
Orchard Core nedir:
- ASP.NET Core ile oluşturulmuş açık kaynak, modüler ve çok kiracılı bir uygulama çerçevesi.
- Bu uygulama çerçevesinin üzerinde oluşturulmuş bir içerik yönetim sistemi (CMS).
Kiracı başına kimlik doğrulama sağlayıcıları örneği için Orchard Core kaynağına bakın.
ABP Framework modülerlik, mikro hizmetler, etki alanı odaklı tasarım ve çok kiracılılık gibi çeşitli mimari desenleri destekler. GitHub üzerinde
Ek kaynaklar
- ASP.NET Core’da belirli bir şemayla yetkilendirin
- ASP.NET Core'da İlke şemaları
- Yetkilendirmeyle korunan kullanıcı verileriyle ASP.NET Core uygulaması oluşturma
- Genel olarak kimliği doğrulanmış kullanıcılar gerektir
- GitHub birden çok kimlik doğrulama düzeni kullanma sorunu
tarafından Mike Rousos
Kimlik doğrulaması, bir kullanıcının kimliğini belirleme işlemidir.
Yetkilendirme, bir kullanıcının bir kaynağa erişimi olup olmadığını belirleme işlemidir. ASP.NET Core'da kimlik doğrulama, kimlik doğrulama
- Kullanıcının kimliğini doğrulama.
- Kimliği doğrulanmamış bir kullanıcı kısıtlanmış bir kaynağa erişmeye çalıştığında yanıt verme.
Kayıtlı kimlik doğrulaması işleyicileri ve yapılandırma seçenekleri "düzenler" olarak adlandırılır.
Kimlik doğrulaması şemaları, içinde kimlik doğrulaması hizmetleri kaydedilerek belirtilir:
- çağrısının ardından şemaya özgü bir uzantı yöntemi çağırarak (örneğin, veya gibi). Bu uzantı yöntemleri, düzenleri uygun ayarlarla kaydetmek için kullanır.
- Daha az yaygın olan, doğrudan çağrısı yapmaktır.
Örneğin, aşağıdaki kod ve JWT taşıyıcı kimlik doğrulaması düzenleri için kimlik doğrulaması hizmetlerini ve işleyicilerini kaydeder:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => Configuration.Bind("CookieSettings", options));
parametresi , belirli bir düzen istenmediğinde varsayılan olarak kullanılacak düzenin adıdır.
Birden çok düzen kullanılıyorsa, yetkilendirme ilkeleri (veya yetkilendirme öznitelikleri), kullanıcının kimliğini doğrulamak için bağımlı oldukları kimlik doğrulaması düzenini (veya düzenlerini) belirtebilir. Yukarıdaki örnekte, kimlik doğrulaması düzeni adını belirterek kullanılabilir (varsayılan olarak , ancak çağrılırken farklı bir ad sağlanabilir).
Bazı durumlarda, çağrısı diğer uzantı yöntemleri tarafından otomatik olarak yapılır. Örneğin, ASP.NET Core Identity kullanıldığında, AddAuthentication dahili olarak çağrılır.
Kimlik doğrulaması ara yazılımı içinde çağrılarak eklenir. çağrısı, önceden kaydedilmiş kimlik doğrulaması düzenlerini kullanan ara yazılımı kaydeder. Kimlik doğrulaması yapılan kullanıcılara bağlı herhangi bir ara yazılımdan önce çağrısı yapın. Uç nokta yönlendirme kullanılırken çağrısının gönderilmesi gerekir:
- sonrasında, kimlik doğrulaması kararları için yol bilgilerinin kullanılabilir olması sağlanır.
- öncesinde, kullanıcıların, uç noktalara erişmeden önce kimlikleri doğrulanır.
Kimlik doğrulama kavramları
Kimlik doğrulama, yetkilendirme sürecinde izin kararları almak için sağlamaktan sorumludur. Doğru talep kümesini oluşturmak üzere hangi kimlik doğrulaması işleyicisinin sorumlu olduğunu seçmek için birden çok kimlik doğrulaması düzeni yaklaşımı vardır:
- Kimlik doğrulaması düzeni
- Sonraki bölümde ele alınan varsayılan kimlik doğrulaması düzeni.
- öğesini doğrudan ayarlayın.
Düzenlerin otomatik olarak incelenmesi yoktur. Varsayılan düzen belirtilmezse, düzen yetkilendirme özniteliğinde belirtilmelidir, aksi takdirde aşağıdaki hata verilir:
InvalidOperationException: AuthenticationScheme belirtilmedi ve DefaultAuthenticateScheme bulunamadı. Varsayılan düzenler AddAuthentication(string defaultScheme) veya AddAuthentication(ActionAuthenticationOptions configureOptions) kullanılarak ayarlanabilir.
Kimlik doğrulaması düzeni
Kimlik doğrulaması düzeni, doğru talep kümesini oluşturmaktan hangi kimlik doğrulaması işleyicisinin sorumlu olduğunu seçebilir. Daha fazla bilgi için, bkz. Belirli bir düzen ile yetkilendirme.
Kimlik doğrulaması düzeni, şu adlara karşılık gelen bir addır:
- Bir kimlik doğrulaması işleyicisi.
- İşleyicinin belirli bir örneğini yapılandırma seçenekleri.
Düzenler, ilişkili işleyicinin kimlik doğrulaması, sınama ve yasak davranışlarına başvurmak için bir mekanizma olarak kullanışlıdır. Örneğin, bir yetkilendirme ilkesi, kullanıcının kimliğini doğrulamak için hangi kimlik doğrulaması düzeninin (veya düzenlerin) kullanılacağını belirtmek için düzen adlarını kullanabilir. Kimlik doğrulamasını yapılandırırken, varsayılan kimlik doğrulaması düzenini belirtmek yaygın bir durum olur. Bir kaynak belirli bir düzeni istemediği sürece varsayılan düzen kullanılır. Ayrıca şunlar da yapılabilir:
- Kimlik doğrulaması, sınama ve yasak eylemler için kullanılacak farklı varsayılan düzenleri belirtme.
- Politika düzenlerini kullanarak birden çok düzeni tek düzende birleştirin.
Kimlik doğrulama işleyicisi
Bir kimlik doğrulaması işleyicisi:
- Bir düzenin davranışını uygulayan bir türdür.
- veya öğesinden türetilir.
- Kullanıcıların kimliğini doğrulama birincil sorumluluğuna sahiptir.
Kimlik doğrulama düzeninin yapılandırmasına ve gelen isteğin bağlamına bağlı olarak, kimlik doğrulama işleyicileri çalışır.
- Kimlik doğrulaması başarılı olursa kullanıcının kimliğini temsil eden nesneleri oluşturma.
- Kimlik doğrulaması başarısız olursa 'sonuç yok' veya 'hata' döndür.
- Kullanıcıların kaynaklara erişim girişimlerinde sınama ve yasaklama eylemleri için yöntemler oluşturmanız gereklidir.
- Erişime yetkileri yoktur (yasaklanmıştır).
- Kimlik doğrulaması yapılmadığında (sınama).
ve
, bir uzak kimlik doğrulaması adımı gerektiren kimlik doğrulaması sınıfıdır. Uzaktan kimlik doğrulama adımı tamamlandığında, işleyici tarafından ayarlanan değeri geri çağrılır. İşleyici, geri çağırma yoluna geçirilen bilgileri kullanarak kimlik doğrulaması adımını tamamlar. OAuth 2.0 ve OIDC bu deseni kullanır. JWT ve çerezler, doğrudan bearer üst bilgisini ve kullanarak kimlik doğrulaması yapabilir. Bu durumda uzaktan barındırılan sağlayıcı:
- Kimlik doğrulaması sağlayıcısıdır.
- Örnek olarak Facebook, Twitter, Google, Microsoft ve işleyiciler mekanizmasını kullanarak kullanıcıların kimliğini doğrulamayı işleyen diğer OIDC sağlayıcıları verilebilir.
Kimliği doğrula
Kimlik doğrulama düzeninin kimlik doğrulama eylemi, istek bağlamını temel alarak kullanıcının kimliğini oluşturmakla sorumludur. Kimlik doğrulamasının başarılı olup olmadığını ve başarılıysa kullanıcının kimliğini bir kimlik doğrulama biletinde belirten bir döndürür. Bkz. . Kimlik doğrulaması örnekleri şu şekildedir:
- kimlik doğrulama düzeni, tanımlama bilgilerinden kullanıcının kimliğini oluşturmaktadır.
- Kullanıcının kimliğini oluşturmak için bir JWT taşıyıcı belirtecini seri durumdan çıkaran ve doğrulayan bir JWT taşıyıcı sistemi.
Sınama
Kimliği doğrulanmamış bir kullanıcı kimlik doğrulaması gerektiren bir uç nokta istediğinde Yetkilendirme tarafından bir kimlik doğrulaması sınaması çağrılır. Örneğin, anonim bir kullanıcı kısıtlı bir kaynak istediğinde veya oturum açma bağlantısını izlediğinde bir kimlik doğrulaması sınaması verilir. Yetkilendirme, belirtilen kimlik doğrulama düzenlerini kullanarak bir sınamayı veya belirtilmemişse varsayılanı çağırır. Bkz. . Kimlik doğrulaması sınaması örnekleri şunlardır:
- Kullanıcıyı oturum açma sayfasına yönlendiren bir kimlik doğrulaması düzeni.
- 401 sonucu döndüren, üst bilgisine sahip bir JWT taşıyıcı şeması.
Sınama eylemi, kullanıcıya istenen kaynağa erişmek için kullanılacak kimlik doğrulama mekanizmasını bildirmelidir.
Yasakla
Kimliği doğrulanmış bir kullanıcı, erişim izni olmayan bir kaynağa erişmeye çalıştığında, kimlik doğrulama düzenine ait yasaklama eylemi Yetkilendirme tarafından çağrılır. Bkz. . Kimlik doğrulamasının yasak olduğu örnekler şunlardır:
- Kullanıcıyı erişimin yasaklandığını belirten bir sayfaya yönlendiren bir kimlik doğrulama şeması cookie.
- 403 sonucunu döndüren bir JWT taşıyıcı sistemi.
- Kullanıcının kaynağa access isteyebileceği bir sayfaya yönlendiren özel bir kimlik doğrulama düzeni.
Yasaklanan bir eylem kullanıcıya şunları bildirir:
- Kimlikleri doğrulandı.
- İstenen kaynağa erişim izni verilmez.
Sınama ve yasak arasındaki farklar için aşağıdaki bağlantılara bakın:
- Operasyonel kaynak işleyicisi ile meydan okuma ve yasaklama.
- Sınama ve yasak arasındaki farklar.
Kiracı başına kimlik doğrulaması sağlayıcıları
ASP.NET Core çerçevesinin çok kiracılı kimlik doğrulaması için yerleşik bir çözümü yoktur. Müşterilerin çok kiracılı kimlik doğrulamasıyla uygulama yazması mümkün olsa da, çok kiracılı kimlik doğrulamasını destekleyen aşağıdaki ASP.NET Core uygulama çerçevelerinden birini kullanmanızı öneririz.
Orchard Core, aynı zamanda bir içerik yönetim sistemi (CMS) sağlayan ASP.NET Core ile oluşturulmuş açık kaynak, modüler ve çok kiracılı bir uygulama çerçevesidir. Kiracı başına kimlik doğrulama sağlayıcıları örneği için Orchard Core kaynağına bakın.
ABP Framework modülerlik, mikro hizmetler, etki alanı odaklı tasarım ve çok kiracılılık gibi çeşitli mimari desenleri destekler. GitHub üzerinde
Ek kaynaklar
- ASP.NET Core’da belirli bir şemayla yetkilendirin
- ASP.NET Core'da İlke şemaları
- Yetkilendirmeyle korunan kullanıcı verileriyle ASP.NET Core uygulaması oluşturma
- Genel olarak kimliği doğrulanmış kullanıcılar gerektir
- GitHub birden çok kimlik doğrulama düzeni kullanma sorunu
ASP.NET Core