Bu yazıda Dynamics 365 Finance and Operations güvenlik altyapısını (security architecture) anlatmaya çalışacağım. Çok beğendiğim bir docs makalesi var onu referans alıp konuları toparlamaya çalışacağım. Güvenlik altyapısını anlamak çok önemli. Günümüz projelerinde güvenlik ve yetkileri yönetmek çok zahmetli bir süreç olabiliyor. İhtiyaçları doğru yönetebilmek için altyapıyı ve güvenlik araçlarının özellik, yetenek ve kısıtlarını iyi bilmek gerekiyor. Bu makalede aşağıdaki konulara değineceğim. Türkçeleştirmedim. Bazen terimlerde anlam kayması oluyor o yüzden açıklamayı daha doğru buldum.
- Security architecture
- Role-based security
- Duties
- Privileges
- Permissions
- Authentication
- Authorization
- Auditing
Finance and Operations uygulaması role-based security yapısını kullanır. Yetkiler role verilir kullanıcılara direk yetki verilmez. Kullanıcılara roller atanır. Hiçbir rolü olmayan kullanıcının sistemde hiçbir yetkisi yoktur. Admin rolü atanan kullanıcı tüm yetkilere sahip olur. Daha doğrusu hiçbir yetki kısıtlanmasına tabi olmaz. Role-based security Resim-1’de görüldüğü gibi hiyararşik bir yapıdır.
Resim-1
Role-based security
Role-based security aslında iş birimlerinin yaptığı işlere paralel oluşturulmuştur. Belli görevleri olan bir pozisyon için o görevleri yerine getirebilesi için gerekli yetkilerin toplandığı yapıdır rol. Rol aslında çalışanın firmadaki gerçek işine paraleldir. Buradan her çalışanın bir rolü olması manası çıkmaz. Bazı durumlarda farklı iş süreçlerini tek bir kişi takip ediyor yönetiyor olabilir. Dolayısıyla birden çok rolü olması gerekir. Kişiye göre değil de işe göre rolleri düzenlemek esastır. Sisteme giriş yapabilmek için en az bir rol şarttır. Genelde herkese System User rolü verilir. Role atamak için System administration > Users > Assign users to roles formunu kullanabilirsiniz.
Role ataması admin olan hesaplar üzerinden yapılır. Roller temelde Duty(Görev)’lerden ve Privilege(Ayrıcalık)’lardan oluşur.
Resim-2
Duties (Görevler)
Görevler belli bir iş sürecini yerine getirebilmek için gerekli olan yetkilerin toplandığı yerlerdir. Bir görev birden çok role atanabilir. Dolayısıyla görevde yaptığınız bir değişiklik atanan rolleri otomatik etkiler. Role direk Privilege(Ayrıcalık) ta atanabilir ama daha yönetilebilir bir altyapı için görevleri oluşturup kullanmak gerekiyor.
Resim-3
Privileges(Ayrıcalıklar)
Belli bir işi yapabilmek için gerekli olan yetkilerin toplandığı yapıdır. Örneğin ödeme iptali ayrıcalığı sadece bu işi yapmak için gerekli olan yetkiye sahiptir. Direk role bu ayrıcalığı verebilirsiniz ama üstte de söylediğim gibi görevlerde bunları toplayıp görevleri rollere atamak daha doğru bir yaklaşım olur. Sistemde olan bütün nesneler için güvenlik ve yetki nesneleri tanımlı. Sizde ihtiyacınız olanları bulup değiştirebilir yenilerini ekleyebilirsiniz. Özellikle yeni yapılan geliştirmelerde mutlaka Privilege oluşturmak gerekiyor. Her geliştirme için Duty şart olmayabilir. Belli bir görevle bu yetkiyi vermek yetebilir ama Privilege olamadan olmaz.
Resim-4
Permissions
Permissions belli bir nesneye ulaşım yetki seviyesini ifade eder. Bu MenuItem veya herhangi bir nesne olabilir. Genelde yetki entry point(Giriş noktası) aracılığıyla verilir. Bunlarda genelde MenuItem’lardır. Bazı durumlarda direk formun bir nesnesine yetki tanımlamak için de kullanırız.
Authentication
Benim yeni versiyonda en sevdiğim özellik bu oldu. Tek bir maille tüm araçları kullanabiliyorum. Bunlardan biride tabi ki Finance and Operations uygulaması. Uygulama girmek için kullanıcınızın oluşturulması lazım. Önceki yazımda anlatmıştım. Genelde kullanıcıların Microsoft Azure Active Directory (AAD)’de olması bekleniyor ama harici kullanıcılar da ekleyebiliyorsunuz. 2 seviyeli doğrula ayarlayabilirsiniz.
Authorization
Authorization Finance and Operations uygulamasına ulaşmayı kontrol eder. Bunun için Security permissions kullanılır. Security permissions uygulamanın belli nesnelerine nasıl erişileceğini ayarlar. Bu nesneler: menus, menu items, action ve command buttons, reports, service operations, web URL menu items, web controls ve fields.
Finance and Operations uygulması context-based security kullanır bu sayede belli bir nesneye ulaşım seviyesini tanımlamış oluruz. Bir ayrıcalığı(privilege) bir giriş noktası (entry point) ile ilişkilendirdiğiniz de bir ulaşım seviyesi de tanımlarsınız. Read, Delete, update gibi.
Auditing
Kullanıcıların sisteme ne zaman girdiği ve çıktığı kaydedilir. Bu kayırlara admin hesabından ulaşabilirsiniz. (System administration > Inquiries > User log).
Bu yazıda güvenlik altyapısını size tanıtmaya çalıştım. Çok geniş ve ayrıntılı bir konu. Genelde projelerde sadece bu süreçlerden sorumlu bir kişi veya ekip oluyor. Doğru tasarlanmadığında bakım maliyeti ve çıkan sorunlar baş ağrıtıcı olabiliyor. Proje aşamasında gerekli önemin gösterilmesi ve iyi test edilmesi şart. Genelde danışmanlar admin yetkileri olduğu için gerekli rollerle testleri atlayabiliyorlar burada özellikle anahtar kullanıcıların admin olarak değil ilgili rolle testlerini yapması tavsiye ediliyor. Güvenlikle ilgili konuları ele almaya deva edeceğim.
Selamlar.
Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.
Referanslar:
www.mshowto.org
www.fatihdemirci.net
Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, security architecture, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apss, Power Virtual Agents, Dynamics 365 nedir, Dynamics 365 ERP, Dynamics 365 CRM