Keycloak Nedir Ne Yapar?

Keycloak, uygulamanızın güvenliğini daha kolay hale getirecek açık kaynaklı bir araçtır. Kullanıcı kimlik doğrulama ve erişim yönetimi uygulaması gibi düşünebiliriz. Bu uygulama tipik olarak, ortamınıza erişim talep eden bir kullanıcının veya sistemin kimliğini doğrulamayı amaçlar ve o kullanıcının veya sistemin hangi rollere ve varlıklara erişimi olduğunu söyleyen bir dizi kuralı değerlendirir.

Açık Kaynaklı Araç Nedir?

Keycloak, açık kaynaklı bir yazılım projesi olarak geliştirilmiştir. Bu, yazılımın kaynak kodunun herkes tarafından görüntülenebileceği, kullanılabileceği ve geliştirilebileceği anlamına gelir. Açık kaynaklı yazılım, geliştiricilere büyük bir esneklik ve özgürlük sağlar. Keycloak’un açık kaynaklı olması, geliştiricilere ve işletmelere, kimlik doğrulama ve erişim yönetimi işlevselliği eklemek için güçlü bir araç sunar.

Keycloak Ne Yapar?

İki ayrı adımda Keycloak şunu yapar:

  1. Kimlik Yönetimi
  2. Erişim Yönetimi

Bu adımları detaylandıracak olursak eğer, Keycloak aşağıdaki önemli işlevsellikleri sunar:

  • Kimlik Doğrulama ve Yetkilendirme: Keycloak, kullanıcıların kimlik doğrulama ve yetkilendirme işlemlerini yönetmek için kullanılır. Kullanıcıların uygulamalara erişim haklarını kontrol edebilir ve bu hakları güvenli bir şekilde yönetebilirsiniz.
  • Tek Oturum (Single Sign-On – SSO): Keycloak, tek oturum özelliği sunar. Bu, kullanıcıların bir kez kimlik doğruladıklarında farklı uygulamalara otomatik olarak erişebilmeleri anlamına gelir. Kullanıcılar tekrar tekrar giriş yapmak zorunda kalmazlar.
  • Sosyal Kimlik Sağlayıcıları: Keycloak, popüler sosyal medya ve kimlik sağlayıcılarıyla entegrasyon sağlar. Bu, kullanıcıların Facebook, Google veya diğer sosyal platformlarla oturum açmalarını kolaylaştırır.
  • Güvenlik ve Yetkilendirme Politikaları: Keycloak, uygulama güvenliği ve erişim politikalarını yönetmek için güçlü araçlar sunar. İşletmeler, kullanıcıların neye erişebileceğini ve neye erişemeyeceğini belirleyebilirler.
  • Kullanıcı Yönetimi: Keycloak, kullanıcıların yönetimini kolaylaştırır. Yeni kullanıcılar eklemek, kullanıcıların rollerini ve izinlerini ayarlamak ve kullanıcıların kimlik bilgilerini güncellemek mümkündür.
İlgini çekebilir:  Clean Architecture nedir?

Erişim yönetimi, kullanıcıyı doğrulamak için bir kimlik sağlayıcıya güvenir ve kullanıcının kimliğini bir ortamda yapabilecekleriyle eşleştirir. Örneğin süper admin rolüne sahip bir kullanıcı sisteme girdiğinde önce kimlik yönetimi daha sonra yetkilerini eşleştirmek için erişim yönetimi olayı devralır. Keycloak’ta karşınıza çıkacak kavramlar şunlardır: Realm, Client, Rol, Grup ve Kullanıcı. Aslında tüm sistem bu varlıklar üzerine kurulmuştur.

Bu kavramlar nedir burada kısaca bahsedelim yazının sonunda ise uzun halleri bulunmakta;

Realm: Bir dizi kullanıcıyı kimlik bilgileri, rolleri ve gruplarıyla birlikte yöneten bir organizasyonu ifade eden bir kavramdır.

Client: Bir kullanıcının kimliğini doğrulamak için Keycloak’a talepte bulunabilen varlıklardır. Şöyle düşünebiliriz, birden fazla farklı client, kimlik doğrulama ve yetkilendirme işini garantiye alıp Keycloak’a bırakıyor.

Geniş bir REST API‘ye sahip olan Keycloak, java projelerinde spring-security ile configure olabiliyor.  Keycloak’ın amacı, uygulama geliştiricilerin kuruluşlarında uyguladıkları uygulamaları ve hizmetleri güvence altına almalarını kolaylaştırmak için güvenliği basitleştirmektir. Keycloak’un OAuth 2.0 ve SAML desteği de bulunmaktadır.

