One Realm ile Multi Tenant Keycloak Kullanma
One Realm ile Çoklu Kiracılı Keycloak Kullanımı

Bu blog gönderisinde, Keycloak'ın Multitenancy nasıl desteklediğini tartışacağız.

Multitenancy nedir? Çoklu Kiralama Nedir?
Çok kiracılı uygulamalarda, tek bir yazılım örneği birden çok kiracıya (kullanıcıya) veya kuruluşa hizmet verebilir. Her kullanıcının verileri izole edilir ve aynı yazılım örneğinde başkaları tarafından erişilemez. Çoklu kiralama, kaynak paylaşımını en üst düzeye çıkarır, birden çok kiracının oturum açmasına ve tek bir sunucu veya küme kullanmasına izin verir. Bu mimari, birden fazla ilgili kiracının bazı kaynakları, muhtemelen veritabanını, uygulama örneklerini veya bilgi işlem, bellek veya depolama gibi altyapıyı paylaşmasına olanak tanır. Böylece, her kullanıcı uygulamanın kendi mantıksal örneğini alır. Ayrıca bazı kullanıcılar, iş uygulamasının UI teması gibi bazı bölümlerini özelleştirme olanağına sahiptir.

Böylece, çok kiracılı uygulama birden fazla müşteriye hizmet verebilir. Her müşteri, uygulama onlar için özel olarak oluşturulmuş olsaydı sahip olacaklarına benzer bir deneyim yaşar. Uygulamayı oluşturan ve barındıran ekip, paylaşılan kaynaklar nedeniyle paradan ve destekten tasarruf sağlar. Ayrıca, bir kiracının özel verilerini diğerinden de korur.

Çoklu kiracılığı gerçek dünya senaryosunda açıklamak için, ana girişinde merkezi güvenlik sistemi olan bir ofis binası örneğini ele alalım. Erişim kartınızı kullanarak ana girişten ofis alanına giriyorsunuz. Ardından kule erişim kartıyla ofis kulesine girin. Diğer ofis kulelerine erişiminiz olmadığı için giremezsiniz. Kulenizin toplantı odalarına ve kafe/mola alanına erişebilirsiniz. Ancak ofis binasındaki tüm insanlar bir tür ortak altyapıya sahiptir.

Erişim güvenliği: Kiracılar diğer etki alanlarına erişemez. Her kiracı ayrı bir etki alanında çalışır ve başka bir kiracının verilerine erişemez.
Daha az ölçeklendirme etkisi: Her kullanıcı kendi mantıksal örneğini aldığından, ölçeklendirmenin daha az etkisi vardır ve bu da maliyetlerin düşmesine neden olur . Tek kiracılı bir ortamda, her kullanıcı veya kiracı uygulamanın kendi eşgörünümünü alır.
Daha az kaynak gerekir: Tek bir örnekle CPU, veritabanı, herhangi bir kalıcı birim kurulumu (Kubernetes ile çalışıyorsa) vb. kaynaklar çoğaltılır. Gerekli kurulumunuza bağlı olarak maliyet artabilir. Çoklu kiralama ile ilgili kullanıcılar için paylaşılan kaynaklarla uygulamanın yalnızca bir örneği çalışır.
Performans yalıtımı: Bir kiracının performans etkisi başka bir kiracıyı etkilemez.
Yapılandırma yalıtımı: Her kiracı, diğer kiracının yapılandırmasını etkilemeden kendi yalıtılmış etki alanı yapılandırmasını işleyebilir.
Keycloak kimlik doğrulaması

Keycloak kimlik doğrulama akışı:

Keycloak kimlik doğrulama akışı

