Asp.NET Core Identity – Nedir ve Temel Kavramlar? – I

Merhaba,

Üretim, insanoğlunun fıtratında tüketim, güç ve yönetim olamak üzere üç farklı duyguyu tetiklemektedir. Bunlardan birisi vardır ki diğerlerine nazaran daha çok ön plana çıkmakta ve ağır basmaktadır. O da yönetimdir. İnsanoğlunun ürettiğini istediği zaman kendi iradesince tüketebilme özgürlüğüne sahip olması dolaylı yoldan ona güç kazandırmıştır. Bu güç arttıkça insan kendi kabuğuna sığamamış ve önce çevresine, sonra yaşadığı ülkeye ve sonrada tüm dünyaya etkisini göstermek istemiş ve bu isteğini tekrar ürettikleriyle besleyip bir şekilde dönüp dolaşıp üretileni diğer insanlara da eriştirmeye yönelmiş ve bu erişim neticede yönetme içgüdüsüyle bütünleşmiştir. İnsan ürettiğini, tüketmekten çok yönetmek istemiştir. Ve en nihayetinde on binlerce yıl bu hormonal duygular insanın fıtratında sağlam yer edinmiş ve günümüz dünyasına üretenler tarafından yönetilen bir beşeriyet olarak yansımıştır.

Şuana, bu gelişim sürecinde yönetme içgüsüne fazladan yatırım yaparak gelmiş olan insanoğlu çağa uygun olarak ürettiği her ne ise doğal olarak onuda yönetmek istemekte ve bu iradenin tüm üretilene detaylarıyla nüfus edebilmesi için yeni yaklaşımlar ve yapılar geliştirmektedir. Bulunduğumuz çağ, yeryüzünde çok az etkileşimden uzak bölge ve lokal kültür barındırmakta, büyük kısmı globalleşmenin doruk noktasında bir dünya ile karşı karşıya bulunmaktadır. İnsanlığa tarih süresince eşlik eden birçok meslek artık yok olmuş ya da yok olmanın eşiğinde iken gelecek çağlara zemin oluşturacak nice mesleklere gebelik söz konusu olmakta yahut bazılarının erişkinlik dönemi yaşadığı bariz ortadadır. Şöyle bir düşünsek bu mesleklerden birçoğu masaya yatırılabilir ama bir tanesi vardır ki tartışmasızdır. O meslekte ‘Yazılım Geliştiriciliği’dir.

Bugünün büyük bir kısmını ve muhtemelen geleceğin komplesini ne yazık ki makinelere bırakan insanoğlu, dolayısıyla bu makinelerle etkileşim içerisinde olan tüm mesleklere yaşam hakkı tanımış bulunmakta bilakis alakası olmayanları ise belki bundan milyonlarca yıl sonraki arkeologların tesadüfen karşılaşabilecekleri bulguların insafına bırakmaktadır… Velhasıl fazla uzağa gidip karanlık olan geleceği hak ettiği karamsar pencereyle değerlendirerek içeriğimizi bunaltıcı hale getirmekten ziyade esas konumuza geri dönsek yerinde olacaktır sanırım…

Yukarıda da bahsetmeye çalıştığım gibi insanoğlunun fıtratındaki yönetim içgüdüsü günümüzdeki yazılım uygulamalarında da kendisini göstermekte ve çağın büyük markaları (Google, Microsoft, Facebook vs.) ürettikleri sistemi, o sistemi kullanacak olan tüketicilere tam yetki ve iradeyle sağladığı yönetim üzerinden sunmaktadırlar. Keza fıtratın desteğiyle yaygınlaşan bu gelenek tarafımızca geliştirilen uygulamalar üzerinde de devam etmekte ve tüm yazılımlar geliştiriciler yahut patronlar tarafından yönetilmektedirler.

Bu yönetim ihtiyacı artık günlük hayatta temel ihtiyaç olarak yer edinmiştir. Dolayısıyla biz yazılım geliştiricilerininde son kullanıcılarla etkileşim içerisinde olduğu web uygulamalarında da hat safhada önem arz etmektedir. Bu içeriğimizin konusu; web uygulamalarına üye olacak kullanıcılar üzerinde kimlik yetkilendirme ve doğrulama yöntemlerini detaylarıyla uygulamamızı sağlayacak olan ve böyleyece a’dan z’ye yönetebilmemize imkan sunacak olan Identity frameworkünün ne olduğuna dair, temel kavramlarıyla birlikte istişare üzerine olacaktır.

Asp.NET Core Identity Nedir?

Asp.NET uygulamalarında eski üyelik sistemi Membership yerine geliştirilen ve üyelerin erişebilirliğiyle ilgili daha geniş kapsama sahip olmakla birlikte yönetilebilirlik açısından daha derin ve daha esnek ve tüm bunların yanında sınırsız özelleştirilebilir niteliğe sahip olan bir üyelik sistemi frameworküdür.

