ASP.NET Core Identity Nedir?

ASP.NET Core Identity Nedir?

ASPNET Core Identity, web uygulamaları için tam teşekküllü bir kimlik doğrulama çözümüdür ASPNET Core Identity ile, kullanıcıları, rolleri ve izinleri yönetebilir, çoklu kimlik doğrulama yöntemleri kullanabilirsiniz Ayrıca, özelleştirilebilir tema ve stiller kullanarak kullanıcı deneyimini iyileştirebilirsiniz ASPNET Core Identity, güvenli ve ölçeklenebilir web siteleri ve uygulamalar geliştirmek için mükemmel bir seçenektir

ASP.NET Core Identity Nedir?

ASP.NET Core Identity, bir kullanıcının kimliği ve yetkilendirme işlemlerini yönetmek için kullanılan bir web uygulama çerçevesidir. Bu çerçeve, web uygulamalarında kullanıcıları yönetmek için gerekli olan temel özellikleri ve bileşenleri sağlar.

ASP.NET Core Identity, kullanıcı kaydı, girişi, parola sıfırlama, yetkilendirme ve kimlik doğrulama işlemlerini sağlar. Bu sayede geliştiriciler, web uygulamaları için kullanıcı yönetim işlemlerini kolay bir şekilde yönetebilirler.


Google Yetkilendirmesi

ASP.NET Core Identity, birkaç hizmet sağlayıcısını kullanarak kullanıcıların kimlik doğrulaması yapabileceği özelliklere sahiptir. Bu hizmet sağlayıcıları arasında Google ve Facebook yer almaktadır. Google hesaplarını kullanarak ASP.NET Core Identity üzerinden yetkilendirme yapmak oldukça kolaydır.

Google hesabı kullanarak yetkilendirme yapmak için, öncelikle API anahtarının ve Client ID'nin alınması gerekmektedir. Bu işlemi yapmak için, Google Developer Console üzerinde işlemler yapılması gerekmektedir. Developer Console üzerinde API Anahtarı ve Client ID edinme adımına geçmeden önce, bir Google hesabına sahip olmanız gerekmektedir.

Adım Adım Google Yetkilendirmesi İşlemleri
1. Google Developer Console'a giriş yapın ve Yeni Bir Proje oluşturun.
2. Sol menüden Kimlik Bilgileri'ni seçin ve OAuth 2.0 istemcisini oluşturun.
3. Uygulama kimliği olarak bir Web Uygulaması seçin ve adını girin.
4. İstekli URI kutucuğuna, ASP.NET Core Identity arayüzünün adresini girin.
5. Değişiklikleri kaydedin ve Client ID ve Client Secret bilgilerinizi not alın.

Yukarıdaki adımları takip ettiğinizde, API anahtarının ve Client ID'nin edinilmesi işlemi tamamlanmış olacaktır. Böylece Google hesabı ile ASP.NET Core Identity üzerinden yetkilendirme işlemi gerçekleştirebilirsiniz.


Facebook Yetkilendirmesi

ASP.NET Core Identity ile Facebook hesapları ile yetkilendirme işlemi oldukça basittir. Bunun için öncelikle Facebook Developer Dashboard'da bir uygulama oluşturmanız gerekiyor. Uygulama oluşturduktan sonra Client ID ve Client Secret bilgileri elde edilir.

Client ID ve Client Secret bilgileri elde edildikten sonra, ASP.NET Core Identity kodu içerisinde Facebook'a bağlanmak için gerekli işlemler yapılmalıdır. Bunun için kod içinde yer alan AddFacebook metoduna Facebook uygulama bilgileri girilmelidir.

Kodu yazarken dikkat etmeniz gereken en önemli nokta Facebook uygulama bilgilerinizi korumaktır. Bu nedenle, kod içindeki Client ID ve Client Secret bilgilerini gizli bir biçimde saklamalısınız. Bu bilgileri kod içinde saklamak yerine, kullanıcılara girilmesi için bir giriş sayfası oluşturabilirsiniz.

Facebook yetkilendirmesi işlemi tamamlandıktan sonra, kullanıcılar Facebook hesapları ile giriş yaparak uygulamanıza erişebilirler. Bu sayede, kullanıcılara kullanıcı adı ve şifre ile giriş yapma zahmetinden kurtarmış olursunuz.

Eğer hala Facebook hesapları ile yetkilendirme işlemi yapmadıysanız, ASP.NET Core Identity ile Facebook hesapları ile yetkilendirme işlemi yapmanızı öneriyoruz. Bu sayede, kullanıcıları için çok daha kolay ve güvenli bir giriş deneyimi sunabilirsiniz.


