Web Erişim Denetimi (WAC) Nedir?

Web Erişim Denetimi (WAC), web'deki belirli bir kaynağı kimin okuyabileceğini, yazabileceğini, ona ekleme yapabileceğini ya da onu denetleyebileceğini söylemek için kullanılan küçük, RDF tabanlı bir sözcük dağarcığıdır. Bir platformun sahip olduğu ve güvenmek zorunda olduğunuz merkezî bir izin veritabanı yerine, bir WAC kuralı kendisi bir Bağlı Veri parçasıdır: koruduğu kaynağın yanında durur ya da ona atıf verir ve hangi kimliklerin veya grupların hangi erişim kiplerini aldığını adlandırır. Kural kaynağın kendisiyle birlikte taşınır. Başka hiçbir şeyin taşıması gerekmez.

Kendi kural simgesi iliştirilmiş bir belge; eşit görsel ağırlıkta üç istekçi bir kapıya yaklaşıyor, kapı ikisini geçiriyor ve üçüncüsünü aynı boyut ve muameleyle durduruyor.

Üç istekçi, bir kapı, her seferinde kontrol edilir. Görsel bir istekçi türünü değil bir sonucu gösteriyor: aynı mekanizma üçü için de çalışıyor ve ikisi geçiyor.

WAC nereden geliyor

WAC, tek bir uygulamasından önce gelen, erişim denetimi sözcük dağarcıkları üzerine W3C Semantik Web topluluk çalışmasından çıktı. Tim Berners-Lee'nin Solid projesinin tasarladığı ve W3C Solid Topluluk Grubu üzerinden şartnamelendirilen Solid protokolü, WAC'ı varsayılan yetkilendirme modeli olarak taşıdı ve onu kimlik için WebID, altta yatan okuma/yazma mekanizmaları için LDP ile eşleştirdi. Solid ekosisteminde bugün WAC'ın yanında Erişim Denetimi Politikaları (ACP) adlı daha yeni ve daha ifade gücü yüksek bir alternatif de mevcuttur: bu bir yerine geçme değildir ve WAC onunla kullanımdan kaldırılmamıştır. İkisi de bir Solid sunucusunun destekleyebileceği canlı seçeneklerdir; bu sayfa özellikle WAC hakkındadır, çünkü Solidus'un kendi Pod ürününün dokunduğu odur.

Bir kontrol gerçekte nasıl gerçekleşir

Mekanizma tek seferde anlatılabilecek kadar basittir. Bir WAC kuralı bir kaynağı adlandırır, sonra bir ya da daha fazla kimliği veya grubu adlandırır, sonra her birinin hangi erişim kiplerini aldığını adlandırır: okuma, yazma, ekleme ya da denetim. O kural her tekil istekte kontrol edilir; oturum açarken bir kez değil, bir oturum boyunca önbelleğe alınarak değil, kaynağa dokunmak isteyen her şey için yeniden değerlendirilerek. Üstünde duran ayrı bir "oturum izni" katmanı yoktur; kaynağın yanındaki kural yetkilendirme kararının tamamıdır.

Bu, bir platformun sahip olduğu ve her isteğin danışmak zorunda olduğu merkezî bir izin veritabanından gerçekten farklı bir zihinsel modeldir. WAC'ta izin veriyle birlikte gezer. Kaynağı taşıyın; erişim kuralı da veridir: onunla birlikte taşınabilir ya da yeniden türetilebilir, tamamen başka bir yerdeki bir kayıt sisteminde yaşamak yerine. Erişim denetimini bir RBAC ya da ABAC tablosundaki satırlar olarak düşünmeye alışmış herkes için yapılacak ayarlama budur: kural, şeyin üstünde duran bir rol hiyerarşisine değil, şeyin kendisine iliştirilmiştir.

