Ana içeriğe atla

Overview

Casbin, çeşitli erişim kontrol modelleri destekleyen güçlü ve verimli bir açık kaynak erişim kontrol kütüphanesidir ve yetkilendirmeyi her alanda uygulamak için kullanılır.

Bir dizi kuralı uygulamak, konuları, nesneleri ve istenen izin verilen eylemi (veya ihtiyaçlarınıza göre başka bir formatta) bir policy dosyasında listelemek kadar basittir. Bu, Casbin'in kullanıldığı tüm akışlarda eş anlamlıdır. Geliştirici/yönetici, yetkilendirme için düzen, yürütme ve koşullar üzerinde tam kontrole sahiptir ve bunlar model dosyası aracılığıyla belirlenir. Casbin, verilen policy ve model dosyalarına göre gelen bir isteği doğrulamak için bir Enforcer sağlar.

Casbin Tarafından Desteklenen Diller

Casbin, çeşitli programlama dilleri için destek sağlar ve herhangi bir proje ve iş akışı içinde entegre edilmeye hazırdır:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Üretime HazırÜretime HazırÜretime HazırÜretime Hazır
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Üretime HazırÜretime HazırÜretime HazırÜretime Hazır

Farklı Diller İçin Özellik Seti

Casbin'in tüm diller için aynı özellik setine sahip olmasını sağlamak için her zaman en iyisini yapmaya çalışıyoruz. Ancak, gerçeklik o kadar güzel değil.

ÖzellikGoJavaNode.jsPHPPythonC#DelphiRustC++LuaDartElixir
Enforcement
RBAC
ABAC
Scaling ABAC (eval())
Adapter
Management API
RBAC API
Batch API
Filtered Adapter
Watcher
Role Manager
Multi-Threading
'in' of matcher

Not - ✅, Gözcü veya Rol Yöneticisi için sadece çekirdek kütüphanede arayüzün bulunduğu anlamına gelir. Bu, bir gözcü veya rol yöneticisi uygulamasının mevcut olup olmadığını göstermez.

Casbin nedir?

Casbin, belirli bir nesne veya varlığın belirli bir kullanıcı veya konu tarafından erişilmesini istediğimiz akışlarda kullanılabilen bir yetkilendirme kütüphanesidir. Erişim türü, yani action, Casbin'in en yaygın kullanıldığı şekli budur ve buna "standart"

Casbin, standart akış dışında birçok karmaşık yetkilendirme senaryosunu da yönetebilir. Roller (RBAC), öznitelikler (ABAC) vb. eklemeler yapılabilir.

Casbin'in Yaptığı Şey

  1. Politikayı klasik { subject, object, action } formunda veya tanımladığınız özelleştirilmiş bir formda uygula. Hem izin verme hem de reddetme yetkilendirmeleri desteklenmektedir.
  2. Erişim kontrol modelinin ve politikasının depolanmasını yönetir.
  3. Rol-kullanıcı eşleşmelerini ve rol-rol eşleşmelerini (RBAC'deki rol hiyerarşisi olarak adlandırılır) yönetir.
  4. root veya administrator gibi yerleşik süper kullanıcıları destekler. Bir süper kullanıcı, açık izinler olmadan her şeyi yapabilir.
  5. Kural eşleştirmeyi desteklemek için birden fazla yerleşik operatör sağlayın. Örneğin, keyMatch bir kaynak anahtarı /foo/bar/foo* kalıbına eşleyebilir.

Casbin'in YapMADIĞI ŞEYLER

  1. Kimlik Doğrulama (yani bir kullanıcı giriş yaptığında kullanıcı adı ve şifre doğrulama)
  2. Kullanıcıların veya rollerin listesini yönetme.

Projelerin kullanıcılarının, rolleri veya şifrelerinin listelerini yönetmeleri daha uygundur. Kullanıcıların genellikle şifreleri vardır ve Casbin şifre kapsayıcısı olarak tasarlanmamıştır. Ancak, Casbin RBAC senaryosu için kullanıcı-rol eşleştirmesini saklar.