Çok kiracılı kimlik doğrulama ve yetkilendirme ayarlamanın nihai rehberi
Çok kiracılı bir uygulama oluşturmak karmaşık olabilir. Bu makale, çok kiracı ve organizasyon stratejileri hakkında geçmişte yayınladığımız tüm yazıları bir araya getiriyor. Umarız zaman kazandıracak ve kolayca başlamanızı sağlayacaktır.
Çok kiracılı bir uygulama inşa etmek, dikkate alınması gereken birçok yönü ile zorlayıcı olabilir. Bu makale, çok kiracı ve organizasyon uygulamalarını anlamaya yönelik önceki blog yazılarımızın hepsini derlemektedir. Hızlı bir başlangıç yapmak ve zaman kazanmak için sadece bu makaleye göz atın, ihtiyacınız olan her şey burada!
Genel yönergeler şu adımlarda özetlenmiştir:
- Çok kiracılı mimariyi anlamak
- Çok kiracılı uygulamanızın kullanım senaryolarını haritalamak
- Kiracı izolasyonuna ulaşmak
- Kimlikleri nasıl yöneteceğinizi tanımlamak
- Uygun yetkilendirme modellerini seçmek
Çok kiracılı mimari nedir
Yazılım çok kiracılığı, bir sunucuda çalışan ve birden fazla kiracıya hizmet veren tek bir yazılım örneği içinde bulunduğu bir yazılım mimarisidir. Bu şekilde tasarlanan sistemler "paylaşımlı" ("özel" veya "izole" yerine) olarak kabul edilir.
Kiracı, yazılım örneğine ortak erişim ve belirli ayrıcalıklara sahip kullanıcı grubudur.
Çok kiracılı olmanın ana düşüncelerinden biri "paylaşımlı"dır. Çok kiracılı olmanın geniş kapsamlı tanımında, çok kiracılı bir uygulama olmak, çözüm içindeki her bileşenin paylaşıldığı anlamına gelmez. Aksine, çözümün en azından bazı bileşenlerinin birden fazla kiracı arasında yeniden kullanıldığı anlamına gelir. Bu terimi geniş anlamda anlamak, müşterinizin ihtiyaçlarına ve nereden geldiklerine daha iyi empati kurmanıza yardımcı olabilir.
Çok kiracılı mimariyi anladığınızda, bir sonraki adım, uygulamanızı gerçek dünya senaryolarına uygulamak, belirli ürün ve iş ihtiyaçlarına odaklanmaktır.
Çok kiracılı uygulamalar için kullanım senaryoları nelerdir?
SaaS'de çok kiracılık
Çok kiracılı uygulamalar genellikle üretkenlik araçları, iş birliği yazılımları ve diğer hizmet olarak yazılım (SaaS) ürünleri gibi işten işe (B2B) çözümlerinde yer bulur. Bu bağlamda, her "kiracı" tipik olarak bir iş müşterisini temsil eder ve bu, birden fazla kullanıcıya (çalışanlarına) sahip olabilir. Ek olarak, bir 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ında çok kiracılık
B2B uygulamaları SaaS ürünlerinin ötesine geçer ve genellikle çok kiracılı uygulamaların kullanımını içerir. B2B bağlamlarında bu uygulamalar, çeşitli ekiplerin, iş müşterilerinin ve ortak şirketlerin uygulamalarınıza erişmesi için ortak bir platform işlevi görür.
Örneğin, hem B2C hem de B2B uygulamaları sağlayan bir ulaşım paylaşım şirketini düşünün. B2B uygulamaları birden fazla iş müşterisine hizmet eder ve çok kiracılı bir mimarinin benimsenmesi, çalışanlarının ve kaynaklarının yönetimine yardımcı olabilir. Örneğin, şirket tek 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 ulaşım paylaşım hizmetini kullanır ve boş zamanlarında sürücü olarak çalışır. Profesyonel rolünde, aynı zamanda işini yönetir ve bu iş kimliğini İş 1 ile ortak olmak için kullanır.
Neden SaaS ürünlerinde çok kiracılık kullanılmalıdır
Çok kiracılıkla ölçekleme
Kurumsal işletmeler için, çok kiracı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.
Birleşik bir deneyim oluşturma
SaaS ürünlerinin köklerine bakarken, çeşitli dairelere sahip bir binaya benzer. Tüm kiracılar su, elektrik ve gaz gibi ortak hizmetleri paylaşırken, kendi alanlarını ve kaynaklarını yönetme konusunda bağımsız kontrol sağlarlar. Bu yaklaşım, mülk yönetimini basitleştirir.
Kiracı izolasyonu yoluyla güvenliği sağlama
Çok kiracılı mimaride, "kiracı" terimi, paylaşılan bir örnek içindeki farklı kiracıların kaynaklarını ve verilerini ayırmak ve korumak için sınırlar oluşturur. Bu, her kiracının verilerinin ve operasyonlarının, aynı temel kaynakları kullanıyor olsalar bile, ayrı ve güvenli olmasını sağlar.
Kiracı izolasyonuna neden ulaşmalısınız?
Çok kiracılı uygulamalar hakkında konuşurken, her zaman kiracı izolasyonuna ulaşmak gereklidir. 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 uygulamayı daha fazla açıklamak için örnekler ve anahtar detaylar kullanacağız.
Kiracı izolasyonu çok kiracılığın "paylaşımlı" zihniyetine karşı gelmez
Bu, kiracı izolasyonunun mutlaka bir altyapı kaynak seviyesinde inşaat olması gerekmediğindendir. Çok kiracılık ve izolasyon alanında bazıları izolasyonu, gerçek altyapı kaynakları arasında sıkı bir bölünme olarak görür. Bu genellikle her kiracının ayrı veritabanlarına, bilgisayar ö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ğlamak için bir mantıksal yapı kullanılabilir.
Kiracı izolasyonu, yalnızca "kiracı" bağlamını kullanarak kaynaklara erişimi sınırlamaya odaklanır. Mevcut kiracının bağlamını değerlendirir ve o kiracı için hangi kaynakların erişilebilir olduğunu belirlemek için bu bağlamı kullanır.
Kimlik doğrulama ve yetkilendirme "izolasyon" ile eş anlamlı değildir
SaaS ortamları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.
İnsanlar genellikle bir soru sorar: Genel yetkilendirme çözümlerini ve rol tabanlı erişim denetimini kiracı izolasyonunu sağlamak için kullanabilir miyim?
İşte mesele şu ki, çok kiracılı bir uygulama oluşturabilirsiniz, ancak kiracı izolasyon stratejilerini bir en iyi uygulama olarak sağladığınızı ve benimsediğinizi söyleyemezsiniz. Genellikle bunu önermiyoruz çünkü
Örneğin, SaaS sisteminiz için kimlik doğrulama ve yetkilendirme kurduğunuz bir durumu düşünün. Kullanıcılar giriş yaptıklarında, uygulamada ne yapabileceklerini belirten bir token alırlar. Bu yaklaşım güvenliği artırır, ancak izolasyonu garanti etmez.
Kiracı izolasyonunu sağlamak için SaaS ürün kiracısını "organizasyon" olarak temsil edecek şekilde kullanın
Yalnızca kimlik doğrulama ve yetkilendirmeye dayanarak, doğru rolü olan bir kullanıcının başka bir kiracının kaynaklarına erişmesini engelleyemezsiniz. Bu yüzden "kiracı" bağlamı gibi bir kiracı kimliği ile kaynaklara erişimi sınırlamamız gerekir.
Bu, kiracı izolasyonunun devreye girdiği yerdir. Kiracıya özel tanımlayıcılar kullanarak duvarlar, kapılar ve kilitler gibi sınırlar oluşturur, kiracılar arasında net bir ayrım sağlar.
Çok kiracılı uygulamalarda kimlik yönetimi
Kiracı izolasyonundan bahsettik, peki ya kimlikler? Kimliklerinizin "izole" olup olmaması gerektiğine nasıl karar verirsiniz?
"Kimlik izolasyonu" kavramı etrafında genellikle bir kafa karışıklığı vardır. Bu, bir gerçek dünya kullanıcısının genel anlayışta iki kimliğe sahip olduğu durumlara atıfta bulunabilir.
- Her iki kimlik de tek bir kimlik sistemi içinde var olabilir. Örneğin Sarah, tek oturum açma (SSO) aracılığıyla bağlanmış kurumsal bir e-posta ile kişisel bir e-posta kaydetmiş olabilir.
- Kullanıcılar, tamamen farkl ı ürünleri temsil eden ayrı kimlik sistemleri içinde iki farklı kimliği korur. Bu ürünlerin birbiriyle hiçbir ilişkisi yoktur.
Bu durumlar bazen "Kimlik izole" olarak adlandırılır. Ancak, bu etiket bir karar vermenize yardımcı olmayabilir.
"Kimlik izolasyonu" ihtiyacını belirlemek yerine,
Bu cevap sistem tasarımınızı yönlendirebilir. Çok kiracılı bir uygulama için kısa bir yanıt olarak,
Çok kiracılı uygulamalarda, kiracıya özel kaynaklar ve verilerden farklı olarak, kimlikler birden fazla kiracı arasında paylaşılır. Kendinizi bina yöneticisi olarak hayal edin; kiracıların kimliklerini yönetmek için iki ayrı isim listesi tutmak istemezsiniz.
Kiracı izolasyonu sağlamaya çalışırken, "organizasyon" terimi sık sık öne çıkabilir, çok kiracılı uygulamaları oluşturmak için en iyi uygulama olarak kabul edilir.
"Organizasyon" kavramını kullanarak çok kiracılı uygulamanızda kiracı izolasyonunu sağlarken birleşik bir kimlik sistemi sürdürebilirsiniz.
Uygun yetkilendirme modelini nasıl seçip tasarlarsınız?
Doğru yetkilendirme modelini seçerken şu soruları göz önünde bulundurun:
- B2C, B2B veya her iki türde ürün mü geliştiriyorsunuz?
- Uygulamanızın çok kiracılı bir mimarisi var mı?
- İş biriminin belirlediği bir izolasyon seviyesine uygulamanızda ihtiyaç var mı?
- Organizasyon bağlamında tanımlanması gereken izinler ve roller nelerdir ve hangileri yoktur?
Logto'da bulunan farklı yetkilendirme modelleri nelerdir?
Rol tabanlı erişim kontrolü
RBAC (Rol Tabanlı Erişim Kontrolü), kullanıcı izinlerinin rollerine göre verildiği, kaynak erişiminin etkili bir şekilde yönetilmesini sağlayan bir yöntemdir.
Bu yaygın teknik, erişim kontrolünün temelini oluşturur ve Logto'nun yetkilendirme özelliklerinin önemli bir bileşenidir. Kapsamlı bir kimlik yönetim platformu olarak Logto, çeşitli katmanlar ve varlıklar için geliştiricilere ve işletmelere çeşitli ürün mimarileri için özelleştirilmiş çözümler sunar.
API rol tabanlı erişim kontrolü
Herhangi bir organizasyona özel olmayan ve bağlam kısıtlamasına ihtiyaç duymayan genel API kaynaklarını korumak için API RBAC özelliği idealdir.
Sadece API'yi kaydedin ve her kaynağa izinler atayın. Ardından, roller ve kullanıcılar arasındaki ilişki aracılığıyla erişimi kontrol edin.
API kaynakları, roller ve izinler burada "demokratikleştirilmiş" bir birleşik kimlik sistemi altında sunulur. Bu, daha az hiyerarşik ve çok derin düzeyde izolasyona ihtiyaç duymayan B2C ürünlerinde oldukça yaygındır.
Organizasyon rol tabanlı erişim kontrolü
B2B ve çok kiracılı ortamda, kiracı izolasyonu gereklidir. Bunu başarmak için, organizasyonlar izolasyon için bir bağlam olarak kullanılır, bu da RBAC'nin yalnızca bir kullanıcının belirli bir organizasyona ait olması durumunda etkili olduğu anlamına gelir.
Organizasyon RBAC, erişimi API düzeyinden çok organizasyon düzeyinde kontrol etmeye odaklanır. Bu, uzun vadede organizasyon seviyesinde 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, roller ve izinlerin varsayılan olarak tüm organizasyonlarda genel olarak aynı olmasıdır, bu da Logto'nun "organizasyon şablonunu" geliştirme verimliliğini artırmak için son derece anlamlı kılar. Bu, tüm kiracılar (uygulama kiracıları) arasında ortak altyapı bileşenleri olan erişim kontrol politikalarının ve kimliklerin paylaşıldığı çok kiracılı uygulamaların paylaşımlı felsefesiyle uyumludur, 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 için gerekli tüm bilgileri sağlar. Logto'yu bugün deneyin ve organizasyonlarla çok kiracılı uygulama geliştirme için en iyi uygulamaları uygulamaya başlayın.