Bir kontrolün sonucu ikili ve anlıktır. Kuralın izin verdiği bir istek kaynağa ulaşır. İzin vermediği bir istek 401 (kimlik bilgisi yok) ya da 403 (yanlış kimlik bilgisi) alır ve hiçbir şeye ulaşmaz: WAC ile yönetilen herhangi bir sunucunun döndürdüğü aynı arıza biçimi, daha yumuşak bir geri dönüş yolu olmadan. Yukarıdaki görselin gösterdiği tam olarak budur: iki istekçi geçti, biri durduruldu, üçü de aynı kapıdan kontrol edildi.

Solidus'un kendi kullanımı, bir örnek, konu değil

Solidus'un Pod ürünü bugün WAC tarzı erişim denetimi kullanır; yukarıda tarif edilen mekanizmanın somut bir örneği olarak, Solidus'un tasarladığı ya da genişlettiği bir şey olarak değil. Mevcut mimaride o uygulama, Solidus Pod'un önündeki Community Solid Server bileşeninin içinde çalışır: Solidus'un yazdığı kod değil, Solid topluluğunun inşa ettiği gerçek Solid yazılımı. İzin kontrolü, Solidus Pod'un kendi istek yolunun üçüncü ayağıdır: did:solidus taşıyan bir istek sunucunun tanıdığı bir biçime çevrilir ve ancak ondan sonra WAC kaynağı geçip geçmeyeceğine karar verir. O yolun tam mekanizmaları, önündeki kimlik çevirisi adımı dahil, Solidus Pod Nasıl Çalışır sayfasında ele alınır; bu sayfa o ayağı yeniden anlatmayacak, çünkü oraya aittir.

Bir ifade ayrımı önem taşır ve kasıtlıdır: Solidus Pod'un yetkilendirmesi burada WAC tarzı olarak tarif edilir, asla WAC'a uygun olarak değil. Solidus yığınını tam WAC uygunluk paketine karşı bağımsız olarak çalıştırmadı, dolayısıyla uygun henüz yapılabilecek bir iddia değildir ve bu sayfa onu yapmıyor.

Kanıt ve sınırı

WAC, Solidus'a hiç güvenmeye gerek kalmadan, herhangi bir Solid pod'unda herkes tarafından kontrol edilebilir: WAC ile korunan bir kaynağı kimlik bilgisi olmadan isteyin ve bir 401 ya da 403 geldiğini teyit edin; aynı kaynağı doğru kimlik bilgisiyle yeniden isteyin ve erişimi teyit edin. O gidiş dönüş, tam olarak yukarıda tarif edildiği gibi çalışan mekanizmanın tamamıdır. Sözcük dağarcığının kendisi github.com/solid/web-access-control-spec adresinde belgelenmiştir; bir referans olarak okumaya değer, Solidus'un yaptığı bir şeyin kanıtı olarak değil.

Sınırı, etrafından dolanmak yerine açıkça belirtmeye değer: gösterebileceğimiz Solidus'a özgü bir uygunluk raporumuz yok. Çoğunlukla genel bir açıklama sayfası, bunu söylemekten muaf tutulmaz.

Bu, mekanizmayı nerede bırakıyor

WAC, her erişim denetimi sisteminin er ya da geç yanıtlamak zorunda olduğu bir soruya Solid'in verdiği cevaptır: izin veriyle mi yaşar, yoksa verinin üstünde duran bir platformla mı? WAC'ın cevabı birincisidir; istek başına kontrol edilir, kendine ait merkezî bir deposu olmadan. Solid o cevabı inşa etti, gerçek dağıtımlara karşı kanıtladı ve varsayılanı olarak taşıdı. Solidus onu inşa etmedi, genişletmiyor ve kendi Pod ürününün kullandığı yerde, mekanizmayı şartnamelendirildiği gibi çalıştıran bir uygulama daha; onun bir adım önünde değil.

Okumaya devam edin

Web Erişim Denetimi (WAC) Nedir? · Solidus