Google Developer Console, API Anahtarı ve Client ID Edinme

ASP.NET Core Identity kullanarak Google hesapları için yetkilendirme sağlamak için öncelikle Google Developer Console üzerinden API anahtarı ve Client ID edinmeniz gerekir. Bu işlemleri yapmak için aşağıdaki adımları takip edebilirsiniz:

1. Google Developer Console'a giriş yapın.2. Sol taraftaki menüden "Kimlik Bilgileri"ne tıklayın.3. "Kimlik Bilgileri Oluştur" butonuna basın ve "Oturum Açma Bilgileri" seçeneğini seçin.4. Şimdi uygulamanızın adını ve logo bilgilerini girin. Ayrıca "Kimlik Bilgileri Türü" olarak "Web Uygulaması"nı seçin.5. "Doğrulama Bilgileri" bölümünde, "Yetkilendirilmiş JavaScript Kökenleri" bölümüne uygulamanızın ana URL'si olan "http://localhost:5000" adresini ekleyin.6. "Yetkilendirilmiş Yönlendirmeler URI'leri" bölümünde, "http://localhost:5000/signin-google" adresini ekleyin.7. "Kimlik Bilgileri Oluştur" butonuna tıklayın ve Client ID ile API anahtarınızı elde edin.

Bu işlem sonrasında API anahtarınızı ve Client ID'nizi ASP.NET Core Identity uygulamanızda kullanarak Google hesapları ile yetkilendirme sağlayabilirsiniz.


API Anahtarı

ASP.NET Core Identity ile Google hesabı kullanarak yetkilendirme yapabilmek için öncelikle API Anahtarı edinmeniz gerekiyor. Bu işlemi gerçekleştirmek için Google Developer Console hesabınızın olması gerekiyor. Eğer bir hesabınız yok ise öncelikle Google Developer Console'a kayıt olmanız gerekiyor.

