My Profile Photo

Mehmet Cem Yücel


Technical Writings.
Architecture, Security, Java, Golang, Devops, Microservices, Spring Boot, Kafka, Distributed Systems and Blockchain


Access Management 4-Keycloak

Ö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. Keycloak Nedir

keycloak

“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.




May interest this topics

If you interested in Blockchain Technologies,


comments powered by Disqus