Bölüm 1 — Keycloak ile Kimlik ve Erişim Yönetimi

Gokhan Konuk
Akbank Teknoloji
Published in
4 min readOct 6, 2023

--

Bu yazı serisinin ilk bölümünde Akbank Teknoloji olarak alt yapılarımızda kullandığımız Keycloak’un temel kavramlarını, kimlik ve erişim yönetimi alanındaki önemini hem kurumsal hem yazılım mimarisi açısından ele alacağız. Keycloak nedir, neden kullanılır, kimlik ve erişim yönetimi neden modern uygulamalar için kritik bir öneme sahiptir, yazılım mimarisindeki kullanım amaçları nelerdir, hep birlikte bunları inceleyeceğiz.

Keycloak Nedir?

Keycloak, açık kaynaklı bir kimlik ve erişim yönetimi çözümüdür. Temel amacı, uygulamalarımızın güvenliğini artırmak ve kullanıcıların kimlik doğrulama ve yetkilendirme süreçlerini yönetmek olan bir araçtır. Bir anlamda, Keycloak uygulamalarımızın kapısını koruyan bir bekçidir.

Kimlik ve Erişim Yönetimi Neden Önemlidir?

Günümüzde internete erişim arttıkça, çeşitli platformlarda farklı hesaplar oluşturuyoruz. Bu hesaplar, çeşitli hizmetlere erişim için kullanılırken, yönetimi oldukça karmaşık hale gelebilir. İşte burada kimlik ve erişim yönetimi devreye girer. Bu yönetim, kullanıcıların tek bir kimlikle birden fazla hizmete erişmelerini sağlar ve güvenliği artırır.

Single Sign-On (Tek Oturum Açma) Prensibi

Tek Oturum Açma (SSO), birçok farklı hizmete veya uygulamaya aynı kimlik bilgileriyle oturum açma yeteneğidir. Bu sayede kullanıcılar, her hizmet için ayrı ayrı oturum açma zorunluluğu olmadan daha hızlı ve verimli bir deneyim yaşarlar.

OAuth 2.0 ve OpenID Connect Protokolleri

Keycloak’un temelini oluşturan protokollerden bazıları OAuth 2.0 ve OpenID Connect’tir. OAuth 2.0, uygulamaların diğer uygulamalara erişim sağlama yeteneğini düzenleyen bir yetkilendirme protokolüdür. OpenID Connect ise OAuth 2.0'nin üzerine kurulan ve kimlik doğrulama sağlayan bir protokoldür.

Kurumsal ve Yazılım Mimarilerinde “Keycloak”

Hem kurumsal hem yazılım mimarilerinde kimlik ve erişim yönetimi, önemli bir rol oynar ve kullanımı oldukça kritiktir.

İşte bazı anahtar noktalar:

1. Güvenlik Sağlama:

Kurumsal firmalar, müşteri ve iş verilerini güvende tutma sorumluluğuna sahiptir. Kimlik ve erişim yönetimi, uygulamaların ve verilerin yetkisiz erişime karşı korunmasına yardımcı olur. Keycloak gibi araçlar, güçlü kimlik doğrulama ve yetkilendirme mekanizmaları sağlayarak güvenlik risklerini azaltır.

Mikroservis mimariler, birçok küçük ve bağımsız servisin bir araya geldiği bir yaklaşımı benimser. Bu servisler arasındaki iletişim API’ler aracılığıyla gerçekleştirilir. Her bir servis kendi başına güvenlik önlemleri alabilir, ancak bu, sistem genelinde tutarlı bir güvenlik düzeyi sağlamak açısından yetersiz olabilir. Kimlik ve erişim yönetimi, API’lerin güvenliğini sağlamak için yetkilendirme, kimlik doğrulama ve erişim denetimlerini destekler. Bu sayede tüm servislerin tutarlı bir şekilde güvende kalmasını sağlar.

2. Tek Oturum Açma (SSO):

Kurumsal firmalar genellikle farklı uygulamalara sahiptir — içsel ve dışsal. Tek Oturum Açma (SSO), kullanıcıların farklı uygulamalarda tek bir oturumla giriş yapmasını sağlar. Bu, kullanıcı deneyimini geliştirirken aynı zamanda güvenliği artırır.

