"Kim neyi görebilir" sorunu: yapay zekayla geliştirdiğin uygulamaya kullanıcı izinleri eklemek
Yapay zekayla geliştirilen çoğu uygulama tek bir kullanıcıyla başlar: sen. İkinci kişiyi eklediğin gün izinlere ihtiyacın olur — ve çoğu insan bunu yanlış yapar. İşte bir güvenlik uzmanı olmadan bunu nasıl düşüneceğin.
Yapay zekayla geliştirdiğin uygulamanın yalnızca sana ait olmaktan çıktığı an, izinlerin gerçek bir soruna dönüştüğü andır. O ana kadar her sayfa her şeyi gösterir. Her liste her satırı gösterir. Her düğme herkes için çalışır. Çok oyunculu gibi davranan tek oyunculu bir uygulamadır.
Sonra ilk ekip arkadaşını ya da ilk müşterini ya da ilk beta test kullanıcını eklersin — ve görmemesi gereken bir şeyi görürler. Belki bir ekip arkadaşının maaşıdır. Belki henüz hazır olmayan bir taslaktır. Belki de yanlışlıkla açığa çıkmış yönetici ayarlarıdır.
İşte bu, “kim neyi görebilir” sorunudur ve teknik olmayan geliştiricilerin bir yapay zeka uygulama oluşturucu projesini yayınlarken en çok yanlış yaptığı tek şeydir. İyi haber: bunu çözmek için bir güvenlik uzmanı olmana gerek yok. Sadece yapay zeka oluşturucuna bunu anlatmanın net bir yoluna ihtiyacın var.
Yapay zekayla geliştirdiğin uygulama neden her şeye izin vererek başlar
Bir yapay zeka oluşturucuya bir uygulamayı anlattığında — “Müşteri ve not ekleyebileceğim bir CRM istiyorum” — oluşturucu tek bir şey için en iyileştirme yapar: onu anlatan kişi için çalışmasını sağlamak. Varsayılan uygulama “giriş yapan herkes her şeyi görebilir” şeklindedir. Bu, kişisel bir araç için gayet iyidir. İkinci bir kullanıcı belirdiği anda bir felakettir.
Bu, yapay zeka uygulama oluşturucudaki bir hata değildir. Kimin neyi görmesine izin verildiğini ona söylememenin doğal sonucudur. Oluşturucunun, müşteri listenin hassas olduğuna ya da “Notlar”ın müşterilerin görmesini istemediğin şeyler içerebileceğine dair hiçbir fikri yoktur. Bunu söylemen gerekir.
İkinci bir kullanıcı eklemeden önce sorulacak üç soru
Kimseyi davet etmeden önce kendine üç şey sor. Yanıtları yaz — bir sonraki adımda bunları yapay zeka oluşturucuna vereceksin.
1. Roller neler?
İnsanlar değil — kategoriler. Çoğu uygulamada iki ila dört arası rol vardır. Bir serbest çalışan portalı için: “Ben” ve “Müşteri.” Bir kurum içi araç için: “Yönetici,” “Müdür,” “Ekip üyesi.” Bir topluluk uygulaması için: “Moderatör,” “Üye,” “Misafir.” Erken aşamada dört rolün ötesine geçme dürtüsüne karşı koy. Her rol, takip etmen gereken kuralları ikiye katlar.
2. Her rol için, ne görebilirler?
Uygulamandaki her sayfayı zihninde gözden geçir. Her biri için sor: bir Müşteri bu sayfayı hiç görmeli mi? İçindeki tüm verileri mi görmeli, yoksa yalnızca kendisininkini mi? Sayfayı görmeli ama bazı alanlar gizli mi olmalı?
En basit örüntü: sahipler her şeyi görür; geri kalan herkes yalnızca kendisine açıkça erişim verilen şeyi görür. Bu, fazla özelleştirme olmadan uygulamaların %80’i için çalışır.
3. Her rol için, ne yapabilirler?
Aynı egzersiz, ama düğmeler ve eylemler için. Bir Üye bir projeyi silebilir mi? Bir Müşteri profilini düzenleyebilir ama planını değiştiremez mi? Bir Müdür yeni kişiler davet edebilir mi? Teknik olmayan geliştiricilerin çoğu bu adımı tamamen unutur ve giriş yapmış herhangi bir kullanıcının tek bir düğme tıklamasıyla tüm veritabanını silebildiği uygulamalarla baş başa kalır.
Yapay zeka oluşturucunla izinler hakkında konuşmak
Yanıtların elinde olduğunda, yapay zeka oluşturucuna vereceğin talimat kendini yazar. Şöyle görünür:
Bu uygulamayı iki rolü destekleyecek şekilde güncelle: Sahip ve Müşteri.
Sahipler tüm müşterileri, tüm projeleri ve tüm faturaları görebilir. Sahipler her şeyi oluşturabilir, düzenleyebilir ve silebilir.
Müşteriler yalnızca kendi projelerini ve kendi faturalarını görebilir. Müşteri listesini, ekip sayfasını ya da ayarlar sayfasını göremezler. Projelerini görüntüleyebilir ama düzenleyemezler. Kendi faturalarını görüntüleyebilir ve ödeyebilirler.
Bir Müşteri giriş yaptığında, Ayarlar ve Ekip’e giden gezinme bağlantılarını gizle. Bir Müşteri bu sayfaları URL ile ziyaret etmeye çalışırsa, onu panosuna yönlendir.
O talimatta üç şey önemli:
- Sayfa ve eylem bazında spesifik ol. “Müşteriler projelerini görebilir” muğlaktır. “Müşteriler /projects sayfasında kendi projelerini görüntüleyebilir ama düzenleyemez” bir yapay zeka oluşturucunun gerçekten uygulayabileceği bir şeydir.
- Gezinmeye ne olacağını söyle. Bağlantıyı gizlemek, sayfayı engellemekle aynı şey değildir. İkisini de istiyorsun.
- URL yazma durumunu da kapsa. Aksi takdirde meraklı bir kullanıcı tarayıcı çubuğuna
/adminyapıştırıp dosdoğru içeri girebilir.
Her hafta gördüğüm dört hata
Pek çok geliştiricinin ilk çok kullanıcılı uygulamasını yayınlamasını izledikten sonra, aynı hatalar tekrar tekrar ortaya çıkıyor:
Düğmeyi gizlemek, veriyi gizlemek değildir. Yapay zeka oluşturucuna “Müşteriler için silme düğmesini gizle” dersen, düğme ekrandan kaybolur. Ama altta yatan silme işlemi, biri onu nasıl çağıracağını çözerse hâlâ çalışır. Çözüm: oluşturucuya ayrıca “arka uçta Sahip olmayan hesaplardan gelen silme isteklerini reddet” demek. Oluşturucu uygulamanda “arka uç”un ne anlama geldiğini bilmiyorsa, ondan “eylemi yalnızca düğmeyi gizleyerek değil, sunucu tarafında engelle” demesini iste.
İki iş için tek rol. İnsanlar “ödeyen insanlar” ile “uygulamayı kullanan insanlar”ı birbirine karıştırır. Sana yaptığın iş için para ödeyen bir Müşteri ile o müşteri için geliştirdiğin panoyu kullanan bir Müşteri-çalışanı aynı rol değildir. Bunları karıştırırsan, önümüzdeki ayı tek seferlik kuralları yamayarak geçirirsin. İki rol. Her zaman.
Daha ilk günden kullanıcıların kullanıcı davet etmesine izin vermek. Hemen “Bir ekip arkadaşı davet et” eklemek cazip gelir. Yapma. İlk 10 kullanıcın için, onları yalnızca senin görebileceğin bir yönetici panelinden, elle, kendin davet et. Self servis davetler tam bir izin kuralları kategorisidir (kim kimi davet edebilir? davet edilenler hangi rolü alır? başkalarını davet edebilirler mi?). Buna gerçekten ihtiyacın olana kadar bekle.
Yapay zeka oluşturucunun söylediğine kontrol etmeden güvenmek. Yapay zeka oluşturucular sana, kendinden emin bir şekilde, izinlerin ayarlandığını söyler. Ayarlanmış olabilir. Olmamış da olabilir. Her zaman sahip olmayan biri olarak giriş yaparak ve kötü şeyler yapmaya çalışarak test et: silme düğmelerine tıkla, yönetici URL’lerini yapıştır, düzenleyemeyeceğin alanları düzenle. Çalışmaması gereken bir şey çalışıyorsa, oluşturucudan onu özellikle düzeltmesini iste.
Kimseyi davet etmeden önce hızlı bir kontrol listesi
İkinci bir kullanıcıya o ilk daveti göndermeden önce, şunları gözden geçir:
- Uygulamamdaki rolleri tek elin parmaklarıyla sayabiliyorum.
- Her rol için, hangi sayfaları görmeleri ve hangilerini görmemeleri gerektiğini biliyorum.
- Sahip olmayan biri olarak giriş yaptım ve yanlış sayfaların gizli olduğunu doğruladım.
- Sahip olmayan biri olarak tarayıcıya bir yönetici URL’i yapıştırmayı denedim ve engellendim.
- Yasak olması gereken silme ya da düzenleme düğmelerine tıklamayı denedim ve engellendim.
- Bir şeyler ters giderse, bir kullanıcının erişimini hızla kaldırmanın bir yolu var.
Bu maddelerden herhangi biri geçmiyorsa, yapay zeka oluşturucunla bir sonraki konuşma odur — daveti gönderdikten sonra değil, önce.
İşe yarayan tek zihniyet değişikliği
Çok kullanıcılı bir uygulama için izinler geliştirmek, çoğunlukla en kötü davranan kullanıcının biraz meraklı bir versiyonu olduğunu hayal etmekle ilgilidir. Kötü niyetli değil — sadece meraklı. Bir şeylere tıklayacaklar. URL yapıştıracaklar. Ekran görüntünde fark ettikleri “Ayarlar” sayfasında ne olduğunu görmeye çalışacaklar.
Senin işin — ve yapay zeka oluşturucunun işi — baktıklarında yanıtın tutarlı olduğundan emin olmaktır: ya görebilirler çünkü kendi verileridir, ya da göremezler çünkü değildir. Kenar durumu yok. Yanlışlıkla açığa çıkmış yönetici sayfaları yok. “O sayfanın var olduğunu unutmuşum” yok.
Çoğu geliştirici, utandırıcı bir şey olana kadar izinleri düşünmez. İyi haber: yayınlamadan önce roller üzerinde düşünmeye 20 dakika harcamak, sonradan düzeltmenin 20 saatinden seni kurtarır, üstüne bir de yanlış şeyi gören müşteriye yazmak istemediğin o e-postadan.
Çok kullanıcılı bir yanı olan bir şey mi geliştiriyorsun? Bir dahaki sefere yapay zeka uygulama oluşturucunun başına oturduğunda, oturuma uygulamandaki rolleri sesli söyleyerek başla. Edinilecek en kolay beş dakikalık alışkanlık bu ve en kötü hataların çoğunu daha gerçekleşmeden yakalar.