Keycloak'a Giriş

Keycloak, tek sayfalı uygulamalar, mobil uygulamalar ve REST API'leri gibi modern uygulamalara odaklanan açık kaynaklı bir kimlik ve erişim yönetimi aracıdır.

Keycloak, tek sayfalı uygulamalar, mobil uygulamalar ve REST API'leri gibi modern uygulamalara odaklanan açık kaynaklı bir kimlik ve erişim yönetimi aracıdır.

Proje 2014 yılında başlatıldı. O zamandan bu yana arkasında güçlü bir topluluk bulunan köklü bir açık kaynak projesine dönüştü. Küçük projelerden büyük işletmelere kadar kullanılır.

Keycloak'ın özelliklerine ve yeteneklerine Kısa Giriş

Keycloak'ın sahip olduğu en belirgin özelliklere kısaca göz atalım.

Keycloak tamamen özelleştirilebilir giriş sayfaları, şifrelerin kurtarılması, şartların kabul edilmesi ve çok daha fazlasını sağlar. Keycloak'ın sağladığı tüm bu özellikler, hiçbir kodlamaya gerek kalmadan uygulamanıza kolayca entegre edilebilir. Kullanıcının kimlik doğrulamasını Keycloak'a devrederek, kimlik doğrulama mekanizmaları, şifrelerin güvenli bir şekilde saklanması vb. konularda endişelenmezsiniz. Uygulamada değişiklik yapmak zorunda kalmadan iki faktörlü kimlik doğrulamayı etkinleştirebilirsiniz. Bu aynı zamanda uygulama güvenliğinizi de artırır çünkü bu durumda uygulamanızın kullanıcı kimlik bilgilerine erişimi yoktur, yalnızca Keycloak tarafından verilen belirteçleri bilebilir.

Keycloak ayrıca güçlü oturum yönetimi yetenekleriyle tek oturum açma olanağı sağlar. Bu, kullanıcıların yalnızca bir kez kimlik doğrulaması yaparak birden fazla uygulamaya erişmesine izin vermek anlamına gelir.

Keycloak, OAuth 2.0, OpenID Connect (OAuth 2.0 + Kimlik Doğrulama Katmanı) ve SAML 2.0'ı destekleyen endüstri standardı protokoller üzerine kurulmuştur.

Keycloak kendi kullanıcı veritabanını kullanır. Ayrıca Active Directory ve LDAP sunucuları gibi mevcut kullanıcı dizinleriyle de entegrasyon sağlayabilirsiniz.

Keycloak hafif ve kurulumu kolay bir çözümdür. Kümeleme yetenekleri sayesinde kolayca ölçeklendirebilirsiniz. Kendi k8s operatörü vardır.

Docker ile kurulum

Bu makaleyi yazarken Keycloak'ı docker ile şu şekilde kurabilirsiniz:

docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:15.0.2

Bu komut, Keycloak sunucusunu 8080 yerel bağlantı noktasıyla başlatacak ve aynı zamanda kullanıcı adı ve parolası olan bir ilk yönetici kullanıcı oluşturacaktır admin.


Keycloak yönetici ve hesap konsollarını keşfetme


Keycloak Yönetici Konsolu

Keycloak'ı yapılandırmak ve yönetmek isteyen yöneticiler ve geliştiriciler içindir. Erişmek için http://localhost:8080/auth/adminbir tarayıcıda açın ve docker kurulum adımında belirttiğiniz, oluşturulan ilk yönetici kullanıcıyla oturum açın.

yönetici konsolu

Yapılandır bölümünü açıklayalım.

Realm: Realm'i kiracı olarak düşünebilirsiniz. Yani yapmak isteyeceğiniz ilk şey, uygulamanız ve kullanıcılarınız için bir alan oluşturmaktır. Bir bölge, diğer alanlardan tamamen yalıtılmıştır (yapılandırma, kullanıcılar, roller vb. açısından). Bu nedenle dahili uygulamalar ve çalışanlarınız için bir alan, harici uygulamalar ve müşteriler için ise başka bir alan oluşturabilirsiniz.

İstemci: İstemciler, Keycloak'tan bir kullanıcının kimliğini doğrulamasını talep edebilen varlıklardır. Çoğu zaman istemciler, kendilerini güvence altına almak ve tek oturum açma çözümü sağlamak için Keycloak'ı kullanmak isteyen web, mobil ve yerel uygulamalardır. İstemciler ayrıca, ağdaki Keycloak tarafından güvenliği sağlanan diğer hizmetleri güvenli bir şekilde çağırabilmeleri için yalnızca kimlik bilgileri veya erişim belirteci istemek isteyen REST API'leri, gRPC veya WebSocket gibi herhangi bir hizmet türü olabilir.

Müşteri Kapsamı: Bir müşteriye verilen belirteçlere eklenen yeniden kullanılabilir talep gruplarının oluşturulmasına olanak tanır. Ayrıca isteğe bağlı bir istemci kapsamı da tanımlayabilirsiniz. Bu şekilde isteğe bağlı talebi kapsam parametresi ile belirtmelisiniz.

Roller: genellikle bir kullanıcının kuruluşunuzda veya uygulamanızın bağlamında sahip olduğu rolü temsil eder. Örneğin, kullanıcılara yönetici rolü atanabilir, böylece uygulamanızdaki herhangi bir kaynağa erişebilir ve bunlar üzerinde herhangi bir işlem gerçekleştirebilirler. Veya insan kaynakları yöneticisi rolü verilerek sınırlı kaynaklara erişip bazı işlemleri gerçekleştirebilirler. Keycloak ayrıca bileşik roller kavramını da sağlar. Ancak bu özelliği dikkatli kullanmazsanız karmaşıklığı artırabilir, böylece sisteminizin yönetilmesi ve bakımı zorlaşabilir.

