İçeriğe geç

Kayıt Bazlı Yetki: Kullanıcı Yalnızca Kendi Müşterisini Görsün

Web Teknolojileri
Kayıt Bazlı Yetki: Kullanıcı Yalnızca Kendi Müşterisini Görsün

Kayıt bazlı yetki, bir kullanıcının açtığı ekranda hangi satırları göreceğini belirleyen kuraldır. Ekran yetkisi müşteri listesini açabilir mi sorusunu cevaplar; kayıt bazlı yetki ise o listede kaç müşteri görünecek sorusunu cevaplar. İkisi ayrı katmandır ve ilki verilip ikincisi kurulmadığında bütün veri herkese açılmış olur.

Rol ve yetki yönetiminin genel kurulumunu daha önce ayrı bir yazıda ele aldık. Burada bir adım aşağıya, satır düzeyine iniyoruz: saha ekibinin yalnızca kendi bölgesini, bayi temsilcisinin yalnızca kendi portföyünü, şube personelinin yalnızca kendi şubesini görmesi nasıl kurulur?

Kapsam neye göre belirlenir?

Kapsamı tanımlamanın tek bir doğru yolu yok; işletmenin kendi ayrımı neyse kural da ondan kurulur. En sık kullanılan dört ölçüt şunlardır:

  • Sorumluluk: kaydın sahibi alanında o kullanıcı yazıyorsa görür.
  • Bölge ya da şube: kullanıcının bağlı olduğu birimin kayıtları.
  • Hiyerarşi: kullanıcının kendi kayıtları artı altındaki kişilerin kayıtları.
  • Takım: aynı takıma atanmış kişilerin kayıtları ortak görünür.

Dördü de birbirinden bağımsız değil; gerçek kurulumlarda genelde ikisi birleşir. Örneğin satış temsilcisi kendi portföyünü görür, yöneticisi bölgesinin tamamını görür, muhasebe ise portföye bakmaz ama yalnızca mali alanları görür. Bu yüzden kapsam kuralı kullanıcıya değil, role bağlanır; kullanıcı role, rol kapsama bağlanır.

Kural nerede çalışmalı?

Kapsam kuralının çalışacağı tek güvenli yer, veriyi okuyan sorgunun kendisidir. Listeyi önce tamamen çekip sonra ekranda filtrelemek, kullanıcıya göstermediğiniz veriyi yine de ona ulaştırmak demektir: sayfa kaynağında, ağ isteğinde ya da sayfa numarasını değiştirerek görünür hâle gelir.

Aynı mantık tek kayıt açmak için de geçerlidir. Liste doğru filtrelenmiş olsa bile, adresteki kayıt numarasını elle değiştiren bir kullanıcı başkasının kaydını açabiliyorsa kural yarım kurulmuştur. Doğru davranış, kayıt okunurken de kapsamın kontrol edilmesi ve kapsam dışındaki kayıt için bulunamadı cevabı dönmesidir; yetkiniz yok demek kaydın var olduğunu da söyler.

Kapsamın bir de yazma tarafı var ve bu taraf sık atlanır. Kullanıcı kapsamı dışındaki bir kaydı göremiyor olabilir, ama bir kaydı kendi kapsamına taşıyabiliyorsa kuralı dolaylı olarak aşmış olur: bölge alanını değiştirerek kaydı kendi bölgesine almak buna örnektir. Bu yüzden kapsamı belirleyen alanların kimler tarafından değiştirilebileceği ayrı bir yetki olarak tanımlanır ve değişiklik iz kaydına yazılır.

Sızıntı en çok nerede olur?

Ekran listesi doğru kurulduktan sonra bile açık kalan noktalar vardır. Denetimde en sık çıkan altı yer şöyle:

NoktaNeden açık kalırDoğru davranış
RaporlarRapor ayrı sorgu yazarKapsam raporun sorgusuna da girer
Dışa aktarmaAktarım listeden bağımsız çalışırAktarım ekrandaki filtreyi devralır
Arama kutusuHızlı arama ayrı uç kullanırArama da kapsamla sınırlanır
Seçim listeleriAçılır listeler tüm kayıtları getirirListe kapsama göre dolar
Bildirim metniBildirimde kayıt özeti geçerAlıcının kapsamı kontrol edilir
Dış servis uçlarıEntegrasyon anahtarı tam yetkiliAnahtara da kapsam bağlanır

Bu altı satırın hepsi aynı hatanın farklı yüzü: kapsamın ekrana değil veriye bağlanması gerektiğini atlamak. Veriyi okuyan her yol aynı kuraldan geçerse altı nokta da tek seferde kapanır.

Devredilen yetki ve geçici erişim

Gerçek hayatta kapsam sabit kalmaz. Personel izne çıkar, portföy devredilir, bir dönem iki bölge tek kişiye bakar. Bunu çözmek için kapsamı elle değiştirmek, iznin bitiminde eski hâle dönmeyi hatırlamayı gerektirir ve genelde hatırlanmaz.

Daha sağlıklısı, geçici erişimi başlangıç ve bitiş tarihi olan ayrı bir kayıt olarak tutmaktır. Süre dolduğunda erişim kendiliğinden kapanır, kimsenin düğmeye basması gerekmez. Bu kayıtların iz kaydında da görünmesi gerekir: iz kaydı yazısında anlattığımız düzen, bir kaydı kimin hangi yetkiyle gördüğü sorusunu da cevaplayabilir hâle gelir.

Toplam ve ortalama içeren raporlar ayrı bir soru doğurur: kapsam dışındaki kayıtlar toplama girecek mi? Satış temsilcisinin kendi cirosunu görmesi beklenirken şirket toplamını görmemesi gerekiyorsa, rapor kapsamla sınırlanır. Ancak bazı raporların anlamlı olması için payda şirket toplamıdır; o zaman kullanıcıya tek bir oran gösterilip altındaki kayıt listesinin açılmaması gerekir. Bu ayrım rapor tanımında yazılı olmazsa her yeni rapor yeniden tartışma açar.

Nasıl test edilir?

Kayıt bazlı yetkinin testi gözle yapılmaz; iki kullanıcıyla aynı ekranı açıp satır sayısını karşılaştırmak gerekir. İşleyen bir yöntem şu: her rol için bir test kullanıcısı tanımlanır, her kullanıcının görmesi gereken kayıt sayısı önceden yazılır, sonra ekran, rapor, arama ve dışa aktarma için bu sayı tek tek doğrulanır.

Yeni bir ekran eklendiğinde bu liste yeniden çalıştırılır. Kapsam kuralları çoğunlukla ilk kurulumda doğru, sonraki eklemelerde eksik olur; test listesi olmadan bu eksik ancak bir kullanıcı yanlış veriyi gördüğünde anlaşılır.

Kısa kontrol listesi

  • Kapsam kuralı kullanıcıya değil role bağlı.
  • Kural, veriyi okuyan sorgunun içinde çalışıyor.
  • Tek kayıt açılırken de kapsam kontrol ediliyor.
  • Rapor, arama, dışa aktarma ve açılır listeler aynı kuraldan geçiyor.
  • Entegrasyon anahtarlarının da bir kapsamı var.
  • Geçici erişim bitiş tarihli bir kayıt; elle geri alınmıyor.
  • Her rol için beklenen kayıt sayısı yazılı ve test ediliyor.

Özet olarak kayıt bazlı yetki, ekran açma izninden ayrı ve ondan daha derin bir katmandır. KAV Yazılım bu katmanı rol tanımına bağlı kapsam kuralları olarak kuruyor ve raporlarla dışa aktarmayı da aynı kuralın içine alıyor.

Sık sorulan sorular

Ekran yetkisi ile kayıt bazlı yetki arasındaki fark nedir?

Ekran yetkisi kullanıcının o sayfayı açıp açamayacağını belirler. Kayıt bazlı yetki ise açılan sayfada hangi satırların görüneceğini belirler. Biri kapıyı, diğeri odanın içindekini kontrol eder.

Listeyi çektikten sonra ekranda filtrelemek yeterli olur mu?

Olmaz. Veri tarayıcıya kadar geldiyse ağ isteğinde ya da sayfa kaynağında görünür. Filtre, veriyi okuyan sorgunun içinde olmalıdır.

Kapsam dışındaki bir kaydı açmaya çalışan kullanıcıya ne gösterilmeli?

Kayıt bulunamadı cevabı dönmelidir. Yetkiniz yok demek, o numarada bir kaydın var olduğunu da söyler ve kayıt numaralarını deneyerek bilgi toplamayı mümkün kılar.

İzne çıkan personelin portföyü geçici olarak nasıl devredilir?

Devir, başlangıç ve bitiş tarihi olan ayrı bir erişim kaydı olarak tanımlanır. Süre dolduğunda erişim kendiliğinden kapanır; kapsamı elle değiştirip sonra geri almak gerekmez.
  • özel yazılım
  • raporlama
  • rol yetki
  • veri güvenliği