Makale Özeti

Bu makale'de CRM'in güvenlik kısmına eğilip Güvenlik Rolleri (Security Roles) kavramlarını inceleyeceğiz. Hangi kullancıya hangi yapılar üzerinde okuma,yazma,atama,ilişkilendirme ve silme gibi, yetkilerin nasıl verilebileceğini açıklayacağız.

Makale

Microsoft CRM, entityleriniz içindeki yetkileri yönetebilmenizi sağlamak adına bir rol sistemi sunar. ERP veya CRM gibi bir tool kullanıyorsanız, bu da mutlaka olması gereken özelliklerdendir zaten.

Microsoft CRM’in rol yetilerini maddeler halinde ifade edersek aşağıdaki 7 maddeyi sayabiliriz.

  • 1. Yetkiler rol merkezlidir. Yani roller oluşturulur ve kullanıcılara atanırlar.
  • 2. Roller arasında NxN bir ilişki vardır yani bir kullanıcı birden fazla role sahip olabileceği gibi bir rolü birden fazla kullanıcı da kullanıyor olabilir.
  • 3. Rol Kavramı sadece ürünün kendi entityleri için değil. Sonradan eklemiş olduğunuz bütün entityler için de kullanılabilirdir.
  • 4. Bir rol tanımlarken ilgili entity için o kişiye, okuma, yazma, silme,assign etme (atama) ,paylaşma(sharing) gibi yetkiler verebilirsiniz.
  • 5. Bu bahsettiğimiz yetkileri de kısıtlayabilirsiniz. Mesela Okuma yetkisini bütün organizasyondaki bütün kayıtlar için verebileceğiniz gibi yazma yetkisini sadece sahibi (owner) kendisinin olduğu kayıtlarda verebilirsiniz.
  • 6. Her kullanıcının en az bir rolü olmak zorundadır. Eğer kullanıcı bir role sahipse CRM ekranını açmaya çalıştığında rolü olmadığına dair hata mesajı alacaktır.
  • 7. Kullanıcı rollerine göre CRM ana ekranı da şekillenir. Mesela bir kullanıcının Contact Ekranını okumak için yetkisi yoksa, Ana CRM Ekranında Contact linkini dahi görmez. Dolayısıyla buradan da şu sonuç çıkıyor ki bir kullancı CRM sistemini açtığında bütün yapıları görmez. Sadece kendisine işiyle alakalı verilmiş rollerin izin verdiği yapıları görür.

Bir Kullanıcının sahip olduğu rolleri görmek için kullanıcı ekranın sol tarafındaki navigasyon barında bulunan Roles bağlantısını kullanabilirsiniz. Kullanıcıların bulunduğu listeye ise Settings --> Administration --> Users yolundan erişebilirsiniz.

Rollerin listesine ulaşmak için ise Settings --> Administration --> Security Roles yolunu kullanabilirsiniz. Bir Role tıkladığınızda Farklı tablar altında hem sistem hem de custom olmak üzere bütün entitylerinizi görebilirsiniz.

Burada entity karşısındaki kutucuklara tıklayarak rolün özelliğini değiştirebilirsiniz. Mesela Account Ekranındaki Read kutusuna tıklayarak tam yeşil hale yani Organization durumuna getiriseniz, o kullanıcı bütün account kayıtlarını görebilir. Ama aynı kullanıcı için accountda write yetkisini çeyrek sarı daire yani User durumuna getirirseniz Sadece Sahibinin kendi olduğu müşterilerde güncelleme yapabilir. Bu rollerin hangi anlama geldiğini yukarıdaki ekran görüntüsünde de olduğu gibi sayfanın altında görebilirsiniz.

Bu noktada Append ve Append To kavramından da bahsetmek önemlidir. Biribiriyle ilişkili entity’lerde Append ilgili entity’nin Append To ise ilişkilendirlecek entitynin yetkisi ile alakalıdır. Mesela Account ve Teklif ekranlarında Tekliflerin account içine ilişkilendirilebilmesi için rolde Teklif’in Append, account’un ise append to yetkilerinin olması gerekir. Mesela bir kişinin sadece kendi tekliflerini kendi account’larına entegre etmek isterseniz account için append to ve teklif için append haklarını user bazında vermeniz gerekir. Eğer kullanıcının kendi tekliflerini herhangi bir account’a ilişkilendirmesini isteseydiniz, o zaman Teklif’in append hakkına user ve account’un append to hakkında organization vermeniz gerekirdi.

Benim tavsiyem rolleri oluştururken kullanıcıların görevlerini ayırmak ve her görev için ayrı bir rol oluşturmak olacaktır. Bu durumu şöyle açıklayayım. Mesela bir çalışımız, hem Fırsatları hem de Accountları yönetiyor olabilir. Bu durumda tek bir rol altında iki entity’ye birlikte rol vermektense. İki ayrı rol tanımlayarak birinde Account diğerinde de Fırsat (Opportunity) ekranı üzerinde yetkiye sahip rol tanımlayabilirsiniz. Böylece Bu iki rolü o kişiye atadığınızda iki entity üzerinde de işlemlerini yapabilecektir.

Microsoft CRM’in rol sisteminin eksik yapısı yetkiyi kayıt bazında yönetmesi yani alan bazında olmamasıdır. Mesela bir kullancıya bu entity’deki bütün alanlara güncelleyebilirsin diyebilirsiniz, ama sadece şu ve şu alanları güncelleme diyemezsiniz.Daha doğrusu bunu CRM’in “out of box” diye tabir edilen kutudan çıktığı haliyle diyemezsiniz. Bir takım javascript özelleştirmesi yapmanız gerekir. CRM 2011 alan bazlı bu güvenlik özelliğini getirmiştir. Javscript gibi ek kodlama yapmaya gerek bırakmaz.