CIAM 102: Yetkilendirme ve Rol Tabanlı Erişim Kontrolü
Organizasyon ve Tenant, Kimlikleri gruplamak için harikadır, ancak bunlar kesin bir demokrasiye yol açar: herkes bu sistemde her şeyi yapabilir. Ütopya hala bir gizemken, erişimin yönetimine bir bakış atalım: Yetkilendirme (AuthZ).
Önceki makalede, kimlik doğrulama (AuthN) ve yetkilendirme (AuthZ) kavramlarını tanıttık, baş ağrısı yaratan bazı terimlerle birlikte: Kimlik, Organizasyon, Tenant, vb.
Organizasyon ve Tenant, Kimlikleri gruplamak için harikadır, ancak bunlar kesin bir demokrasiye yol açar: herkes bu sistemde her şeyi yapabilir. Ütopya hala bir gizemken, erişimin yönetimine bir bakış atalım: Yetkilendirme (AuthZ).
Notion harika bir örnektir. Sahip olduğunuz her sayfayı, yalnızca size özel tutabilir, arkadaşlarınızla paylaşabilir veya halka açabilirsiniz.
Veya, bir çevrimiçi kitapçı için, herkesin tüm kitapları görüntülemesini, ancak müşterilerin sadece kendi siparişlerini görüntülemesini ve satıcıların sadece kendi mağazalarındaki kitapları yönetmesini istersiniz.
AuthZ ve AuthN, karmaşık bir iş modelinin temel bileşenleridir. Çoğu zaman el ele giderler; AuthZ bir kullanıcının erişimini doğrular, AuthN ise kimlikleri doğrular. Her ikisi de güvenli bir sistem için gereklidir.
İşte en yaygın AuthZ modellerinden biri: Eğer KİMLİKEYLEM gerçekleştirirse KAYNAK üzerinde, o zaman KABUL veya RED.
Notion örneğinde, model şu şekildedir: KİŞİGÖRÜNTÜ gerçekleştirir SAYFASI üzerinde.
Eğer sayfa özel ise:
Kendi SAYFANIZ üzerinde GÖRÜNTÜ gerçekleştirirken KABUL alırsınız.
Diğer herkesin, sizin SAYFANIZ üzerinde GÖRÜNTÜ gerçekleştirirken RED alması gerekir.
Bazılarına göre, sektör Rol Tabanlı Erişim Kontrolü (RBAC), Özellik Tabanlı Erişim Kontrolü (ABAC) gibi çeşitli yetkilendirme teknolojileri geliştirdi. Bugün, NIST RBAC modeli Seviye 1: Düz RBAC üzerinde duracağız.
Logto'da, bir kaynak (yani API Kaynağı) genellikle bir varlık kümesini veya öğeleri temsil eder, çünkü geçerli bir URL kullanmak gereklidir. Bu yüzden iki kaynak tanımlıyoruz:
Kitaplar: https://api.bookstore.io/books
Siparişler: https://api.bookstore.io/orders
URL biçimini zorlama avantajlarından biri, URL'nin sistemin diğer bileşenleriyle entegrasyon sırasında okunabilirliği ve tanınabilirliği artırmasıdır.
Kaynak kavramını tanıttığımızdan beri, Logto'da, yetkilerin bir kaynağa ait olması gerektiğini, tersine, kaynakların yetkileri olabileceğini belirttik.
Logto şu anda 1. Seviye uygulamasına sahip ve topluluk geri bildirimine dayalı olarak daha yüksek seviyelere ilerleyecektir. Daha yüksek bir seviyenin ihtiyaçlarınıza uygun olduğunu bize bildirmekten çekinmeyin!
Teorinin yanı sıra, modelin beklendiği gibi çalışması için ağır teknik çalışmaları tamamlamamız gerekiyor:
İstemci ve yetkilendirme sunucusu geliştirme
RBAC için veritabanı tasarımı
Farklı hizmetler arası doğrulama
Güvenlik ve açık standart uyumluluğu
Rol, izin, kaynak yönetimi ve atama
Endişelenmeyin. Bunu göz önünde bulundurduk ve tüm bunları kapsayacak şekilde kutudan çıkar desteği ekledik. RBAC'nin Logto'da nasıl kullanılacağını öğrenmek için 🔐 RBAC tarifini kontrol edin.