IdentityServer4 Nedir?
dentityServer4, .NET Core tabanlı uygulamalarda kullanılan bir OpenID Connect ve OAuth 2.0 çözümüdür. Bu çözüm, kimlik doğrulama ve yetkilendirme için bir sunucu olarak görev yapar. Mikroservis mimarisi içinde, birçok hizmetin ortak bir kimlik sağlaması önemlidir ve IdentityServer4, bu gereksinimleri karşılamak için tasarlanmıştır.
.NET Core Mikroservis Mimarisinde IdentityServer4 Kullanımı
Mikroservis mimarisi, büyük ve karmaşık uygulamaların daha yönetilebilir parçalara bölünmesini sağlayan bir yaklaşımdır. Ancak, bu parçalar arasında güvenli bir iletişim ve kimlik doğrulama sağlamak önemlidir. Bu noktada IdentityServer4, .NET Core tabanlı uygulamalarda güvenli kimlik doğrulama ve yetkilendirme için kullanılan açık kaynaklı bir çözümdür. Bu makalemde, .NET Core mikroservis mimarisi içinde IdentityServer4’ün nasıl kullanılacağını anlatacağım.
Kurulum
IdentityServer4’ü bir .NET Core mikroservisi içinde kullanmak için aşağıdaki adımları takip edebilirsiniz:
1: IdentityServer4 Kurulumu
Projenize IdentityServer4’ü eklemek için NuGet Paket Yöneticisi veya .NET CLI’yi kullanabilirsiniz: (dotnet add package IdentityServer4)
2: IdentityServer4 Konfigürasyonu
IdentityServer4’ü proje içinde yapılandırmak için bir ‘Startup’ sınıfı oluşturun ve gerekli konfigürasyonları bu sınıfta yapıyoruz.
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddInMemoryApiResources(Config.GetApiResources())
.AddInMemoryClients(Config.GetClients());
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseIdentityServer();
}
}
3: Konfigürasyon Verileri
IdentityServer4’ü yapılandırmak için gerekli olan kaynak ve istemci bilgilerini sağlamak için bir sınıf oluşturuyoruz.
public static class Config
{
public static IEnumerable<ApiResource> GetApiResources()
{
return new List<ApiResource>
{
new ApiResource("myApi", "My API")
};
}
public static IEnumerable<Client> GetClients()
{
return new List<Client>
{
new Client
{
ClientId = "myClient",
AllowedGrantTypes = GrantTypes.ClientCredentials,
ClientSecrets = { new Secret("mySecret".Sha256()) },
AllowedScopes = { "myApi" }
}
};
}
}
Bu örnekte, “myApi” adında bir kaynak ve “myClient” adında bir istemci tanımlanmıştır.
4: Uygulama Çalıştırma
Uygulamanızı çalıştırdığınızda, IdentityServer4 arka planda çalışacak ve belirttiğiniz kaynak ve istemcileri kullanarak kimlik doğrulama ve yetkilendirme işlemlerini gerçekleştirecektir.
IdentityServer4’ü kullanarak kimlik doğrulama sağladıktan sonra, mikroservislerinizi bu kimlik doğrulama mekanizmasıyla entegre etmelisiniz. Her mikroservis, gelen isteklerde kimliği doğrulamak ve yetkilendirme yapmak için IdentityServer4’e güvenmelidir.
Mikroservis içinde kimlik doğrulama yapmak için, AddJwtBearer metodu kullanılarak JWT (JSON Web Token) tabanlı kimlik doğrulama ekleyebilirsiniz. Örneğin:
services.AddAuthentication("Bearer")
.AddJwtBearer("Bearer", options =>
{
options.Authority = "https://localhost:5000"; // IdentityServer4 adresi
options.Audience = "myApi"; // Tanımlanan API adı
});
Sonuç
Bu makalede, .NET Core mikroservis mimarisinde IdentityServer4’ü nasıl kullanacağınızı öğrendiniz. IdentityServer4, uygulamalarınız arasında güvenli ve standart kimlik doğrulama sağlamak için güçlü bir araçtır ve mikroservis mimarisi içinde kullanıldığında ölçeklenebilir ve güvenli bir çözüm sunar.
Bu adımları takip ederek, uygulamalarınız arasında güvenli bir kimlik doğrulama mekanizması kurabilir ve mikroservis mimarinizin güvenliğini artırabilirsiniz.
Bu makale, IdentityServer4’ün temel kullanımını anlatan bir başlangıç noktasıdır. Projenizin ihtiyaçlarına göre bu temel yapıyı özelleştirebilir ve genişletebilirsiniz.
Hasan Aslan (Software Developer)