ASP.NET Core Kimliğini Anlama
Bu ünitede Kimlik mimarisini kavrarsınız.
ASP.NET Core Kimlik mimarisi
ASP.NET Core Identity, ASP.NET Core web kullanıcı arabirimine kullanıcı kaydı ve oturum açma özellikleri ekleyen bir üyelik sistemidir. Üyelik sistemi, hem kimlik doğrulaması hem de yetkilendirme özelliklerini işler. Kimlik doğrulaması, kim olduğunuzla ilgilidir. Yetkilendirme, neleri yapma izniniz olduğuyla ilgilidir. Bu nedenle kimlik doğrulaması, yetkilendirme için bir önkoşuldur.
Kimlik, yerel hesap oluşturmaya alternatif olarak Facebook ve Twitter gibi dış oturum açma sağlayıcılarını destekler. Kullanıcı oturumları, tanımlama bilgisi tabanlı kimlik doğrulaması kullanılarak korunur. Varsayılan olarak, oturum açma sırasında bir tanımlama bilgisi oluşturulur ve oturum kapatılırken yok edilir.
Üyelik verileri, seçtiğiniz bir veri deposu ve veri erişimi teknolojisi kullanılarak kalıcı hale getirilir. Varsayılan veri erişimi teknolojisi, Entity Framework (EF) Core adlı bir Nesne İlişkisel Eşleyicisi’dir (O/RM). Varsayılan veri deposu SQL Server’dır.
Temel alınan veritabanıyla etkileşime geçme işleminin karmaşası, EF Core tarafından soyutlanır. Bu nedenle, EF Core genellikle kendi veritabanı sağlayıcılarının tümünün Identity ile kullanılmasını mümkün kılar. Veritabanı sağlayıcıları SQL Server, SQLite ve diğer birçok veri deposu için kullanılabilir. Identity, seçtiğiniz veri erişimi teknolojisini kullanma esnekliğini de sunar. Dapper, popüler alternatiflerden biridir.
Aşağıdaki diyagram, bu modülde kullanılan Identity mimarisini gösterir:
Yukarıdaki diyagramda:
- ASP.NET Core Razor Pages uygulaması, bu modülde Kimlik desteğinin eklendiği web kullanıcı arabirimini temsil eder.
- Identity Manager katmanı,
Microsoft.AspNetCore.Identity
ad alanından kullanılan sınıfları içerir. Bu modülde açıkça kullanılan bu türden sınıflara örnek olarakSignInManager<TUser>
veUserManager<TUser>
gösterilebilir. - EF Core Identity Deposu katmanı,
Microsoft.AspNetCore.Identity.EntityFrameworkCore
ad alanındaki sınıfları içerir. Bu modülde bu türden bir sınıfın açıkça kullanılmasına örnek olarakUserStore<TUser>
verilebilir. - Veritabanı Sağlayıcısı, EF Core Sağlayıcısı’ndan SQL’yi kabul edip (görüntülenmemiştir) bunu yürüten, veritabanına özgü bir kitaplıktır.
EF Core, veritabanı şemasını uygulamanın veri modeliyle eşitlenmiş durumda tutmak üzere artımlı olarak güncelleştirmek için geçişler adlı bir özellik kullanır. İlk EF Core geçişi uygulandıktan sonra, destekleyen veritabanı tabloları oluşturulur. Aşağıdaki diyagramda, destekleyen tabloların şemaları gösterilir:
Not
Yukarıdaki görüntüde veritabanındaki anahtarlar ve ilişkiler gösterilir. Anahtar bir tanedir ve sonsuzluk (yanlar 8) çok fazladır. Bir veritabanında bire bir, bire çok ve çoka çok ilişki türleri olabilir. Anahtarlar benzersizdir. Diyagramda bu birleştirmelerin nasıl oluşturulduğu ve ilişkileri gösterilir.
Özet
Bu ünitede ASP.NET Core Kimlik mimarisi hakkında bilgi edindi. Bir sonraki ünitede, mevcut bir uygulamaya varsayılan ASP.NET Core Kimlik uygulamasını ekleyeceksiniz.