Çok kiracılı CIAM kurulumuna nihai kılavuz
Çok kiracılı bir uygulama oluşturmak karmaşık olabilir. Bu makale, çok kiracılı ve organizasyon stratejileri hakkındaki önceki yazılarımızı bir araya getiriyor. Umarız zaman kazandırır ve kolayca başlamanıza yardımcı olur.
Çok kiracılı bir uygulama oluşturmak, dikkate alınması gereken birçok yönüyle zorlu olabilir. Bu makale, çok kiracılı ve organizasyon uygulamalarını anlamayla ilgili önceki blog yazılarımızı derlemektedir. Zaman kazanmak ve hızlı bir başlangıç yapmak için, ihtiyacınız olan her şeyi içeren bu makaleye göz atın!
Genel yönergeler şu adımlarda özetlenmiştir:
- Çok kiracılı mimariyi anlayın
- Çok kiracılı uygulamanızın kullanım senaryolarını haritalayın
- Kiracı izolasyonunu sağlayın
- Kimlikleri nasıl yönetmek istediğinizi tanımlayın
- Uygun yetkilendirme modellerini seçin
Çok kiracılı mimariyi anlayın
Yazılım çok kiracılığı, tek bir yazılım örneğinin bir sunucuda çalıştığı ve birden fazla kiracıya hizmet verdiği bir yazılım mimarisi türüdür. Bu şekilde tasarlanan sistemler, "özel" veya "izole" yerine "paylaşılan" olarak adlandırılır.
Bir kiracı, yazılım örneğine belirli ayrıcalıklarla ortak erişime sahip kullanıcı gruplarını ifade eder.
Çok kiracılılığın ana zihniyetlerinden biri "paylaşım"dır. Çok kiracılığın daha geniş tanımında, bir uygulamanın çok kiracılı olması, çözüme ait her bileşenin paylaşıldığı anlamına gelmez. Aksine, en azından bazı bileşenlerin birden fazla kiracı arasında yeniden kullanıldığı anlamına gelir. Bu terimi geniş bir şekilde anlamak, müşterilerinizin ihtiyaçlarına ve nereden geldiklerine karşı empati yapmanıza daha iyi yardımcı olabilir.
Çok kiracılı mimariyi anladıktan sonra, uygulamanızı gerçek dünya senaryolarına uygulamak ve belirli ürün ve iş ihtiyaçlarına odaklanmak için bir sonraki adım gelir.
Çok kiracılı uygulamanızın kullanım durumu haritalarını yapın
SaaS
Çok kiracılı uygulamalar genellikle B2B (işletmeler arası) çözümler gibi üretkenlik araçları, işbirliği yazılımları ve diğer yazılım olarak hizmet (SaaS) ürünlerinde yer bulur. Bu bağlamda, her "kiracı" tipik olarak bir iş müşteri temsil eder ve bu müşteri birçok kullanıcıya (çalışanları) sahip olabilir. Ek olarak, iş müşterisi, farklı organizasyonları veya iş bölümlerini temsil etmek için birden fazla kiracıya sahip olabilir.
Genel B2B kullanım senaryoları
B2B uygulamaları, SaaS ürünlerinin ötesine geçer ve genellikle çok kiracılı uygulamaların kullanılmasını içerir. B2B bağlamlarında, bu uygulamalar çeşitli ekiplerin, iş müşterilerinin ve ortak şirketlerin uygulamalarınıza erişim sağladığı ortak bir platform olarak hizmet verir.
Örneğin, B2C ve B2B uygulamaları sağlayan bir araç paylaşım şirketini düşünün. B2B uygulamaları birçok iş müşterisine hizmet eder ve çok kiracılı bir mimariyi kullanmak, çalışanlarının ve kaynaklarının yönetimine yardımcı olabilir. Örneğin, şirket birleşik bir kullanıcı kimliği sistemi sürdürmek isterse, aşağıdaki örnek gibi bir mimari tasarlayabilir:
Sarah, hem kişisel hem de iş kimliğine sahiptir. Yolcu olarak araç paylaşım hizmetini kullanır ve boş zamanlarında şoför olarak çalışır. Profesyonel rolünde ayrıca işini yönetir ve bu iş kimliğini İş 1 ile ortak olmak için kullanır.
SaaS ürününde çok kiracılığı neden uygulamalısınız
Çok kiracılılık ile ölçeklenme
Kurumsal işletmeler için, çok kiracılılık, erişilebilirlik, kaynak yönetimi, maliyet yönetimi ve veri güvenliği gereksinimlerini etkili bir şekilde karşılamanın anahtarıdır. Teknik düzeyde, çok kiracılı bir yaklaşım benimsemek, geliştirme süreçlerinizi kolaylaştırır, teknik zorlukları en aza indirir ve sorunsuz genişlemeyi teşvik eder.
Tek bir deneyim oluşturma
SaaS ürünlerinin temellerini incelerken, bu benzer şekilde çeşitli dairelere sahip bir bina gibidir. Tüm kiracılar su, elektrik ve gaz gibi ortak araçları paylaşır, yine de kendi alanlarını ve kaynaklarını yönetme konusunda bağımsız kontrole sahiptirler. Bu yaklaşım, mülk yönetimini basitleştirir.
Kiracı izolasyonu ile güvenliği sağlama
Çok kiracılı bir mimaride, "kiracı" terimi, paylaşılan bir örnek içinde farklı kiracıların kaynaklarını ve verilerini ayıran ve güvence altına alan sınırlar oluşturmak için tanıtılır. Bu, her kiracının veri ve işlemlerinin ayrı ve güvenli kalmasını sağlar, hatta aynı temel kaynakları kullansalar bile.
Kiracı izolasyonunu sağlamak
Çok kiracılı uygulamalar hakkında konuşurken, her zaman kiracı izolasyonu sağlamak gerekir. Bu, farklı kiracıların veri ve kaynaklarını paylaşılan bir sistem içinde (örneğin, bir bulut altyapısı veya çok kiracılı bir uygulama) ayrı ve güvenli tutmak anlamına gelir. Bu, başka bir kiracının kaynaklarına yetkisiz erişim girişimlerini engeller.
Açıklama soyut görünebilirken, izolasyon zihniyetini ve kiracı izolasyonunu sağlamak için en iyi uygulamaları daha fazla açıklamak için örnekler ve önemli detaylar kullanacağız.
Kiracı izolasyonu, çok kiracılılığın "paylaşımlı" zihniyetine karşı gelmez
Bunun nedeni, kiracı izolasyonunun mutlaka altyapı kaynak düzeyinde bir yapı olmamasıdır. Çok kiracılılık ve izolasyon alanında, bazıları izolasyonu gerçek altyapı kaynakları arasında katı bir bölme olarak görür. Bu genellikle, her kiracının ayrı veritabanlarına, bilgi işlem örneklerine, hesaplara veya özel bulutlara sahip olduğu bir modele yol açar. Çok kiracılı uygulamalar gibi paylaşılan kaynak senaryolarında, izolasyonu sağlamanın yolu mantıksal bir yapıdır.
Kiracı izolasyonu, tamamen kaynaklara erişimi sınırlamak için "kiracı" bağlamını kullanmaya odaklanır. Şu anki kiracının bağlamını değerlendirir ve bu bağlamı kullanarak o kiracı için hangi kaynakların erişilebilir olduğunu belirler.
Kimlik doğrulama ve yetkilendirme, "izolasyon" ile eşit değildir
SaaS ortamlarınıza erişimi kontrol etmek için kimlik doğrulama ve yetkilendirme kullanmak önemlidir, ancak tam izolasyon için yeterli değildir. Bu mekanizmalar, güvenlik bulmacasının sadece bir parçasıdır.
Sıkça sorulan bir soru, genel yetkilendirme çözümleri ve rol tabanlı erişim kontrolünü kullanarak kiracı izolasyonunu sağlayabilir miyim?
Durum şu ki, çok kiracılı bir uygulama inşa edebilirsiniz, ancak iyi bir uygulama olarak kiracı izolasyonu stratejileri elde ettim ve kullandım diyemezsiniz. Genellikle bunu önermeyiz çünkü
Örneğin, SaaS sisteminiz için kimlik doğrulama ve yetkilendirme ayarladığınız bir durumu düşünün. Kullanıcılar oturum açtıklarında, uygulamadaki yeteneklerini belirten roller hakkında bilgileri içeren bir belirteç alırlar. Bu yaklaşım güvenliği artırırken, izolasyonu garanti etmez.
Çok kiracılı uygulama kiracısını temsil etmek için “organizasyon” kullanın ve kiracı izolasyonunu sağlayın
Kimlik doğrulama ve yetkilendirmeye güvenmek, doğru role sahip bir kullanıcının başka bir kiracının kaynaklarına erişmesini önlemez. Bu nedenle, erişimi sınırlamak için bir "kiracı" bağlamını, örneğin bir kiracı kimliği, dahil etmemiz gerekiyor.
Bu, kiracı izolasyonunun devreye girdiği yerdir. Kiracıya özgü tanımlayıcıları kullanarak sınırlar, duvarlar, kapılar ve kilitler gibi, kiracılar arasında net bir ayrım sağlayarak oluşturur.
Çok kiracılı uygulamalarda kimlikler
Kiracı izolasyonunu tartıştık, peki ya kimlikler? Kimliklerinizin "izole" olup olmaması gerektiğine nasıl karar verirsiniz?
"Kimlik izolasyonu" kavramı etrafında genellikle bir karışıklık vardır. Bu, bir gerçek dünya kullanıcısının genel anlayışta iki kimliğe sahip olduğu durumları ifade edebilir.
- Her iki kimlik de tek bir kimlik sisteminde mevcut olabilir. Örneğin, Sarah'ın tek oturum açma (SSO) yoluyla bağlanmış kurumsal bir e-postasıyla birlikte kayıtlı kişisel bir e-postası olabilir.
- Kullanıcılar, tamamen ayrı ürünleri temsil eden ayrı kimlik sistemlerinde iki farklı kimlik korur. Bu ürünler birbiriyle tamamen ilgisizdir.
Zaman zaman, bu senaryolar "Kimlik izole" olarak adlandırılır. Ancak, bu etiket karar vermede yardımcı olmayabilir.
"Kimlik izolasyonuna" ihtiyaç duyup duymadığınızı belirlemek yerine,
Bu yanıt, sistem tasarımınıza rehberlik edebilir. Çok kiracılı bir uygulama ile ilgili olarak kısa bir yanıt için,
Çok kiracılı uygulamalarda, kiracıya özgü kaynaklar ve verileri aksine, kimlikler birden fazla kiracı arasında paylaşılır. Kendinizi bina yöneticisi olarak düşünün; kiracılarınızın kimliklerini yönetmek için iki ayrı isim tablosu tutmak istemezsiniz.
Kiracı izolasyonunu hedeflerken, genellikle "organizasyon" teriminin, çok kiracılı uygulamalar inşa etmek için en iyi uygulama olarak kabul edildiğini fark etmiş olabilirsiniz.
"Organizasyon" kavramını kullanarak çok kiracılı uygulamanızda kiracı izolasyonunu sağlarken birleşik bir kimlik sistemini sürdürebilirsiniz.
Daha iyi erişim kontrolü için yetkilendirme modellerini seçin
Uygun yetkilendirme modelini seçmek ve tasarlamak
Doğru yetkilendirme modelini seçerken, bu soruları göz önünde bulundurun:
- Bir B2C, B2B veya her iki türde ürün mü geliştiriyorsunuz?
- Uygulamanızın çok kiracılı bir mimarisi var mı?
- İş birimi tarafından belirlenen belirli bir izolasyon seviyesine ihtiyaç var mı?
- Organizasyon bağlamında tanımlanması gereken izinler ve roller nelerdir ve olmayanlar hangileridir?
Logto'da farklı yetkilendirme modellerini anlayın
Rol tabanlı erişim kontrolü
RBAC (Rol Tabanlı Erişim Kontrolü), kullanıcı izinlerini rollerine göre vererek kaynak erişimini yönetmeyi mümkün kılan bir yöntemdir.
Bu yaygın teknik, erişim kontrolünün temelini oluşturur ve Logto'nun yetkilendirme özelliklerinin anahtarıdır. Logto, geliştiricilere ve işletmelere, çeşitli ürün mimarilerine yönelik çözümler sunarak geniş bir altyapı katmanları ve varlıklar için özelleştirilmiş çözümler sunan kapsamlı bir kimlik yönetimi platformudur.
API rol tabanlı erişim kontrolü
Herhangi bir organizasyona özgü olmayan ve bağlam kısıtlamaları gerektirmeyen genel API kaynaklarını korumak için API RBAC özelliği idealdir.
Sadece API'yi kaydedin ve her kaynağa izin atayın. Sonra, roller ve kullanıcılar arasındaki ilişkiyi kullanarak erişimi kontrol edin.
Buradaki API kaynakları, roller ve izinler, birleşik kimlik sistemi altında "demokratikleştirilmiştir". Bu, daha az hiyerarşi olan ve çok derin izolasyon gerektirmeyen B2C üründe oldukça yaygındır.
Organizasyon rol tabanlı erişim kontrolü
B2B ve çok kiracılı ortamda, kiracı izolasyonu gereklidir. Bu amaçla, kuruluşlar, izolasyon için bir bağlam olarak kullanılır, yani RBAC, yalnızca bir kullanıcı belirli bir kuruluşa ait olduğunda etkilidir.
Organizasyon RBAC, erişimi API düzeyinde değil organizasyon düzeyinde kontrol etmeye odaklanır. Bu, uzun vadede organizasyon düzeyinde kendi kendine yönetim için önemli bir esneklik sağlar ancak yine de birleşik bir kimlik sistemi içinde kalır.
Organizasyon RBAC'nin önemli bir özelliği, varsayılan olarak tüm kuruluşlarda roller ve izinlerin genellikle aynı olmasıdır, bu da Logto'nun "organizasyon şablonu" nu geliştirme verimliliğini artıran son derece anlamlı kılar. Bu, çok kiracılı uygulamaların paylaşılmış felsefesiyle uyumludur, çünkü erişim kontrol politikaları ve kimlikler tüm kiracılar arasında (uygulama kiracıları) ortak altyapı bileşenleridir ve SaaS ürünlerinde yaygın bir uygulamadır.
Kapanış
Bu makale, çok kiracılı uygulamaları hazırlamak ve yapılandırmak için başlamanız gereken her şeyi sunar. Bugün Logto'ya bir şans verin ve organizasyonlarla birlikte çok kiracılı uygulama geliştirme için en iyi uygulamaları uygulamaya başlayın.