Önceki yazılarımızda öğrendiğimiz terminolojilerin somut örneklerini bu yazımızda Keycloak üzerinden inceleyeceğiz. Beşinci ve son yazımızda da Spring Boot ile Keycloak’u kullanarak Authentication/Authorization örnekleri yapacağız.
–SERİNİN DİĞER YAZILARI–
- 1-XACML Authorization Authentication
- 2-OpenID OAuth2 OpenID Connect
- 3-SSO SAML Kerberos User Federation
- 4-Keycloak
- 5-Spring Boot ve Keycloak
1. Keycloak Nedir
“Keycloak is an open source Identity and Access Management solution aimed at modern applications and services. It makes it easy to secure applications and services with little to no code.”
2018 Mart’ında JBoss Community tarafından Red Hat’in katkılarıyla başlatılan Keycloak, minimum kodla ya da hiç kod geliştirmeden uygulamalara erişim kontrolü için açık kaynak bir çözüm olarak kendisini tanımlıyor. Aşağıda yeteneklerinden bahsederken önceki 3 yazımızda bahsettiğimiz standartları da referans olarak ekleyeceğim.
2. Oauth2 ve SAML Desteği
Keycloak, en temel yeteneği olan Single Sign On(SSO) için XACML standartlarında erişim yönetimi sunar. Bunun için tercih edilen protokol olarak OpenID Connect (OIDC) önerildiğini belirtiyor. Ancak detaylarından üçüncü yazımızda bahsettiğimiz SAML’i de kullanılabilecek bir alternatif olarak desteklemektedir. OAuth2 desteği mevcuttur.
3. Uyumlu Teknolojiler
OIDC protokolü üzerinden çok sayıda dil için adapter’ı barındırıyor. Java adapterları içerisinde JBoss, Tomcat, Jetty, Wildfly gibi sunucular için adapterların yanısıra Spring Boot, Spring Security, Java Servlet Filter, CLI/Desktop App, Pure Java App için de adapterlar bulunuyor.
4. Entegrasyonlar
Kerberos bridge yeteneği sayesinde bir Kerberos sunucusuna login olmuş kullanıcıyı otomatik olarak authenticate edebilmektedir. Aynı zamanda User Federation özelliği sayesinde LDAP ve Active Directory sunucularındaki kullanıcıları eşzamanlayarak kullanabilmek mümkün.
İkinci yazımızda değindiğimiz Delegated Authorization örneği harici bir OIDC veya SAML Identity Provider’la da yapılabilir(Identity Brokering).
2 Factor Authentication ihtiyacını Google Authenticatior veya FreeOTP ile gerçekleştirilebilirsiniz. Ayrıca Social Login ile Google, GitHub, Facebook, Twitter ve diğer sosya ağlardaki kimliklerinizle OAuth2 doğrulaması yapılarak kimlik yönetimi yapılabilirsiniz.
5. Kullanım
Bütün bu işlemleri kendi arayüzü aracılığıyla gerçekleştirebilirsiniz. Sisteminizde kayıtlı kullanıcıların kendi şifrelerini resetlemeleri, sisteme dahil olmaları gibi konuları da yine ayrı arayüzler üzerinden gerçekleştirebilirsiniz.
6. Ortamlar ve Dökümanlar
Keycloak’ı kullanmak isterseniz bir java runtime aracılığıyla ilgili paketleri indirerek kullanmaya başlayabileceğiniz gibi, Docker, Kubernetes, Openshift ve Podman için de hızlıca kullanabileceğiniz yönlendirmeler linklerde mevcut. Bu linklerdeki açıklamalar ve yönlendirmeler yeterli olacağından bu yazının içeriğinde bunlardan bahsetmeyeceğim.
7. Sonuç
Daha detaylı bilgiler için başarılı bir dokümantasyon sayfaları mevcut. Buradan inceleyebilirsiniz. Beşinci ve son yazımızda Spring Boot ile Keycloak’u kullanarak Authentication/Authorization örnekleri yapacağız. Yazıya buradan erişebilirsiniz.