Kullanıcı, React Uygulamasını yükler ve bir kaynağa erişim talep eder. Kaynak, korunmakta olan bir nesnedir . API'ler, herhangi bir veri dosyası, istatistik verisi veya belirli uygulama sayfaları olabilir.
React App, isteği Keycloak sunucusuna iletir.
Keycloak, kullanıcıdan korunan kaynağa erişmek için kullanıcı adını ve parolasını girmesini ister.
Kullanıcı, kullanıcı adını ve parolasını girer ve Keycloak sayfasında Oturum Aç'ı tıklar. Bu şekilde, uygulama kullanıcının şifresini asla görmez.
Keycloak, sağlanan kimlik bilgileriyle kullanıcının kimliğini doğrular ve bir erişim belirteci oluşturur. Keycloak, erişim belirteciyle React Uygulamasına geri yönlendirir. Uygulama daha sonra başka erişim istekleri yapmak için bu erişim belirtecini kullanır.
React App, kullanıcıya istenen kaynağa erişim sağlar.
Keycloak'a Giriş
Keycloak, modern uygulamalar ve hizmetler için açık kaynaklı bir kimlik ve erişim yönetimi çözümüdür. Uygulamaları ve hizmetleri çok az kod kullanarak veya hiç kod kullanmadan korur.

Keycloak, birden fazla alanı destekleyerek çoklu kiracılığı destekler. Her bölge birden çok kullanıcıya ve istemciye sahip olabilir. Belirli bir alemdeki her kullanıcı , kimlik doğrulaması için bir alem içinde bir istemci olarak konfigüre edilmiş bir istemci uygulamasıyla konuşur.

anahtar pelerinleri

Mobil Uygulamaları, ön uç ve arka uç uygulamalarını Keycloak ile entegre edebilirsiniz. Keycloak, kuruluşlara çoklu oturum açma çözümü sağlar. Bölgeler kullanılarak birden fazla alan oluşturulabilir. Bölge, tüm etki alanı yapılandırmasının yönetilmesine izin veren bir ad alanı gibidir . Yukarıda gösterildiği gibi, her bölge, etki alanının Keycloak kullanarak kimlik doğrulaması yapmak için kullandığı uygulamalara dayalı olarak birden çok istemciye sahip olacak şekilde yapılandırılabilir.

Her bölge, Kullanıcılara, Gruplara ve Rollere sahip olabilir. Keycloak için kullanıcı arayüzünü veya temayı özelleştirebiliriz, böylece farklı etki alanları farklı görünüm ve hislere sahip olabilir. Keycloak ayrıca OpenID Connect, SAML, OAuth2 gibi çoklu kimlik sağlayıcıları ve Google, Facebook vb. Sosyal girişler için destek sağlar.

O Nasıl Çalışır?
Keycloak, OAuth2 kimlik doğrulama akışlarını destekler. Böyle bir OAuth2 kimlik doğrulama akışı aşağıda açıklanmıştır:

Keycloak kaynak sahibi parola kimlik bilgileri verme iş akışı

iş akışı

Kullanıcı, istemci Web uygulamasında oturum aç'ı tıklar.
Web uygulaması bir erişim belirteci olup olmadığını kontrol eder; bulunmazsa, uygulama kullanıcının kimlik bilgilerini Keycloak belirteç uç noktasına iletir.
Keycloak, kullanıcının kimlik bilgilerini doğrular ve bir erişim belirteci oluşturur.
Keycloak sunucusu, erişim belirteci ve yenileme belirteci (isteğe bağlı) ile yanıt verir.
Uygulama artık diğer korunan bilgilere erişmek için bu erişim belirteci ile API'ye erişebilir.
API daha sonra erişim belirtecini süre sonu ve geçerli imza için yeniden doğrular ve istenen kaynakla son kullanıcıya yanıt verir.
Keycloak ayrıca diğer OAuth2 akışlarını da destekler: Müşteri Kimlik Bilgileri Akışı , Yetkilendirme Kodu Akışı , PKCE ile Yetkilendirme Kodu akışı (Kod Değişimi için Kanıt Anahtarı) ve Örtülü Akış .

One Realm ile Multi Tenant Keycloak Kullanma
Mehmet Demirel 9 January, 2023
Share this post
Tags
Archive
DSpace 7 stabil sürüm yayınlandı!
DSpace 7.0 artık kullanılabilir!