Asp.NET Core Identity; üyelerin, login(giriş), out(çıkış), yetkilendirme, token, şifre hatırlatma vs. tüm işlemleri hızlı bir şekilde gerçekleştirmemizi sağlayan ve bunların dışında önceki nesillere nazaran herhangi bir kısıtlaması olmaksızın uygulamalarımızı destekleyen çağdaş bir üyelik sistemidir. Çağdaştır çünkü gündümüzdeki üçüncü kaynaklardan sağlanan modern oturum süreçlerini(Facebook Login, Google Login, Twitter Login vs.) desteklemekte ve tüm inşayı hızlı bir şekilde gerçekleştirmektedir. Tabi burada iştahı kabaranlara şifa olması niyetiyle, bahsedilen tüm operasyonların ilerideki makalelerde tek tek derinlemesine ele alınacağını şimdiden bildirmekte fayda var…

Asp.NET Core Identity kütüphanesini varsa diğerlerinden ayıran ve lehine puan kazandıran en büyük özelliği esnek olmasıdır. Yani sağladığı özelliklerden tarafımızca beğenilmeyen yahut daha iyisi düşünülebilen sistemler custom olarak geliştirilebilmekte ve çok rahat bir şekilde uygulamaya identity üzerinden entegre edilebilmektedirler. İşte bu özelliğide büyük fark yaratmakta ve bizleri gelişmenin ileriki noktalarında olası uyumsuzluk şüphelerinden kurtarmaktadır. Keza bu özellik, önceki Membership üyelik sisteminden Identity’i ayıran en büyük farkı yaratmaktadır.

Temel Kavramlar

Bizler tüm içeriklerimizde ilgili yapıları kuramsal olarak temellendirmeyi ve kavramsal olarak terminolojiyi destekler nitelikte ilerlemeyi tercih ediyoruz. O yüzden giriş seviyesindeki bu içeriğimizde ilk olarak temel kavramların bir kısmını ele almakta fayda görmekteyim.

Herşeyden önce üyelik sistemi(Asp.NET Core Identity) deyince şu dört kavramın izahını yapabilmek gerekmektedir;

  • Authentication
    Kullanıcının sistem tarafında tanımlanan kişi olup olmadığının doğrulanmasıdır. Bir başka deyişle kimlik doğrulamasıdır.
  • Authorization
    Sistemde doğrulanan kullanıcının hangi sınırlara sahip olduğunun belirlenmesidir. Bunada da kimlik yetkilendirmesi diyebiliriz.
  • Claims
    Doğrulanmış kullanıcıya açılmış oturum üzerinde kullanıcı kendisine has bilgileri Claims yapısı aracılığıyla tutabilmektedir. Örneğin; kullanıcı adı ve şifre ile doğrulanmış kullanıcının köpeğinin adını claim ile o oturumda taşıyabilmekteyiz.
  • Third Party Authentication
    Üçüncü taraf kimlik doğrulamadır. Facebook, Google, Twitter vs. gibi doğal ve organik yollarla kişilerin tanımlandığı ve insanlığa mal olmuş hali hazırda kullanılan sistemler üzerinden gerçekleştirilen kimlik doğrulamasıdır.

Bir Web Uygulamasında Asp.NET Identity Kütüphanesinin Kullanılabilmesi İçin Yapılması Gerekenler

Bir Asp.NET Core uygulamasında Identity üyelik sisteminin kullanılabilmesi için Microsoft.AspNetCore.Identity kütüphanesinin ilgili projeye entegre edilmiş olması yeterlidir. Bunun için bizlerin ekstradan bir işlem yapmasına gerek yoktur. Çünkü ilgili kütüphane varsayılan olarak Core projelerinde dahili bir şekilde gelmektedir.

Nihai olarak bu içeriğimizde Asp.NET Core Identity kütüphanesinin ne olduğuna dair fikir edinmiş ve bazı genel geçer kavramlar üzerinde izahatte bulunmuş olduk. Bir sonraki yazımızda Asp.NET Core uygulamasında Identity yapılanmasının temelden nasıl ayağa kaldırılacağına dair detaylıca konuşacağız. O halde şimdilik görüşmek üzere 🙂

İlgilenenlerin faydalanması dileğiyle…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

4 Cevaplar

  1. 10 Ağustos 2019

    […] Asp.NET Core Identity – Nedir ve Temel Kavramlar? – I […]

  2. 10 Ağustos 2019

    […] önceki Asp.NET Core Identity – Nedir ve Temel Kavramlar? – I başlıklı içeriğimizde Asp.NET Core Identity kütüphanesine dair teorik olarak bir giriş […]

  3. 11 Ağustos 2019

    […] önceki Asp.NET Core Identity – Nedir ve Temel Kavramlar? – I başlıklı içeriğimizde Asp.NET Core Identity kütüphanesine dair teorik olarak bir giriş […]

  4. 15 Eylül 2019

    […] Asp.NET Core Identity – Nedir ve Temel Kavramlar?  Gençay Yıldız […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir