Geçmiş:Bir GraphQL sunucusunda erişim denetimi uygulamak için iyi bir desen nedir?
Bir kullanıcı referanslar içerebilir bazıları bir kullanıcı ve çeşitli diğer modelleri de dahil olmak üzere bir dizi model var. Ben graffiti-mongoose adaptörü kullanarak bir Mongo veritabanı tarafından desteklenen Graffiti tarafından oluşturulan bir GraphQL API üzerinden sorgulama için bu modelleri açığa çıkıyorum. Geçerli REST API'm (GraphQL'e geçiş yapıyorum), kullanıcıların kimliğini doğrulamak için JSON Web Jetonlarını kullanır ve erişim denetimini ele almak için sunucu tarafında bazı özel izin mantığı vardır.
Sorun:
Geçerli giriş yapmış olan kullanıcı dayalı GraphQL nesnelere erişimi kısıtlamak istiyorum. Bazı modellerin kimliği doğrulanmamış çağrılar tarafından okunabilmesi için erişilebilir olmalıdır. Diğer modellerin çoğu, yalnızca bunları oluşturan Kullanıcı tarafından erişilebilir olmalıdır. Graffiti tarafından oluşturulan API ile nesnelerin erişim kontrolünü yönetmenin en iyi yolu nedir?
Genel olarak, GraphQL için erişim kontrolünün iyi örnekleri var mı? Ve özellikle, Graffiti ile yapmak için iyi örnekler veya kütüphaneler var mı?
Notlar:
Ben öncesi ve sonrası kanca grafiti firavunfaresi için been implemented olduğunu anlamak ve onlar can be used kimlik doğrulaması için temel ikili kontrolleri yapmak o. Daha detaylı bir erişim kontrol mantığının GraphQL API'sinde nasıl çalışılacağını görmek isterim. Gelecekte, belirli bir Kullanıcı Grubu tarafından oluşturulan model örneklerine erişimi olan Yöneticiler gibi şeyleri desteklemeyi isteyeceğiz (ör. Bağlı Kuruluşları, Yöneticinin içerdiği Kullanıcılar).
GraphQL ve diğer uygulamaların güvenliğini sağlamak için kullanabileceğiniz ince taneli özellik tabanlı erişim denetimi modellerinden XACML ve ABAC'ı incelemeniz gerekir. –