Keycloak Danışmanlığı için partnerimiz Opulitics ile görüşebilirsiniz.

OAuth2 Nedir?

“Açık Yetkilendirme” anlamına gelen OAuth 2.0, bir web sitesinin veya uygulamanın, bir kullanıcı adına diğer web uygulamaları tarafından barındırılan servislere erişmesine izin vermek için tasarlanmış bir standarttır. OAuth, kullanıcı doğrulama amaçlı değil, uygulama yetkilendirme amaçlı bir protokoldür. Keycloak client-realm ilişkilerinde uygulama yetkilendirme daha iyi anlaşılabilir.

Realm Nedir?

Keycloak, kimlik ve erişim yönetimi için güçlü bir açık kaynaklı çözüm sunar ve bu çözüm, genellikle “realm” terimiyle ilişkilendirilir. Peki, “realm” ne demektir?

Realm, Keycloak’un temel kimlik ve erişim yönetimi yapı taşıdır. Türkçeye “gerçeklik” veya “etki alanı” olarak çevrilebilecek bu terim, bir uygulama, organizasyon veya hizmetin kimlik ve güvenlik gereksinimlerini ayırmak için kullanılır. Her realm, kendi kullanıcı veritabanına, yetkilendirme ayarlarına ve güvenlik politikalarına sahiptir.

İlgini çekebilir:  Jenkins Pipeline Nedir?

Örneğin, bir organizasyonun birden fazla uygulaması veya hizmeti olabilir ve her biri farklı kullanıcı tabanlarına, yetkilendirme kurallarına ve güvenlik politikalarına sahip olabilir. Bu durumda, her uygulama veya hizmet için ayrı bir realm oluşturulabilir. Bu, kullanıcıların ve kaynakların izole edilmesini ve yönetilmesini kolaylaştırır.

Realm’ler aynı zamanda çoklu dil ve uluslararasılaştırma gereksinimlerini karşılamak için de kullanılır. Bir organizasyon, farklı dillerdeki kullanıcıları için farklı realm’ler oluşturabilir ve her birini ilgili dil ve bölge ayarlarıyla yapılandırabilir.

Özetlemek gerekirse, Keycloak realm’leri, kimlik ve güvenlik yönetiminin izole edilmesini, özelleştirilmesini ve yönetilmesini sağlayan önemli bir kavramdır. Her realm, kendi kimlik doğrulama ve yetkilendirme gereksinimlerine göre yapılandırılabilir ve organizasyonların karmaşık güvenlik ihtiyaçlarını karşılayabilir.

Client Ne Demek?

Keycloak ile ilgili konuşurken “client” terimi sıkça karşınıza çıkabilir. Peki, “client” ne demek ve nasıl bir rol oynar? İşte bu kavramın anlamı:

Client, genellikle bir uygulama veya hizmeti temsil eder. Keycloak, kimlik doğrulama ve yetkilendirme işlemlerini merkezi bir şekilde yönettiği için, farklı uygulamaları veya hizmetleri tanımlamak ve bu hizmetlere erişim izinlerini kontrol etmek için “client” kavramını kullanır. Her bir “client”, Keycloak sunucusuyla iletişim kurarak kullanıcıların kimlik doğrulama işlemlerini gerçekleştirir ve kullanıcılara erişim izinleri sağlar.

Örneğin, bir web uygulaması bir “client” olabilir. Bu web uygulaması, kullanıcıların giriş yapmasına izin vermek ve kullanıcılara belirli kaynaklara (örneğin, kullanıcı profilleri veya belirli sayfalara) erişim izni vermek için Keycloak ile entegre olabilir. Keycloak, her bir “client” için özelleştirilebilir kimlik doğrulama ve yetkilendirme kuralları tanımlamanıza olanak tanır, bu da farklı uygulamaların veya hizmetlerin farklı güvenlik gereksinimlerini karşılamasına yardımcı olur.

Yani, “client” terimi, Keycloak’ta farklı uygulamaları veya hizmetleri temsil eden ve bu uygulamaların kimlik doğrulama ve erişim izinlerini yönetmeye yardımcı olan bir önemli kavramdır.

İlgini çekebilir:  Jenkins Nedir? Neden Kullanılır? Nasıl Kurulur?

Emre

More Reading

Post navigation