Kimlik Sağlayıcılar : kullanıcıların harici Kimlik Sağlayıcıları veya Sosyal Ağları kullanarak Keycloak'ta kimlik doğrulaması yapmasına olanak tanır. Keycloak, OpenID Connect ve SAML 2.0'ın yanı sıra Google, GitHub, Facebook ve Twitter gibi bir dizi sosyal ağ ve daha fazlası için yerleşik desteğe sahiptir.

Kullanıcı federasyonu: Keycloak'ta "kullanıcı federasyonu" terimi, harici kimlik depolarıyla entegrasyon yeteneğini ifade eder. LDAP'yi, kullanıcı federasyonu menüsü aracılığıyla entegrasyona aday bir örnek olarak düşünebilirsiniz.

Kimlik Doğrulama: Kimlik doğrulamayı, kullanıcı kimliğini doğrulamak için birlikte gruplandırılmış bir dizi ardışık adım veya yürütme tarafından yönlendirilen bir işlem olarak düşünebilirsiniz. Bunu özelleştirebilir, ardından mevcut yerleşik akışları kopyalayabilir veya akış önceliklerini değiştirerek belki birkaçını kaldırabilirsiniz vb.

Keycloak Hesap Konsolu

Kullanıcılar içindir. Profillerini ve şifrelerini güncelleyerek, 2FA'yı etkinleştirerek vs. hesaplarını yönetebilirler. Buna erişmeden önce, bir bölge ve o bölge içinde bir kullanıcı oluşturabilirsiniz. Yeni bir kullanıcı oluşturduğunuzda o kullanıcı yönettiğiniz alana aittir. Bir alanda oluşturulan kullanıcılar yalnızca ait oldukları alan üzerinden kimlik doğrulaması yapabilir. myrealm adında bir bölge oluşturabilirseniz , bir tarayıcıyla erişebilirsiniz . Keycloak giriş sayfasına yönlendirecektir, myrealm'e kayıt olan bir kullanıcının kullanıcı adını ve şifresini girebilirsiniz .http://localhost:8080/auth/realms/myrealm/account

kullanıcı konsolu

OpenID Bağlantısı (OIDC)

OpenID Connect, bir kimlik doğrulama katmanı eklemek için OAuth 2.0'ın üzerine kuruludur. OpenID Connect'in kalbinde, artık kullanıcı yönetimi ve kullanıcıların kimlik doğrulaması ile uğraşmaya gerek kalmayacak şekilde bütün bir ekosistem sağlamayı amaçlayan OpenID Connect Core spesifikasyonu bulunur. Google hesabınızla giriş yapmanıza olanak tanıyan sonsuz web sitesini düşünün. Yalnızca sosyal oturum açmayı düşünmemelisiniz, aynı zamanda tek oturum açmayla kurumsal destek için merkezi bir çözüm de düşünebilirsiniz. Aynı zamanda doğrudan uygulama kodunuzdan destek almanıza gerek kalmadan OTP (tek kullanımlık şifre) veya WebAuthn gibi daha güçlü kimlik doğrulaması olarak da gelir .

Keycloak ile bir kullanıcının kimliğini doğrulamanın en yaygın yolu OpenID Connect yetkilendirme kodu akışıdır.

Yetkilendirme kodu akışı

1- Kullanıcı uygulamadaki giriş butonuna tıklar.

2- Uygulama bir kimlik doğrulama isteği oluşturur.

3- Kimlik doğrulama isteği kullanıcıya 302 yönlendirmesi ile gönderilir.

4- Kullanıcı yönlendirmeli yetkilendirme uç noktası ve keycloak, kullanıcıya giriş sayfasını görüntüler. Kullanıcı kullanıcı adını ve şifresini girerek formu gönderir.

5- Keycloak kullanıcının kimlik bilgilerini doğruladıktan sonra bir yetkilendirme kodu oluşturur ve bu kod uygulamaya iade edilir.

6. Uygulama, yenileme jetonunun yanı sıra Kimlik Jetonu için yetkilendirme kodunu da değiştirir. Kimlik belirteci varsayılan olarak imzalı bir JSON Web Belirtecidir (JWT). Yani formatları <Başlık>.<Yük>.<İmza> şeklindedir. Başlık ve yük, Base64URL kodlu JSON belgeleridir.

Kimlik doğrulama akışlarından herhangi birini kontrol panelinden özelleştirebilirsiniz.

Bu kadar. Okuduğunuz için teşekkürler. [2] kitabına göz atmanızı şiddetle tavsiye ederim.

Referanslar

[1] https://www.keycloak.org/documentation

[2] Modern Uygulamalar için Kimlik ve Erişim Yönetimi

Keycloak'a Giriş
Mehmet Demirel March 1, 2024
Share this post
Tags
Archive
Sign in to leave a comment
Üretim planlaması nedir ve nasıl yapılır?
Üretim planlaması nedir ve nasıl yapılır? Kapsamlı bir rehber mi arıyorsunuz?Verimli üretim için üretim planlaması çok önemlidir. Gelin bu konuyu inceleyelim ve ERP yazılımında bunun nasıl ele alınacağını görelim.