ASP.NET Core Identity Nedir ?

Identity, ASP.NET Core framework’ü içerisinde entegre bir şekilde sunulan bir kimlik ve erişim yönetimi sistemidir. ASP.NET Core Identity, kullanıcı kimlik doğrulama (authentication) ve yetkilendirme (authorization) işlemlerini kolaylaştırmak için geliştirilmiştir. Genellikle web uygulamalarında kaydolma, giriş yapma, şifre sıfırlama gibi kimlik doğrulama işlemlerini yönetmek amacıyla kullanılmaktadır.

ASP.NET Core Identity Temel Özellikleri

  • User Management: Kullanıcı hesaplarını oluşturma, güncelleme, silme ve sorgulama işlevselliği sağlar.
  • Roles Management: Rol tabanlı yetkilendirme desteği sağlar. Roller, ortak erişim izinlerine sahip kullanıcıları gruplamak için kullanılmaktadır.
  • Password Managment : Kullanıcı hesaplarını korumak için şifreleme. Şifre doğrulama politikaları, hesap kilitleme ve diğer güvenlik özellikleri için yerleşik işlevselliğe sahiptir.
  • User Authentication: Kullanıcıları doğrulamak için işlevselliği sağlar. Kimlik doğrulama, bir kullanıcının kimliğini belirleme sürecidir.
  • User Authorization: Bir kullanıcı doğrulandıktan sonra, ASP.NET Core Identity, roller veya claims temelinde belirli kaynaklara veya uygulama içindeki belirli işlevselliklere kullanıcı erişimini yetkilendirebilir.
  • Claims-Based Authentication: Kullanıcılara talepler atanmasına izin verir. Bu talepler kimlik ve erişim kontrolü için kullanılır.
  • External Login Providers: Google, Facebook, Twitter ve Microsoft gibi harici kimlik doğrulama sağlayıcılarıyla entegrasyonu destekler.
  • Two-Factor Authentication (2FA): İki faktörlü kimlik doğrulamayı destekler. Uygulamanızın güvenliğini artırarak kullanıcı doğrulaması için ikinci bir doğrulama formu gerektirir.
  • Data Stores: Varsayılan olarak, kullanıcı verilerini depolamak için Entity Framework Core’u kullanır. Ancak farklı depolama mekanizmalarını kullanmak için özelleştirebilirsiniz.
  • Customizable and Extensible: Kullanıcı Modeli, Rol Modeli ve Doğrulama Mantığı’nı özelleştirmek ve mevcut veritabanlarına entegre etmek için esneklik sunar.
  • Security Features: Hesap onayı, şifre kurtarma ve SQL injection, CSRF (Cross-Site Request Forgery) ve XSS (Cross-Site Scripting) gibi yaygın saldırılara karşı koruma desteği.

Identity Core Bileşenleri

  • UserManager: Uygulamadaki kullanıcıları yönetmekten sorumludur. ASP.NET Core Identity veritabanından kullanıcı bilgilerini oluşturma, güncelleme, silme ve almak için işlevselliği sağlar.
  • RoleManager: Uygulamadaki rolleri yönetmekten sorumludur. Rollerin oluşturulması, güncellenmesi, silinmesi, alınması ve kullanıcılara atanması için işlevselliği sağlar.
  • SignInManager: Oturum açma ve oturum kapatma işlemlerini yönetmekten sorumludur. Ayrıca iki faktörlü kimlik doğrulama ve harici kimlik doğrulama gibi işlevsellikleri sağlar.

bunlar en temelde ASP.NET Core Identity sınıfıdır.

Veri Modelleri

  • IdentityUser: Bu, ASP.NET Core Identity’deki varsayılan Kullanıcı sınıfıdır. UserName, Email, PhoneNumber gibi ortak özellikleri içerir. İş gereksinimlerinize göre Özel Ad, Soyad, Doğum Tarihi gibi ek kullanıcı bilgilerini içermek üzere genişletilebilmektedir.
  • IdentityRole: Bu, ASP.NET Core Identity’deki varsayılan Rol sınıfıdır ve Rol ID ve Ad gibi Rol bilgilerini depolar. Bu sınıf aynı zamanda Rol Açıklaması gibi özel rol bilgilerini içermek üzere genişletilebilmektedir.

Servisler

  • Identity Options: Identity için şifre gücü politikaları, kilitlenme süresi, varsayılan giriş sayfası, ve aynı zamanda varsayılan erişim reddedildi sayfası vb. gibi yapılandırma seçenekleri sağlar.
  • User validator ve Password validator: Kullanıcı bilgileri ve aynı zamanda şifreler için doğrulama hizmeti sağlar.
  • EmailSender ve SmsSender: E-posta doğrulama ve iki faktörlü kimlik doğrulama gibi hizmetler için EmailSender ve SmsSender gibi servisler sağlar.

Authentication and Authorization:

  • Cookie : ASP.NET Core Identity, varsayılan olarak cookie tabanlı kimlik doğrulama kullanır.
  • Claims-Based Authorization: Claims oluşturmayı ve yönetmeyi destekler; bu talepler yetkilendirme kararları için kullanılmaktadır.
  • External Login Providers: Google, Facebook gibi harici kimlik doğrulama sağlayıcılarıyla entegrasyonu destekler.

IdentityDbContext

Bu, Entity Framework Core’un DbContext sınıfından türetilen Identity Context sınıfıdır. Bu sınıf aynı zamanda , ASP.NET Core Identity veritabanı ile etkileşimde bulunmakla sorumludur ve kimlik verilerini depolar.

Claims Principle

ASP.NET Core Identity’de kimlik doğrulanan kullanıcının kimliği, bir ClaimsPrincipal nesnesi olarak temsil edilir. Ayrıca talepler (Claims), kullanıcı bilgilerini temsil eden anahtar-değer çiftleridir. Kullanıcı kimliği ile ilgili olarak kullanıcı ID’si, e-posta adresi, isim, rol veya kullanıcının kimliğiyle ilgili diğer verileri içerir.

Daha detaylı bilgi için –> https://learn.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-8.0&tabs=visual-studio

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir