Microsoft Dataverse'de güvenlik kavramları
Dataverse'in temel özelliklerinden biri çok sayıda iş kullanımı senaryosuna uyarlanabilen zengin güvenlik modeli olmasıdır. Bu güvenlik modeli yalnızca ortamda bir Dataverse veritabanı olduğunda oyundadır. Yönetici olarak, güvenlik modelinin tamamını muhtemelen tek başınıza oluşturmazsınız ancak çoğu zaman kullanıcıları yönetme ve uygun yapılandırmaya sahip olunduğundan emin olma ve güvenlik erişimiyle ilgili sorunları giderme sürecinde yer alırsınız.
Bahşiş
Aşağıdaki videoya göz atın: Microsoft Dataverse – Demolarda Gösterilen Güvenlik Kavramları.
Rol tabanlı güvenlik
Dataverse, ayrıcalıklar koleksiyonunu bir araya gruplamak için rol tabanlı güvenlik kullanır. Bu güvenlik rolleri doğrudan kullanıcılarla veya Dataverse takımları ve departmanlarıyla ilişkilendirilebilir. Kullanıcılar daha sonra takımla ilişkilendirilebilir ve bu nedenle takımla ilişkili tüm kullanıcılar rolden yararlanır. Dataverse güvenliğinin anlaşılabilmesi için temel kavramlardan biri tüm ayrıcalıklarda en yüksek erişim miktarının korunmasıdır. Tüm ilgili kişi kayıtlarına kuruluş geneli düzeyinde okuma erişimi verirseniz bu işlemi geriye döndürüp tek bir kaydı gizleyemezsiniz.
Departmanlar
Bahşiş
Aşağıdaki videoya göz atın: Departmanları modernleştirin.
Departmanlar, kullanıcının sahip olduğu etkin güvenliği belirlemek için güvenlik rolleriyle çalışır. Departmanlar, kullanıcıları ve onların erişebilecekleri verileri yönetmeye yardımcı olan bir güvenlik modelleme yapı taşıdır. Departmanlar bir güvenlik sınırı tanımlar. Her Dataverse veritabanının tek bir kök departmanı vardır.
Kullanıcılarınızı ve verilerinizi daha fazla segmentlere ayırmak için alt departmanlar oluşturabilirsiniz. Bir ortama atanan her kullanıcı bir departmana aittir. Departmanlar, gerçek bir kuruluş hiyerarşisini bire bir modellemek için kullanılabilirken çoğu zaman güvenlik modeli ihtiyaçlarının karşılanmasına yardımcı olmak için yalnızca tanımlanmış güvenlik sınırları oluştururlar.
Daha iyi anlamak için aşağıdaki örneğe bakalım. Üç departmanımız var. Woodgrove, kök departmandır ve daima en üstte yer alır, bu değiştirilemez. A ve B olmak üzere iki alt öğe departmanı daha oluşturduk. Bu departmanlardaki kullanıcıların farklı erişim ihtiyaçları vardır. Kullanıcıyı bu ortam ile ilişkilendirdiğimizde bu üç departmandan birine dahil olacak şekilde kullanıcıyı ayarlayabiliriz. Kullanıcının ilişkilendirildiği yer, kullanıcının sahibi olduğu kayıtların hangi departmana ait olduğunu belirler. Bu ilişkilendirme, kullanıcının o iş birimindeki tüm kayıtları görmesini sağlayan bir güvenlik rolü uyarlamamızı sağlar.
Hiyerarşik veri erişim yapısı
Müşteriler, verilerin ve kullanıcının bir ağaç benzeri hiyerarşide herhangi bir yere yerleştirildiği bir organizasyon yapısı kullanabilir.
Bir kullanıcıyı, bu ortamla ilişkilendirdiğinizde, kullanıcıyı bu üç iş biriminden birinde olarak ayarlayabiliriz ve iş biriminden kullanıcıya bir güvenlik rolü atayabilirsiniz. Kullanıcı bir kayıt oluşturduğunda, kullanıcının ilişkilendirildiği iş birimi, kayıtlarına hangi iş biriminin sahip olduğunu belirler. Bu ilişkilendirmeye sahip olmak, kullanıcının söz konusu iş birimindeki kayıtları görmesine olanak tanıyan bir güvenlik rolü uyarlamamıza olanak tanır.
A kullanıcısı Bölüm A ile ilişkilidir ve Bölüm A'dan güvenlik rolü Y atanmıştır. Bu, A kullanıcısının İrtibat Kişisi #1 ve İrtibat Kişisi #2 kayıtlarına başvurmasına erişmesine izin verir. Bölüm B'deki B kullanıcısı, Bölüm A'nın Kişi kayıtlarına erişemez, ancak İletişim #3 kaydına erişebilir.
Matris verileri erişim yapısı (Modern Departmanlar)
Müşteriler, ağaç benzeri bir hiyerarşide verilerin bölümlendirildiği bir organizasyon yapısı kullanabilir ve kullanıcılar, atanan departmandan bağımsız olarak, iş birimlerinin verilerine erişebilir ve bu verilerle çalışabilir.
Kullanıcıyı bu ortam ile ilişkilendirdiğimizde bu üç departmandan birine dahil olacak şekilde kullanıcıyı ayarlayabiliriz. Kullanıcının verilerine erişmesi gereken her bir iş birimi için, kullanıcıya ilgili iş biriminden bir güvenlik rolü atanır. Kullanıcı bir kayıt oluşturduğunda, kullanıcı, kaydın sahibi olmak üzere iş birimini seçebilir.
Kullanıcı A, kök iş birimi de dahil olmak üzere iş birimleriyle ilişkilendirilebilir. A Bölümünden güvenlik rolü Y A kullanıcısına atanabilir. Bu durumda kullanıcıya İrtibat Kişisi #1 ve İrtibat Kişisi #2 kayıtlarına erişim izni tanınır. B Bölümünden güvenlik rolü Y, A kullanıcısına atanabilir. Bu durumda kullanıcıya İrtibat Kişisi #3 kayıtlarına erişim izni tanınır.
Matris verileri erişim yapısını etkinleştirme
Not
Bu özelliği etkinleştirebilmek için yayımlanmamış tüm yeni tablolarınızı ileriye dönük olarak etkinleştirmek üzere tüm özelleştirmelerinizi yayımlamanız gerekir. Özelliği etkinleştirdikten sonra, bu özellikle çalışmayan yayımlanmamış tablolarınız olduğunu görürseniz, Microsoft Dynamics CRM için OrgDBOrgSettings aracını kullanarak RecomputeOwnershipAcrossBusinessUnits ayarını değiştirebilirsiniz. RecomputeOwnershipAcrossBusinessUnits seçeneğinin doğru olarak ayarlanması Sahibi Olan Departman alanının ayarlanıp güncelleştirilmesine olanak tanır.
- Power Platform Yönetim merkezinde yönetici (Dynamics 365 yöneticisi veya Microsoft Power Platform yönetici) olarak oturum açın.
- Ortamlar'ı seçin ve ardından bu özelliğini etkinleştirmek istediğiniz ortamı seçin.
- Ayarlar>Ürün>Özellikler'i seçin.
- İşletme birimleri arasında kayıt sahipliği anahtarını Açın.
Bu özellik anahtarı etkinleştirildikten sonra, bir kullanıcıya güvenlik rolü atadığınızda İş birimi seçebilirsiniz. Bu, farklı iş birimlerinden kullanıcıya güvenlik rolü atamanıza olanak sağlar. Kullanıcı ayrıca, model temelli uygulamaları çalıştırmak için kullanıcı ayarları ayrıcalıklarıyla kullanıcının atandığı departmandan bir güvenlik rolü gerektirir. Bu kullanıcı ayarları ayrıcalıklarının nasıl etkinleştirildiğini öğrenmek için Basic User güvenlik rolüne bakabilirsiniz.
Kullanıcının kayıt tablosunda Okuma ayrıcalığına sahip bir güvenlik rolü olduğu sürece, kaydın sahibi olan departmanda güvenlik rolü atamanıza gerek olmadan departmandaki bir kullanıcıyı kayıt sahibi olarak atayabilirsiniz. Bkz. Modern Departmanlarda Kayıt Sahipliği.
Not
Bu özellik geçişi EnableOwnershipAcrossBusinessUnits ayarında depolanır ve Microsoft Dynamics CRM için OrgDBOrgSettings aracı kullanılarak da ayarlanabilir.
Bir iş birimini Microsoft Entra güvenlik grubuyla ilişkilendirin
Kullanıcı yönetiminizi ve rol atamanızı kolaylaştırmak amacıyla iş biriminizi haritalandırmak için bir Microsoft Entra güvenlik grubu kullanabilirsiniz.
Her departman için bir Microsoft Entra güvenlik grubu oluşturun ve her grup takımına ilgili departman güvenlik rolünü atayın.
Her iş birimi için bir Microsoft Entra güvenlik grubu oluşturun. Her Microsoft Entra güvenlik grubu için bir Dataverse grup takımı oluşturun. Departmandan ilgili güvenlik rolünü her Dataverse grup takımına atayın. Yukarıdaki diyagramdaki kullanıcı, kullanıcı ortama eriştiği zaman kök departmanda oluşturulacaktır. Kullanıcı ve Dataverse grup takımların kök departmanda olması sorun değildir. Bunlar yalnızca güvenlik rolünün atandığı departmandaki verilere erişebilirler.
Kullanıcılara departmana erişim hakkı vermek için bu kullanıcıları ilgili Microsoft Entra güvenlik grubuna ekleyin. Kullanıcılar uygulamayı hemen çalıştırabilir ve kaynaklarına/verilerine erişebilir.
Kullanıcıların birden çok departmanda çalışabilecekleri ve buralardaki verilere erişebilecekleri matris veri erişiminde, kullanıcıları o departmanlarla eşleştirilmiş Microsoft Entra güvenlik gruplarına ekleyin.
Sahip Olan Departman
Her kaydın, kaydın hangi departmana ait olduğunu belirleyen bir Sahip Olan Departman sütunu vardır. Bu sütun, kayıt oluşturulduğunda varsayılan olarak kullanıcının departmanına ayarlanır ve özellik anahtarının AÇIK olduğu durumlar dışında değiştirilemez.
Not
Kaydın sahibi olan departmanı değiştirirken, basamaklama efektleri için aşağıdakilere göz atın: Basamaklama davranışını yapılandırmak için .NET SDK'sını kullanma.
Özellik anahtarı AÇIK olduğunda, kullanıcınızın Sahibi Olan Departman sütununu ayarlanmasına izin vermek isteyip istemediğinizi yönetebilirsiniz. Sahibi Olan Departman sütununu ayarlamak için, kullanıcının güvenlik rolüne Departman tablosunun Şuraya Ekle ayrıcalığını yerel düzeyde izinle sağlamanız gerekir.
Kullanıcınızın bu sütunu ayarlanmasına izin vermek için, bu sütunu aşağıdaki şekilde etkinleştirebilirsiniz:
- Form - hem gövde hem de başlık.
- Görünüm.
- Sütun eşlemeleri. AutoMapEntity kullanıyorsanız, sütun eşleştirmenizdeki sütunu belirtebilirsiniz.
Not
Ortamlar arasında verileri eşitlemek için bir işiniz/işleminiz varsa ve Sahibi Olan Departman şemanın bir parçası olarak dahil edildiyse, hedef ortamdaki değerin Sahibi Olan Departman değeriyle aynı olmaması durumunda işiniz Yabancı ANAHTAR kısıtlamasının ihlal edilmesi nedeniyle başarısız olacaktır.
Sahibi Olan Departman sütununu kaynak şemadan kaldırabilir veya Kaynağın Sahibi Olan Departman sütunu değerini hedefin departmanlarından biri olacak şekilde güncelleştirebilirsiniz.
Bir ortamdaki verileri harici bir kaynağa kopyalama işiniz/işleminiz varsa (örneğin Power BI) kaynakta Sahibi Olan Departman sütununu seçmeniz veya seçimini kaldırmanız gerekir. Kaynağınız bu alanı alabilecekse seçin aksi takdirde seçimi kaldırın.
Tablo/kayıt sahipliği
Dataverse, iki tür kayıt sahipliğini destekler. Kuruluşa ait ve Kullanıcı veya Takıma ait. Bu, tablo oluşturulurken yapılan bir seçimdir ve değiştirilemez. Güvenlik nedenleriyle, kuruluşa ait kayıtlarda sunulan tek erişim düzeyi seçenekleri kullanıcının işlemi yapıp yapamayacağıdır. Kullanıcı ve takıma ait kayıtlar için çoğu ayrıcalıkla ilgili erişim düzeyi seçenekleri Kuruluş, Departman, Departman ve Alt Departman veya yalnızca kullanıcının kendi kayıtları katmanlarına sahiptir. Bu, ilgili kişilerin okuma ayrıcalığı anlamına gelir, kullanıcı sahipliğini ayarlayabilirim ve kullanıcı sadece kendi kayıtlarını görebilir.
Başka bir örnek vermek gerekirse, A Kullanıcısının A Bölümü ile ilişkilendirildiğini ve Departman düzeyinde İlgili Kişi Okuma erişimi verdiğimizi varsayalım. 1. İlgili Kişi ve 2. İlgili Kişi'yi görebilir ancak 3. İlgili Kişi'yi göremez.
Güvenlik rolü ayrıcalıklarını yapılandırdığınızda veya düzenlediğinizde, her seçenek için erişim düzeyini ayarlarsınız. Aşağıda, Güvenlik Rolü ayrıcalık düzenleyicisine bir örnek verilmiştir.
Yukarıda, her tablo için standart ayrıcalık türlerini görebilirsiniz: Oluşturma, Okuma, Yazma, Silme, Ekleme, Şuraya Ekleme, Atama ve Paylaşma. Bunların her birini ayrı ayrı düzenleyebilirsiniz. Her birinin görsel görüntüsü, verdiğiniz erişim düzeyine göre aşağıdaki anahtarla eşleşir.
Yukarıdaki örnekte, İlgili Kişi'ye kuruluş düzeyinde erişim izni verdik, bu da A Bölümü'ndeki kullanıcının herhangi birinin sahip olduğu ilgili kişileri görebileceği ve güncelleştirebileceği anlamına gelir. Aslında, en sık karşılaşılan yönetimsel hatalardan biri izinler konusunda huzursuzlanarak hemen erişim izni vermektir. İyi hazırlanmış bir güvenlik modeli, hızlı bir şekilde İsviçre peyniri gibi görünmeye başlar (deliklerle dolu!).
Modern Departmanlarda Kayıt Sahipliği
Modern departmanlar'da, kullanıcıların herhangi bir departmanda kayıt sahipleri olmasını sağlayabilirsiniz. Kullanıcının ihtiyacı olan tek şey kayıt tablosu için Okuma ayrıcalığı olan bir güvenlik rolüdür (herhangi bir departmanda). Kullanıcıların, kaydın bulunduğu her bir departmanda atanmış bir güvenlik rolü olması gerekmez.
Önizleme döneminde üretim ortamınızda Departmanlar arasında kayıt sahipliği etkinleştirilmişse bu kayıt sahipliğini departmanda etkinleştirmek için aşağıdakileri yapmanız gerekir:
- Kuruluş Ayarları düzenleyicisini yükleyin
- RecomputeOwnershipAcrossBusinessUnits kuruluş ayarlarını doğru olarak ayarlayın. Bu ayar doğru olarak ayarlanırsa sistem kilitlenir ve sistemin, kullanıcıların artık her bir departmandan atanan ayrı güvenlik rolüne gereksinim duymadan departmanlar genelinde kayıtlara sahip olabilmesini sağlamak için yeniden hesaplama yapması 5 dakika kadar sürebilir. Bu işlem, bir kaydın sahibinin kaydını kaydın sahibi olan departmanın dışındaki bir departmana atamasına olanak tanır.
- AlwaysMoveRecordToOwnerBusinessUnit ayarını yanlış olarak ayarlayın. Bu, kayıt sahipliği değiştirildiğinde kaydın başlangıçta sahibi olan departmanda kalmasını sağlar.
Tüm üretim dışı ortamlarda, bu özelliği kullanmak için AlwaysMoveRecordToOwnerBusinessUnit ayarını yanlış olarak ayarlamanız gerekir.
Not
Microsoft Dynamics CRM için OrgDBOrgSettings aracını kullanarak Departmanlar genelinde kayıt sahipliği özelliğini kapatırsanız veya RecomputeOwnershipAcrossBusinessUnits ayarını yanlış olarak ayarlarsanız Sahibi Olan Departman alanını ayarlayamaz ya da güncelleştiremezsiniz ve Sahibi Olan Departman alanının sahibinin departmanından farklı olduğu tüm kayıtlar, sahibinin departmanına göre güncelleştirilir.
Takımlar (grup takımları dahil)
Takımlar, bir diğer önemli güvenlik yapı taşıdır. Takımlar, bir Departmana aittir. Her Departmanın, departman oluşturulurken otomatik olarak oluşturulan bir takımı vardır. Varsayılan takım üyeleri Dataverse tarafından yönetilir ve her zaman bu Departman ile ilişkilendirilmiş tüm kullanıcıları içerir. Varsayılan takım üyelerini el ile ekleyemez veya kaldıramazsınız. Yeni kullanıcılar departmanlarla ilişkilendirildiğinde veya kullanıcıların departmanlarla ilişkilendirilmesi kaldırıldığında varsayılan takım üyeleri sistem tarafından dinamik olarak ayarlanır. İki tür takım vardır: sahibi olan takımlar ve erişim takımları.
- Sahibi Olan Takımlar, kayıtlara sahip olabilir. Bu durum tüm takım üyelerine kayda doğrudan erişim izni verir. Kullanıcılar birden fazla takımın üyesi olabilir. Bu, kullanıcılara bireysel kullanıcı düzeyinde mikro yönetim erişimi olmadan geniş bir şekilde izinler verebilmek için güçlü bir yol sağlar.
- Erişim takımları, kayıt paylaşımının parçası olarak sonraki bölümde açıklanmaktadır.
Kayıt paylaşma
Bireysel kayıtlar başka bir kullanıcıyla tek tek paylaşılabilir. Bu, kayıt sahipliğine düşmeyen veya bir departman erişim modelinin üyesi olan özel durumları ele almanın güçlü bir yoludur. Bu, erişimi denetlemenin daha az verimli bir yöntemi olduğundan özel bir durum olmalıdır. Paylaşım, tutarlı şekilde uygulanan bir erişim denetimi olmadığından sorun gidermesi daha zordur. Paylaşım, kullanıcı ve takım düzeyinde yapılabilir. Takımla paylaşmak, paylaşmanın daha verimli bir yoludur. Daha gelişmiş bir paylaşım kavramı, bir takımı otomatik olarak oluşturmanızı ve kayıt erişiminin takımla paylaşılmasını sağlayan Erişim Takımları iledir; bu, uygulanan bir Erişim Takımı Şablonunu (izinler şablonu) temel alır. Erişim takımları şablonları olmadan da kullanılabilir; üyelerini el ile ekler veya kaldırırlar. Erişim takımları daha performanslıdır çünkü takımın kayıtlara veya takıma atanmış güvenlik rollerine sahip olmasına izin vermezler. Kayıt, takımla paylaşıldığından ve kullanıcı bir üye olduğundan kullanıcılar erişebilir.
Dataverse'te kayıt düzeyinde güvenlik
Bir kayda erişimi neyin belirlediğini merak ediyor olabilirsiniz. Bu basit bir soru gibi görünse de, herhangi bir kullanıcı için tüm güvenlik rollerinin, ilişkili oldukları iş biriminin, üyesi oldukları ekiplerin ve kendileriyle paylaşılan kayıtların birleşimidir. Hatırlanması gereken en önemli şey, tüm erişimin Dataverse veritabanı ortamı kapsamındaki tüm bu kavramlar üzerinde birikimli olmasıdır. Bu destek hakları yalnızca tek bir veritabanında verilir ve her Dataverse veritabanında bağımsız olarak izlenir. Bunların tümü için Dataverse'e erişime yönelik uygun bir lisanslarının olması gerekir.
Dataverse'de sütun düzeyine güvenlik
Bazen kayıt düzeyinde erişim denetimi bazı iş senaryoları için yeterli değildir. Dataverse, sütun düzeyinde daha ayrıntılı bir güvenlik denetimi sağlayan bir sütun düzeyinde güvenlik özelliğine sahiptir. Sütun düzeyinde güvenlik, tüm özel sütunlarda ve çoğu sistem sütununda etkinleştirilebilir. Kişisel tanımlayıcı bilgiler (PII) içeren çoğu sistem sütununun güvenliği ayrı ayrı sağlanabilir. Her sütunun meta verileri, bunun sistem sütunu için uygun bir seçenek olup olmadığını tanımlar.
Sütun düzeyinde güvenlik, her sütun için ayrı ayrı etkinleştirilir. Erişim daha sonra bir Sütun Güvenlik Profili oluşturularak yönetilir. Profil, sütun düzeyinde güvenliği etkin olan tüm sütunları ve söz konusu profil tarafından verilen erişimi içerir. Her sütun; Oluşturma, Güncelleştirme ve Okuma erişimleri için profil içinde denetlenebilir. Sütun Güvenlik Profilleri daha sonra, kullanıcılara zaten erişebildikleri kayıtlara bu ayrıcalıkları vermek için bir kullanıcı veya Takımlarla ilişkilendirilir. Sütun düzeyinde güvenliğin, kayıt düzeyi güvenliğiyle hiçbir ilgisinin olmadığını unutmayın. Bir kullanıcının sütunlara erişmesine izin verebilmeniz için söz konusu kullanıcının zaten Sütun Güvenliği Profili için kayda erişim izninin olması gerekir. Sütun düzeyinde güvenlik, fazla kullanımında zararlı ek yükler getirebileceği için aşırı değil gerektiğinde kullanılmalıdır.
Birden çok ortamda güvenliği yönetme
Güvenlik rolleri ve Sütun Güvenlik Profilleri, Dataverse çözümleri kullanılarak bir ortamdan diğerine paketlenebilir ve taşınabilir. Her ortamda gerekli güvenlik bileşenlerine kullanıcı atanmasıyla birlikte Departmanlar ve Takımlar oluşturulmalı ve yönetilmelidir.
Kullanıcı ortam güvenliğini yapılandırma
Roller, takımlar ve departmanlar bir ortamda oluşturulduktan sonra, kullanıcıları güvenlik yapılandırmalarına atamanız gerekir. İlk olarak, bir kullanıcı oluşturduğunuzda, kullanıcıyı bir departmanla ilişkilendirirsiniz. Varsayılan olarak bu, kuruluştaki kök departmandır. Bu kullanıcı, söz konusu departmanın varsayılan takımına da eklenir.
Ek olarak, kullanıcının ihtiyaç duyduğu tüm güvenlik rollerini atayabilirsiniz. Onları herhangi bir takımın üyesi olarak da ekleyebilirsiniz. Takımların güvenlik rollerine de sahip olabileceğini unutmayın. Bu nedenle kullanıcının etkin hakları, doğrudan atanan güvenlik rolleri ile üyeleri oldukları takımların güvenlik rollerinin birleşimidir. Güvenlik her zaman, yetkilendirmelerinden herhangi birinin en az kısıtlayıcı iznini sunan katkı maddesidir. Aşağıda, ortam güvenliğini yapılandırma konusunda iyi bir kılavuz bulunmaktadır.
Sütun düzeyinde güvenlik kullandıysanız, kullanıcıyı veya kullanıcının takımının oluşturduğunuz Sütun Güvenlikleri Profillerinden biriyle ilişkilendirmeniz gerekir.
Güvenlik karmaşık bir makaledir ve en iyi şekilde uygulama oluşturucuları ile kullanıcıların izinlerini yöneten ekip arasında ortak bir çaba olarak gerçekleştirilir. Tüm büyük değişiklikler, değişiklikleri ortama dağıtmadan önce iyi eşgüdümlenmelidir.
Ayrıca bkz.
Ortam güvenliğini yapılandırma
Güvenlik rolleri ve ayrıcalıkları