ASP.NET Core API’lerini OAuth2 ve OpenID Connect ile Güvenliğe Alma (2025)
Merhaba! Bu makalede, ASP.NET Core API’lerinizi OAuth 2.0 ve OpenID Connect (OIDC) kullanarak nasıl güvenli hale getirebileceğinizi adım adım açıklayacağım. 2025 yılına uygun güncellemeleri ve pratik örnekleri de içeren bu rehber, uygulamalarınızın güvenliğini sağlamanıza yardımcı olacaktır. Öncelikle, OAuth 2.0 ve OIDC’nin ne olduğunu ve neden önemli olduklarını kısaca hatırlayalım.
OAuth 2.0 ve OpenID Connect (OIDC): Neden Önemli?
OAuth 2.0, kullanıcıların kaynaklara erişim sağlamalarına olanak tanıyan bir yetkilendirme protokolüdür. Kısaca, kullanıcı adlarını ve şifrelerini doğrudan API’nize göndermek yerine, bir yetkilendirme sunucusu aracılığıyla bu erişimi sağlar. Bu, güvenliğinizi büyük ölçüde artırır. OIDC ise OAuth 2.0 üzerine inşa edilmiş bir kimlik doğrulama katmanıdır. Kullanıcının kimliğini doğruladıktan sonra, OIDC, kullanıcının kimlik bilgilerini içeren bir JSON Web Token (JWT) verir. Bu JWT, API’niz tarafından, kullanıcıyı kimlik doğrulamak ve yetkilendirmek için kullanılır.
ASP.NET Core’da OAuth 2.0 ve OIDC Yapılandırması
Şimdi, ASP.NET Core projenizde OAuth 2.0 ve OIDC’yi nasıl yapılandıracağınızı inceleyelim. İlk adım, bir kimlik sağlayıcısı (Identity Provider – IdP) seçmektir. Popüler seçenekler arasında Azure Active Directory, Auth0 ve Google gibi hizmetler bulunur. Bu örnekte, Azure Active Directory kullanacağız.
Öncelikle, projenize Microsoft.AspNetCore.Authentication.JwtBearer NuGet paketini eklemeniz gerekir. Daha sonra, Startup.cs dosyanızda aşağıdaki gibi yapılandırma işlemlerini gerçekleştirmeniz gerekmektedir:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Authority = "https://your-azure-ad-tenant.onmicrosoft.com/{your-tenant-id}";
options.Audience = "{your-api-application-id}";
});
Bu kod bloğu, Azure Active Directory’den gelen JWT token’larını doğrulayacak şekilde uygulamanızı yapılandırır. your-azure-ad-tenant.onmicrosoft.com ve {your-tenant-id} kısımlarını kendi Azure AD bilgilerinizle değiştirmeniz gerekmektedir. Benzer şekilde, {your-api-application-id} kısımını da API uygulamanızın uygulama kimliği ile değiştirmelisiniz. Bu yapılandırmadan sonra, API’leriniz güvenle korunmuş olacaktır.
JWT Token Doğrulama ve Yetkilendirme
JWT token’ı doğruladıktan sonra, API’nizdeki controller’larınızda yetkilendirme işlemlerini gerçekleştirmeniz gerekmektedir. Bu, [Authorize] özniteliğini kullanarak yapılabilir. Örneğin:
[Authorize]
[HttpGet]
public IActionResult GetSecretData()
{
// Gizli verilere erişim sağlayın
return Ok("Gizli Veriler");
}
Bu kod bloğu, GetSecretData aksiyonunun yalnızca geçerli bir JWT token’ı olan kullanıcılar tarafından erişilebilir olmasını sağlar. Ayrıca, daha detaylı yetkilendirme senaryoları için, rol tabanlı yetkilendirme gibi daha gelişmiş teknikleri de kullanabilirsiniz. Daha fazla bilgi için fatihsoysal.com adresini ziyaret edebilirsiniz.
Sonuç
Bu makalede, ASP.NET Core API’lerinizi OAuth 2.0 ve OIDC kullanarak güvenliğe alma konusunda temel adımları ve bazı ipuçlarını inceledik. Uygulamanızın güvenliğini sağlamak için bu adımları dikkatlice uygulamanız ve güvenlik açıklarını önlemek için düzenli güvenlik denetimleri yapmanız önemlidir. Unutmayın ki, güvenlik sürekli bir süreçtir ve gelişen tehditlere karşı her zaman güncel kalmalısınız. Bu rehber, 2025 yılı itibariyle güncel bilgileri içermektedir, ancak gelecekteki güncellemeler için daima resmi Microsoft dokümanlarını kontrol etmenizi öneririm.
#Etiketler: ASP.NET Core, OAuth2, OpenID Connect, API Güvenliği, Kimlik Doğrulama, Yetkilendirme, JWT, Azure Active Directory, Güvenlik, .NET, 2025, Fatih Soysal
