Okuma, yazma, ekleme, denetim: bir pod'daki dört izin kipi
Web Access Control dört tane tanımlıyor.
Dört kip, açıkça
- Okuma, kaynağı getirmek.
- Yazma, onu değiştirmek ya da silmek.
- Ekleme, onu okuyabilmeden ya da orada olanın üzerine yazabilmeden ona ekleme yapmak.
- Denetim, başka kimin erişimi olduğunu değiştirmek. İzin dağıtma izni.
Ekleme, insanların kaçırdığı ve ilginç olanıdır. Bir gelen kutusunu mümkün kılıyor: bir yabancı, içinde zaten olan hiçbir şeyi okumadan kabınıza bir ileti bırakabiliyor. Yazma onlara hiçbir şey okutmaz ama her şeyi yok ettirir; Okuma her şeyi gösterir ve hiçbir şey eklettirmez. Ekleme ikisi de değildir ve sıradan hiçbir dosya paylaşım arayüzünün bunun için bir sözcüğü yoktur.
Denetim, insanların hafife aldığıdır. Onu vermek, yeniden verme yetkisini devretmektir. Paylaşmaktan çok ortak sahipliğe yakındır.
Kuralların yaşadığı yer
Bir kural, koruduğu kaynağın yanında duran küçük bir veri parçasıdır ve hangi tanımlayıcıların hangi kipleri aldığını adlandırır. Merkezî bir izinler tablosu yoktur, bir pod'u taşımanın izinlerini de birlikte taşımasının sebebi budur.
Bu Solid'in tasarımıdır ve iyi bir tasarımdır. Bizim katkımız, onu yeniden yazmak yerine onların sunucusunu çalıştırmamızdır.
Arayüzümüzün o dördüyle gerçekte ne yaptığı
Pazarlamamızı değil kendi kodumuzu okuyun:
setAccess(resource, agent, { read, write })
→ { read: read, append: write, write: write }
Arayüzümüz üzerinden "yazma" vermek her zaman ekleme de veriyor. Birlikte hareket ediyorlar. Yalnızca ekleme yapılabilir bir izni ifade etmenin hiçbir yolu yok (gelen kutusu örüntüsünü işler kılan kip), inşa ettiğimiz hiçbir şey üzerinden.
Ve Denetim hiç verilmiyor. Kodumuzda tam olarak bir kez geçiyor: geri alma yolunda, her şeyle birlikte yanlış olarak ayarlandığı yerde. Onu geri alabiliyoruz. Hiçbir zaman dağıtmıyoruz.
Yani dürüst ifade şu: dört kip var, bizim yüzeyimiz iki tane sunuyor ve sunduğumuz ikisinden biri alttaki iki kipin birleşimi. Alttaki sunucu dördünü de destekliyor. Kısıt bizim.
Kabalığın iyi bir varsayılan olduğu tek yer
Açık bir bağlantı okuma veriyor ve başka hiçbir şey vermiyor; ekleme ile yazma bir varsayılana bırakılmak yerine açıkça yanlış olarak ayarlanıyor. Sessizce yazmaya izin veren bir "bağlantıyla paylaş" kötü bir sürpriz olurdu ve bu olamaz.
Hakkı teslim edilsin diye kendi kodumuza, ki bu sayfanın geri kalanının eleştiri konusu odur.
Kelime dağarcığını doğrudan konuşmuyoruz ve bunu bilmekte fayda var
Kodumuz, erişim denetimi kelime dağarcığının kendisini değil, istemci kitaplığının erişim sisteminden bağımsız API'sini çağırıyor. Kitaplık, bir izni sunucunun çalıştırdığı sisteme göre nasıl ifade edeceğine karar veriyor.
İki sonuç var ve zıt yönlere kesiyorlar. Eski model ile yeni politika tabanlı model arasındaki farktan yalıtıldığımız anlamına geliyor, faydalı. Aynı zamanda kaynaklarınıza yazılan tam kuralların, bizim yazdığımız ya da denetlediğimiz bir şey değil kitaplığın çıktısı olduğu anlamına geliyor ve onları kaynak kaynak incelemedik.
Bir yabancının çalıştırabileceği test ve bariz yarısının burada neden değersiz olduğu
Sözlük şunu öneriyor: korumalı bir kaynağı kimlik bilgisi olmadan isteyin, reddedildiğinizi doğrulayın, sonra kimlik bilgisiyle isteyin ve erişimi doğrulayın. İkinci yarı asıl testtir ve onu bugün bizimki olmayanlar dahil herhangi bir Solid pod'unda çalıştırabilirsiniz.
İlk yarı bu sunucuda hiçbir şey kanıtlamıyor. Buradaki bilinmeyen bir yol da tam olarak korumalı
bir yol gibi 401 döndürüyor; istekler depolama sunucusuna düşüyor. / 200 döndürüyor,
dolayısıyla sunucu ayakta. Bir ret dolayısıyla size ne kaynağın var olup olmadığını ne de herhangi bir
kuralın başvurulduğunu söylüyor.
Bunu kendi önerdiğimiz kanıta karşı işaretliyoruz, çünkü özellik çalışsa da çalışmasa da geçen bir test, test değildir.
Söylemeyeceklerimiz
Yığınımızı tam test paketine karşı çalıştırmadık ve onu uygunluk taşıyor diye tarif etmiyoruz. Kendi beyanı buradaki ölçüt değildir, birlikte çalışabilirliği kontrol eden üçüncü bir taraftır ve bu olana kadar doğru sözcük WAC tarzı.