Cerbos, 2021’in başlarında, tekerleği yeniden icat etmek için değil, yetkilendirmeyi (authorization), uygulamanızın daha net ve basit bir parçası haline getirmek için yola çıktı. Genel olarak, bir uygulamada yetkilendirme izinleri oluşturmaya giden birçok karmaşık mantık vardır. Cerbos’un ne olduğunu ve neden yetkilendirme için kullanılması gerektiğine bakalım.
Tipik olarak, kullanıcıların kimliği doğrulandıktan sonra yapabileceklerini işlemek için birçok if/else switch deyimi bulması gereken bir mühendis ekibi vardır. Bu, onları bir uygulamanın belirli bölümlerine götürür ve bazen üç aya veya daha fazlasına varan çok fazla zaman harcamayı gerektirir. Cerbos, bir API’ye “Bu kullanıcı bu eylemi bu kaynakta yapabilir mi?” diye soran bir yapılandırma akışına izin vererek tüm bunları basitleştirmek için devreye girer. Evet veya Hayır.” Bu, ilkelerinizde tanımlanır ve bu ilkeleri kod tabanınızdan bağımsız olarak çalıştırmanıza, güncellemenize veya değiştirmenize olanak tanır.
Cerbos, basit yapılandırma yoluyla tüm karmaşık iş mantığınızı yönetebilen açık kaynaklı bir erişim kontrol sistemidir. Ayrıştırılmış bir hizmet olarak mevcut yığınınıza çalıştırmanıza olanak tanır.
Cerbos’u neden kullanmalısınız?
Cerbos tamamen açık kaynaklıdır ve kurulumu ve çalıştırılması kolaydır. Ayrıca kendi kendinize barındırabilirsiniz ve bu, çalıştırmanız gereken başka bir şey yaratıyormuş gibi görünse de, bunun bir nedeni vardır.
Kimlik doğrulama genellikle yalnızca bir kez kontrol edilir ve ayrıca bir oturum için önbelleğe alınma özelliğine sahiptir. Yetkilendirme, sürekli olarak geri aramalar ve istekler yapmak zorunda kalıyor ve kullanıcılar bir uygulama içinde hareket ettikçe güncellenmeye devam ediyor.
Cerbos’un kendi kendine barındırılmasına izin vermek, uygulamanızın çalışır halindeyken bu kontrolleri yapması için üçüncü taraf bir hizmetin çalışır durumda olmasını beklemek zorunda kalmadan daha verimli çalışmanıza olanak tanır. Tepki süreleri milisaniye cinsindendir ve Cerbos bunu performans nedenleriyle yapar.
Cerbos ayrıca ayrıştırılmış bir yetkilendirme platformudur ve insanlar tarafından okunabilen politikalarda tanımlanabilmektedir. Cerbos ile yeni bir dil öğrenmek zorunda değilsiniz. Politikaları anlaşılması çok kolay YAML dosyalarında yazabilirsiniz. Bu, bir ekibin diğer üyelerinin ürün yöneticileri veya bir güvenlik ekibinin üyeleri gibi okuyabilmesine olanak tanır.
Cerbos, kimlik doğrulama ile birlikte çalışır
Yetkilendirme için kimlik doğrulama oluşturmanın genellikle üç ana bölümü vardır. Kullanıcı girişiyle başlar. Bu oturum açmaya bağlı olarak, bu kullanıcının kim olduğunu ve ne tür bir grup, ekip, organizasyon içinde olduklarını belirten bir tür profil vardır. Son olarak, sağlanan önceki bilgilere dayanarak neler yapabileceklerini yetkilendirebilirsiniz.
Temelinde Cerbos, temel uygulama izinleri için birincil kullanım durumudur. Kullanıcıların belirli durumlarda ne yapmasına izin verileceğini kolayca ayarlamanıza olanak tanır. Ancak yetkilendirme kullanımları da değişkenlik gösterebilmekte ve Cerbos da bu yeteneğe sahiptir.
Tamamen durum bilgisinden yoksundur ve bulut hizmetleri ve birden çok dil ile çalışır
Cerbos tamamen durum bilgisinden yoksundur ve bulutta çalışmasına izin veren ikili dosyalar ve kapsayıcılarda dağıtılır. Doğrudan bir ikili dosya içeren bir sanal makinede, bir Kubernetes kümesinde çalıştırabilirsiniz, hatta ECS’de bile çalıştırabilirsiniz. Bir sunucu durumunda konteynırları çalıştırabileceğiniz her yerde çalışabilir.
Ayrıca farklı dillerle çalışmak üzere oluşturulmuş çok sayıda SDK vardır. Bu, tüm yaygın dilleri içerir ve bunlar sunucu tarafında veya istemci tarafında çalışabilir. Basit bir API olarak da kullanılabilir.
Ayrıca farklı dillerle çalışmak üzere oluşturulmuş çok sayıda SDK vardır. Bu, tüm yaygın dilleri içerir ve bunlar sunucu tarafında veya istemci tarafında çalışabilir. Basit bir API olarak da kullanılabilir.
Yetkilendirme için Cerbos’u kullanmaya geçiş
Cerbos, geçerli bir uygulamanın mevcut karmaşık mantığını her seferinde artışlarla değiştirmenize olanak tanır. Tek seferde büyük bir geçiş yapmaya gerek yoktur. Bunun en iyi uygulanma şekli, kaynağa göre kaynaktır.
Bunun bir İK sistemi ile nasıl görünebileceğine bir göz atalım. Tatil talepleriniz, çalışanlarınız ve bordro gibi şeyler var. Tek yapmanız gereken, if/else ifadelerinizi yavaşça Cerbos aracılığıyla oluşturulan ilkelerle değiştirerek her görevde bir ilkeyi eşlemektir.
Roller için politikalar oluşturmak, kullanıcıların bu politikalarla yapabileceklerini ve erişebileceklerini eklemek kadar basittir. Uygulama değiştikçe, her bir şeyin değişmesi gerektiğinde tüm yeni mantığı yazmak zorunda kalmak yerine, basitçe girip ilkeler ekleyebilir veya güncelleyebilirsiniz.
Cerbos açık kaynaktır
Cerbos açık kaynak olduğundan, her şeyi güncel ve taze tutmak için her zaman geri bildirim ve öneriler ararlar. Her şey GitHub’da ve bazı kullanıcılar zaten telemetri etrafında bazı PR’lar oluşturmuş olduğundan, PR’lar oluşturan ve hatta katkıda bulunan kullanıcılara açıktırlar. Her zaman açık belgeler oluşturmaya da ihtiyaç vardır.
Web sitesinden herkesin katılabileceği bir Slack topluluğu da var. Cerbos ekibinden bir tür kapsama bekleyebilirsiniz çünkü genellikle 7/24 civarında birisi vardır çünkü tamamen remote ve dünya çapındadırlar.
Çalışma alanını deneyin
Cerbos, kullanıcıların sundukları her şeyi denemelerini ve oynamalarını istiyor, bu nedenle erkenden bir oyun alanı oluşturdular. Bunu play.cerbos.dev adresinde bulabilirsiniz.
Tüm politikalarınızı tanımlayabileceğiniz, size canlı geri bildirim verirken örnek prensipler ve kaynaklar tanımlayabileceğiniz bir ortamdır. Bunu gerçek bir Cerbos örneği vererek yapar.
Verdiğiniz bilgilere dayanarak gerçek dünya sonuçlarını görmenizi sağlar. Ayrıca, politikalarınızın doğru biçimde olup olmadığını veya ihtiyaç duyabileceğiniz herhangi bir özelliğin eksik olup olmadığını görmenizi sağlayan geri bildirim sağlar. Oyun alanında da tüm bunlar için testler yazabilirsiniz.
Cerbos, başlamanız için her şeye alışmanız için bazı örnek başlangıç demoları ekledi. Bununla, her şeyin tam olarak nasıl çalıştığını görmeniz için kod parçacıklarını oluşturur.