Google Developer Console hesabınız ile API Anahtarı edinmek için aşağıdaki işlemleri takip etmeniz gerekiyor:

  • Google Developer Console sayfasına gidin.
  • Projenizi seçin veya yeni bir proje oluşturun. (API Anahtarınız her bir projeniz için farklı olacak.)
  • APIs & Services (API'ler ve Servisler) menüsüne gidin.
  • Dashboard (Kontrol Paneli) sayfasında, + ENABLE APIS AND SERVICES (API'leri ve Servisleri Etkinleştir) düğmesine tıklayın.
  • Ardından OAuth 2.0 Client IDs (OAuth 2.0 İstemci Kimlikleri) sayfasına gidin.
  • + CREATE CREDENTIALS (Kimlik Bilgileri Oluştur) düğmesine tıklayın.
  • OAuth client ID'yi seçin.
  • Application Type (Uygulama Türü) sayfasında, Web application (Web Uygulaması) seçeneğini seçin.
  • API Anahtarınızı adlandırın ve Authorized JavaScript origins (Yetkili JavaScript Kökenleri) ve Authorized redirect URIs (Yetkili Yönlendirme URI'leri) tanımlayın.
  • Save (Kaydet) düğmesine tıklayın.

Bu işlemlerin ardından API Anahtarınız oluşturulacak ve kullanıma hazır hale gelecektir.


Client ID

ASP.NET Core Identity kullanarak Facebook hesapları ile yetkilendirme yapmak için öncelikle Facebook geliştirici panelinden bir uygulama oluşturmak gerekmektedir. Uygulama oluşturduktan sonra Client ID ve Client Secret bilgileri alınmalıdır.

Facebook Developer Dashboard'da uygulama oluşturma işlemi için sol taraftaki menüdeki 'Uygulamalar' sekmesine tıklanarak 'Yeni Uygulama Ekle' butonuyla yeni bir uygulama oluşturulabilir. Oluşturulan uygulamanın ayarlar kısmında 'Facebook Login' seçeneği aktif edilmelidir.

Uygulama oluşturulduktan sonra Client ID ve Client Secret bilgileri alınmalıdır. Bunun için yine ayarlar kısmında 'Temel Ayarlar' sekmesinde 'App ID' ve 'App Secret' bilgileri görüntülenebilir. Bu bilgiler kod dosyalarında kullanılacak olan Client ID ve Client Secret bilgileridir.

Client ID bilgisini almak için Facebook Developer Dashboard'da oluşturulan uygulamanın ayarlar kısmında 'App ID' bilgisi kullanılmalıdır. Bu bilgi kod dosyalarında Facebook ile yetkilendirme işlemi yapabilmek için kullanılır.

Bu bilgilerin güvenliği önemlidir ve kod dosyalarında Client Secret bilgisi asla paylaşılmamalıdır. Client Secret bilgisi, Facebook Developer Dashboard'da oluşturulan uygulamanın ayarlar kısmında 'App Secret' bilgisinde yer almaktadır.


Facebook Developer Dashboard

Facebook hesapları ile ASP.NET Core Identity kullanarak yetkilendirmeyi yapmak için öncelikle Facebook Developer Dashboard üzerinde bir uygulama oluşturmanız gerekiyor. Uygulamayı oluşturmak için Dashboard'a giriş yapın ve yeni bir uygulama oluşturma seçeneğini seçin.

Uygulama oluşturma işleminden sonra, Dashboard size bir Client ID ve Client Secret verecektir. Bu bilgileri kaydedin, çünkü ilerleyen adımlarda gerekecek.

Bunun yanı sıra, Dashboard üzerinden uygulamanızın API Anahtarlarını ve diğer gereksinimlerini ayarlayabilirsiniz. Bu ayarları yaparken, uygulamanızın gizliliğine ve kullanım haklarına özen göstermeniz önemlidir.


Uygulama Oluşturma

Facebook hesapları kullanarak ASP.NET Core Identity için yetkilendirme yapmak isterseniz, önce bir Facebook uygulama oluşturmanız gerekir. Bu işlemi yapmak için Facebook Developer Dashboard'a giriş yapın. Ardından, Üst menüden "Uygulama" seçeneğine tıklayarak "Yeni Uygulama Ekle" butonuna tıklayın.

Bu işlemle birlikte, uygulama oluşturma sayfasına yönlendirileceksiniz. Burada, adınızı, e-posta adresinizi ve diğer gerekli bilgileri girin. "Uygulama Adı" bölümüne uygulamanızın adını yazın. "E-posta" bölümüne e-posta adresinizi yazın. "Kategori" bölümünden uygulamanızın kategorisini seçebilirsiniz.

Bir sonraki adımda, "Geliştirici Lisans Sözleşmesi"ni kabul edin ve "Devam Et" butonuna tıklayın. Ardından, uygulama için ikon ve kapak fotoğrafı yükleyin. Tüm bu işlemleri tamamladıktan sonra, "Devam Et" butonuna tıklayarak uygulamanızı oluşturun.

Uygulama oluşturulduktan sonra, Facebook Developer Dashboard'da "Anahtarlar ve Erişim İlkeleri" seçeneğine tıklayarak "Client ID" ve "Client Secret" anahtarlarını edinebilirsiniz. Bu anahtarları ASP.NET Core Identity için kullanabilirsiniz.


Client ID ve Client Secret

Client ID ve Client Secret bilgileri, Facebook Developer Dashboard'da oluşturulan uygulamanın ayrıntılarından alınabilir. Facebook Developer Dashboard'da uygulamanın ayarlar kısmına girilerek, "Basic" altında yer alan "App ID" kısmındaki değer Client ID olarak kullanılabilir. Client Secret bilgisi ise yine aynı sayfada "Show" butonuna tıklanarak gösterilebilir. Bu bilgilerin dikkatli bir şekilde saklanması gerektiği unutulmamalıdır çünkü her iki bilgi de uygulamanın yetkilendirilmesi için kullanılacaktır. Bu nedenle, Client ID ve Client Secret bilgileri, diğer kişiler tarafından görülebilecek yerlerde bulunmamalıdır. Bu bilgilerin kaybedilmesi durumunda, uygulama yetkilendirme işlemlerinde sorunlar oluşabilir. Bu nedenle, bu bilgilerin saklanması önemlidir.


Kod Uygulaması

ASP.NET Core Identity'nin Google ve Facebook hesapları ile yetkilendirme özelliklerini nasıl kullanabileceğimizi öğrendik. Şimdi ise kod kısmında neler yapmamız gerektiğine bakalım.

Google ve Facebook oturumu açma işlemlerini uygulayabilmemiz için iki adet controller'a ihtiyacımız var. Bu controller'lar `/Account/ExternalLoginCallback` ve `/Account/ExternalLogin` olmalıdır.

Bu iki controller'ı oluşturduktan sonra, `AddGoogle()` ve `AddFacebook()` methodlarını kullanarak servisleri ekleyebiliriz. Google ve Facebook hesapları ile oturum açmak için, `Challenge()` methodunu kullanarak ilgili sağlayıcıya yönlendirme yapmalıyız.

Bununla birlikte, minimum gereksinimlerin ötesinde özellikler eklemek istiyorsak, servislerimizi genişletebilir ve kendimize özel yöntemler oluşturabiliriz.

Bu işlemleri tamamladığımızda, kullanıcılar uygulamamıza Google ve Facebook hesapları ile oturum açabilirler. Her adımı dikkatlice uygulamak, bu işlemi sorunsuz ve hızlı bir şekilde tamamlamamıza yardımcı olacaktır.


Google Yetkilendirmesi Kodu

ASP.NET Core Identity birçok farklı harici sağlayıcının API'sıyla çalışarak kullanıcının giriş yapması ve hesaplarını yönetmesinin yanı sıra uygulamaya özgü kayıt ve giriş sayfalarını da sağlamaktadır.

Google hesapları ile yetkilendirmek için öncelikle uygulama üstündeki Startup.cs dosyasında gerekli değişiklikler yapılmalıdır. Services bölümünde, AddGoogle metodu kullanılarak Google sağlayıcısının eklenmesi gerekir.

Bu işlem tamamlandıktan sonra, uygulamamızın Google API'sıyla etkileşime girebileceği bir API anahtarı ve bir istemci kimliği (Client ID) alması gerekmektedir. Bunun için öncelikle Google Developer Console hesabınıza giriş yapmalı ve bir proje oluşturmalısınız. Bu projenin altında, kimlik doğrulama bölümüne girerek OAuth 2.0 istemcisi oluşturmalısınız.

Bu adımları takip ederek oluşturduğunuz istemci kimliği ve API anahtarınızı, Startup.cs dosyasında Configure metodu içinde aşağıdaki şekilde belirtmeniz gerekmektedir:

app.UseGoogleAuthentication(new GoogleOptions(){    ClientId = Configuration["Authentication:Google:ClientId"],    ClientSecret = Configuration["Authentication:Google:ClientSecret"]});

Bu sayede kullanıcı, Google hesabı ile uygulamaya giriş yaptığında, Google API'sı aracılığıyla kullanıcının profil bilgilerine erişerek İsim, Soyisim, Email gibi bilgilere kolayca ulaşabilirsiniz.


Facebook Yetkilendirmesi Kodu

Facebook hesapları ile ASP.NET Core Identity kullanarak yetkilendirme yapmak istiyorsanız, öncelikle Facebook Developer Dashboard üzerinden uygulama oluşturmanız gerekiyor. Uygulamanızı oluşturduktan sonra Client ID ve Client Secret bilgilerinizi edinmelisiniz.

Bu bilgileri edindikten sonra Visual Studio üzerinde ASP.NET Core projesi oluşturun ve projenin ana dizinindeki Startup.cs dosyasını açın. ConfigureServices() metodunun içerisinde AddFacebook() metodu ile Facebook yetkilendirmesini ekleyin ve Client ID ve Client Secret bilgilerinizi parametre olarak verin.

  • services.AddAuthentication().AddFacebook(facebookOptions =>
  • {
  • facebookOptions.AppId = Configuration["Authentication:Facebook:AppId"];
  • facebookOptions.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
  • });

Bu işlemi yaptıktan sonra, Controllers dizini içerisinde yeni bir dosya oluşturun ve içerisine FacebookController adını verin. Bu dosya içerisinde, Facebook yetkilendirmesi için gerekli olan aksiyonları tanımlayın.

public IActionResult FacebookLogin() Facebook login işlemini başlatır.
return Challenge(new AuthenticationProperties { RedirectUri = "/Home/Index" }, "Facebook"); Facebook hesabı ile giriş yapılmasını sağlar.
public IActionResult FacebookCallback() Facebook kullanıcısı başarıyla login olduktan sonra çağrılır.
var result = await HttpContext.AuthenticateAsync("Facebook"); if (!result.Succeeded) { return RedirectToAction("Index", "Home"); } var claims = new List<Claim>() { new Claim(ClaimTypes.NameIdentifier, result.Principal.FindFirst(ClaimTypes.NameIdentifier).Value), new Claim(ClaimTypes.Name, result.Principal.FindFirst(ClaimTypes.Name).Value) }; var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity)); return RedirectToAction("Index", "Home"); Facebook kullanıcısı başarıyla giriş yaptıktan sonra yapılacak işlemleri tanımlar.

Yukarıdaki kodlar sayesinde, Facebook hesabı ile ASP.NET Core Identity kullanarak yetkilendirme işlemi başarıyla gerçekleştirilir. Artık Facebook hesabı ile giriş yaparak ASP.NET Core MVC uygulamanıza erişebilirsiniz.