Aynı mantık yazılım mimarisi için geçerlidir, mikroservisler arasında geçiş yaparken, kullanıcıların sürekli olarak oturum açma işlemi yapması kullanıcı deneyimini kötü etkileyebilir. Kimlik ve erişim yönetimi, tek oturum açma (SSO) yeteneği sunarak, kullanıcıların bir kere oturum açtıktan sonra diğer servislere sorunsuzca erişmelerine olanak tanır.

3. Kimlik ve Erişim Verilerinin Merkezi Yönetimi:

Kurumsal firmalarda, birden fazla uygulama ve hizmetin yönetimi karmaşık hale gelebilir. Keycloak, merkezi bir kimlik yönetimi sağlayarak kullanıcıların, rollerin ve yetkilerin tek bir merkezden yönetilmesine olanak tanır. Bu, hem yönetimi kolaylaştırır hem de veri bütünlüğünü sağlar.

Mikroservisler de, her biri kendi kimlik ve erişim verilerini yönetebilir. Ancak bu, veri bütünlüğü, uyumluluk ve denetim açısından sorunlar yaratabilir. Kimlik ve erişim yönetimi, kullanıcı bilgilerinin ve yetkilendirmenin merkezi olarak yönetilmesini sağlar. Bu, kullanıcılar, roller ve izinlerin tutarlı bir şekilde yönetilmesini kolaylaştırır.

4. Yetkilendirme ve Rol Yönetimi:

Farklı kullanıcı türleri ve rolleri, kurumsal bir mimaride yaygındır. Keycloak gibi çözümler, farklı kullanıcıları farklı yetkilere sahip olacak şekilde yönetmeyi kolaylaştırır. Bu, her kullanıcının sadece ihtiyaç duyduğu kaynaklara erişimini sağlayarak güvenliği artırır.

Mikroservis mimarileri de, kullanıcıların ve servislerin farklı yetkilere sahip olabileceği karmaşık bir yapı sunar. Kimlik ve erişim yönetimi, kullanıcıların ve servislerin ihtiyaçlarına göre rolleri ve izinleri tanımlamayı ve yönetmeyi kolaylaştırır. Bu, verilerin ve servislerin güvende olmasını sağlar.

5. Hata İzleme ve Denetim:

Kurumsal firmalar genellikle regülasyonlara uygunluk gereksinimleriyle karşılaşır. Keycloak, kullanıcı oturumlarını izleme, yetki değişikliklerini denetleme gibi özellikleri sağlayarak, gerektiğinde denetim ve izleme yapmayı kolaylaştırır. Bu, güvenlik ihlallerini hızla tespit etmeyi ve önlemeyi sağlar.

6. Uygulama Entegrasyonları:

Kurumsal firmalar, farklı türde ve teknolojide uygulamalara sahip olabilir. Keycloak, farklı teknolojilerde geliştirilmiş uygulamalara kolayca entegre olabilme yeteneği sağlar. Bu, yazılım mimarisini esnek ve modüler tutmaya yardımcı olur.

7. Teknoloji Bağımsızlığı:

Keycloak’un açık kaynak kodlu olması ve farklı programlama dilleri ve teknolojilerle entegre edilebilmesi, kurumsal firmaların mevcut teknoloji yığınlarına uyum sağlamasına yardımcı olur. Bu, yeni teknolojilere geçerken esneklik sağlar.

Bu önemli noktalar, Akbank Teknoloji gibi büyük kurumsal firmalarda kimlik ve erişim yönetimi çözümlerinin rolünü vurgular. Bu tür araçlar, güvenliği artırmak, yönetimi kolaylaştırmak ve kullanıcı deneyimini geliştirmek gibi önemli işlevlere sahiptir. Bizler de bu araçları kullanarak servis altyapılarımızı güvenli ve uyumlu hale getirmeye çalışıyoruz.

Bu bölümde temel kavramları ele aldık ve Keycloak’un modern uygulamalar için neden önemli olduğuna dair genel bir bakış sunduk. Keycloak’un kurulumu ve temel yapılandırması hakkında daha fazla bilgi ve teknik detayları yazımızın bir sonraki bölümünde inceleyeceğiz.

Bölüm 2 — Keycloak Kurulum ve Mikroservis Güvenliği

--

--