Microsoft Dataverse 中的安全性概念

Dataverse 的其中一項重要功能是可適應許多業務使用案例的豐富安全性模型。 只有在環境中有 Dataverse 資料庫時,這種安全性模型才能發揮作用。 身為管理員,您可能不會自己建置整個安全模型,但通常會參與管理使用者、確保他們具有正確的設定,和疑難排解安全存取相關問題的過程。

角色安全性

Dataverse 使用角色安全性,將權限集合集中在一起。 這些資訊安全角色可以直接關聯至使用者,或者可以與 Dataverse 團隊和業務單位相關聯。 然後,使用者就可以與團隊建立關聯,因此與團隊關聯的所有使用者都將受益於該角色。 需了解的一個 Dataverse 安全性主要概念:所有權限授予都是累積的,具有最廣泛的存取權。 如果您對所有連絡人記錄授與廣泛組織層級的讀取存取權,您將無法返回並隱藏單一記錄。

業務單位

提示

視訊符號 觀看下列影片:現代化業務單位

將業務單位與資訊安全角色一起使用,以確定使用者擁有的有效安全性。 業務單位是一種安全性模型構成要素,可協助管理使用者和他們可以存取的資料。 業務單位定義安全性界限。 每個 Dataverse 資料庫都有一個基本業務單位。

您可以建立子業務單位以助於進一步細分您的使用者和資料。 指派至環境的每個使用者都將屬於業務單位。 雖然業務單位可以用來為真實的組織階層建立 1:1 的模型,但是它們通常更傾向於僅定義協助達成安全性模型需求的安全性界限。

為了更好地理解,請看以下範例。 我們有三個業務單位。 Woodgrove 是基本業務單位,而且總是位於最頂端,這是不可改變的。 我們還建立了另外兩個下層業務單位 A 和 B。這些業務單位中的使用者具有截然不同的存取需求。 當我們將使用者與此環境關聯時,我們可以將使用者設定為這三種業務單位中的一種。 使用者的關聯位置將會決定哪個業務單位擁有使用者為負責人的記錄。 擁有關聯可讓我們量身打造資訊安全角色,讓使用者可以查看該業務單位中的所有記錄。

階層式資料存取結構

客戶可以使用組織結構,讓資料和使用者劃分為樹狀階層。

當我們將使用者與此環境建立關聯時,我們可以將使用者設定為這三個業務單位之一,並將業務單位的資訊安全角色指派給使用者。 使用者建立記錄時,與使用者相關的業務單位會決定哪些業務單位擁有記錄。 透過擁有關聯,可讓我們量身打造資訊安全角色,讓使用者可以查看該業務單位中的記錄。

使用者 A 與部門 A 相關聯,並指派了部門 A 的資訊安全角色 Y。這可讓使用者 A 存取連絡人 #1 和連絡人 #2 記錄。 部門 B 中的使用者 B 無法存取部門 A 的連絡人記錄,但是可以存取連絡人 #3 記錄。

矩陣資料存取結構範例

矩陣資料存取結構 (現代化業務單位)

客戶可以使用資料以樹狀階層劃分的組織結構,且使用者可以使用和存取任何業務單位的資料,不論該使用者被指派到哪個業務單位。

當我們將使用者與此環境關聯時,我們可以將使用者設定為這三種業務單位中的一種。 對於使用者需要存取資料的各業務單位,會指派該業務單位的資訊安全角色給使用者。 當使用者建立記錄時,使用者可以將業務單位設定成擁有該記錄。

使用者 A 可以與任何業務單位關聯,包括基本業務單位。 將部門 A 的資訊安全角色 Y 指派給使用者 A,讓使用者可存取連絡人 #1 和連絡人 #2 記錄。 將部門 B 的資訊安全角色 Y 指派給使用者 A,讓使用者可存取連絡人 #3 記錄。

階層式資料存取結構範例

啟用矩陣資料存取結構

注意

啟用此功能之前,必須發佈您所有的自訂,此功能才能啟用所有新的未發佈資料表。 如果發現您有未發佈的資料表無法在開啟此功能後使用該功能,則可以使用 OrgDBOrgSettings tool for Microsoft Dynamics CRM 來設定 RecomputeOwnershipAcrossBusinessUnits 設定。 將 RecomputeOwnershipAcrossBusinessUnits 設定為 true 時,允許設定和更新負責業務單位欄位。

  1. 以系統管理員身分登入 Power Platform 系統管理中心 (Dynamics 365 系統管理員、全域管理員 或 Microsoft Power Platform 系統管理員)。
  2. 選取環境,然後選擇要為其啟用此功能的環境。
  3. 選取設定>產品>功能
  4. 開啟跨業務單位的記錄擁有權開關。

開啟此功能開關後,您可以在為使用者指派資訊安全角色時,選取業務單位。 這可讓您將不同業務單位的資訊安全角色指派給使用者。 還需要指派使用者業務單位的資訊安全角色以及使用者設定權限,以執行模型導向應用程式。 您可以參考基本使用者資訊安全角色來尋找如何啟用這些使用者設定權限。

您可以將使用者指派為任何業務單位的記錄負責人,而不需要在記錄的擁有業務單位中指派資訊安全角色,只要使用者的資訊安全角色擁有對記錄資料表的讀取權限即可。 請參閱現代化業務單位中的記錄擁有權

Note

此功能開關會儲存在 EnableOwnershipAcrossBusinessUnits 設定中,您可以使用 Microsoft Dynamics CRM 的 OrgDBOrgSettings 工具進行設定。

將業務單位與 Microsoft Entra 安全性群組關聯

您可以使用 Microsoft Entra 安全性群組來對應您的業務單位,以簡化您的使用者管理和角色指派。

為每個業務單位建立 Microsoft Entra 安全性群組,並將各自的業務單位資訊安全角色指派給每個群組團隊。

為每個業務單位建立 Microsoft Entra 安全性群組。

為每個業務單位建立 Microsoft Entra 安全性群組。 為每個 Microsoft Entra 安全性群組建立 Dataverse 群組團隊。 將業務單位的相應資訊安全角色指派給各個 Dataverse 群組團隊。 上圖中的使用者會在使用者存取環境時在基本業務單位中建立。 可以將使用者和 Dataverse 群組團隊置於基本業務單位。 他們只能存取已指派資訊安全角色的業務單位中的資料。

將使用者新增至相應的 Microsoft Entra 安全性群組,以授與他們存取業務單位的權限。 使用者可以立即執行應用程式並存取其資源/資料。

矩陣資料存取中,使用者可以使用和存取多個業務單位的資料,將使用者新增至對應至這些業務單位的 Microsoft Entra 安全性群組。

負責業務單位

每個記錄都會有負責業務單位資料行,用於判斷哪個業務單位擁有該記錄。 此資料行在建立記錄時預設為使用者的業務單位,除非將功能開關「開啟」,否則無法變更。

Note

當您更改擁有記錄的業務單位時,請務必檢查以下是否有階層式效應:使用 .NET 的 SDK 設定階層式行為

當功能開關「開啟」後,您可以管理是否允許使用者設定擁有業務單位資料行。 若要設定擁有業務單位資料行,您必須授與使用者資訊安全角色業務單位資料表附加及附加至權限和本機層級權限。

若要讓您的使用者可以設定此資料行,您可以在下方內容中啟用此資料行:

  1. 表單 - 正文和標題。
  2. 檢視。
  3. 資料行對應。 如果您使用的是 AutoMapEntity,則可以在資料行對應中指定資料行。

Note

如果您有一個在環境之間同步資料的作業/流程,且有 Owning Business Unit 作為結構描述的一部分,如果目標環境不存在,您的作業將失敗並出現 Foreign KEY 約束違規不具有相同的 Owning Business Unit 值。

您可以從來源結構描述移除擁有業務單位資料行,或是將來源的擁有業務單位資料行值更新為目標的任何業務單位。

如果您的工作/程序可將資料從環境複製到外部資源 (例如 PowerBI),則必須選取或取消選取來源中的擁有業務單位資料行。 如果您的來源可以接受,請選取該選項,否則請取消選取該選項。

資料表/記錄擁有權

Dataverse 支援兩種類型的記錄擁有權。 組織擁有,和使用者或團隊擁有。 這是在建立資料表會出現的選擇,無法變更。 為了安全起見,對於組織擁有的記錄,唯一的存取層級選項是使用者可執行作業或不能執行作業。 對於使用者和團隊擁有的記錄,大多數權限的存取層級選項為組織、業務單位、業務部門、業務部門和下層業務單位,或僅是使用者自己的記錄。 這表示針對連絡人的讀取權限,可以設定使用者擁有的權限,而使用者只能看到自己的記錄。

再舉一個例子,假設使用者 A 與部門 A 關聯,而且我們授予他們對連絡人的業務單位層級讀取權限。 他們能夠看到連絡人 #1 和 #2,但看不到連絡人 #3。

在設定或編輯資訊安全角色權限時,您就在設定每個選項的存取層級。 以下是資訊安全角色權限編輯器的範例。

資訊安全角色權限。

在上述內容中,您可以看到每個資料表的標準權限類型:建立、讀取、寫入、刪除、附加、附加至、指派及共用。 您可以分別編輯每一項。 每個項目的視覺顯示都將對應下方的金鑰,以表示您授與的存取層級。

資訊安全角色權限金鑰。

在上述範例中,我們提供了組織層級的連絡人存取權,這表示部門 A 中的使用者可以看到並更新任何人所擁有的連絡人。 事實上,其中一項最常見的系統管理錯誤是對權限感到挫折,並且過度授予存取權。 很快地,精心設計的安全性模型開始看起來像瑞士奶酪 (千瘡百孔!)。

現代化業務單位中的記錄擁有權

現代化業務單位中,您可以讓使用者成為任何業務單位的記錄負責人。 所有的使用者都必須是對記錄資料表擁有讀取權限的資訊安全角色 (任何業務單位)。 使用者不需要在記錄所在的每個業務單位中指派資訊安全角色。

如果您的生產環境已在預覽版期間啟用跨業務單位的記錄擁有權,則必須執行下列動作,才能在各業務單位中啟用此記錄擁有權:

  1. 安裝組織設定編輯器
  2. RecomputeOwnershipAcrossBusinessUnits 組織設定設為 True。 將此設定設定為 true 時,系統會遭鎖定,可能需要最多 5 分鐘的時間執行重新計算,以啟用使用者現在不需要為每個業務單位指派不同資訊安全角色也可以跨業務單位擁有記錄的功能。 這樣讓記錄負責人將其記錄指派給該記錄所屬業務單位以外的人員。
  3. AlwaysMoveRecordToOwnerBusinessUnit 設定為 False。 這可讓記錄在記錄擁有權變更時保留在原始的擁有業務單位中。

對於所有非生產環境,您只需將 AlwaysMoveRecordToOwnerBusinessUnit 設定為 False,即可使用此功能。

Note

如果您關閉跨營業單位的記錄擁有權功能,或是使用 Microsoft Dynamics CRM 的 OrgDBOrgSettings 工具RecomputeOwnershipAcrossBusinessUnits 設定設為 false,則無法設定或更新負責業務單位欄位,而所有與擁有者業務單位不同之負責業務單位欄位所在的記錄都會更新為擁有者的業務單位。

Teams (包括 群組團隊)

Teams 是另一個重要的安全性構成要素。 Teams 由業務單位所擁有。 每個業務單位都有一個預設團隊,會在建立業務單位時自動建立。 預設團隊成員是由 Dataverse 管理,並始終包含與該業務單位關聯的所有使用者。 您無法手動從預設團隊中新增或移除成員,系統會根據新使用者與業務單位的關聯/解除關聯,對其進行動態調整。 團隊有兩種類型:擁有團隊和存取團隊。

  • 擁有團隊可以擁有記錄,這可讓所有團隊成員直接存取該記錄。 使用者可以是多個團隊的成員。 如此一來,就能以廣泛的方式向使用者授予權限,而不需要在單一使用者層級微觀管理存取權。
  • 下一節將討論存取團隊,做為記錄共用的一部分。

共用記錄

您可以將單一記錄與其他使用者一對一共用。 這是一種有效的方式,可處理不屬於記錄擁有權或業務單位存取模型成員的例外狀況。 但是,這不該是常態,因其控制存取權的效能較低。 共用很難進行疑難排解,因為它不是一致地實施存取控制。 您可以在使用者和團隊層級執行共用。 與團隊共用是更有效的共用方式。 更進階的共用概念是使用存取團隊,提供自動建立團隊,並根據所套用的存取團隊範本(權限範本),為團隊共用記錄存取權。 存取團隊也可以不使用範本,只需手動新增或移除其成員即可。 存取團隊不允許團隊擁有記錄,也不允許將資訊安全角色指派給團隊,因此效能較好。 因為該記錄是與團隊共用且使用者為成員,所以使用者可取得存取權。

Dataverse 中的記錄層級安全性

您可能想知道,什麼可以決定對記錄的存取? 好像是個簡單的問題,但對於任何給定的使用者,它都是所有資訊安全角色、與其關聯的業務單位、團隊的成員,以及與他們共用之記錄的組合。 重要的是要記住,所有的存取都是在 Dataverse 資料庫環境範圍中所有這些概念的累積。 這些權利僅在單一資料庫中授與,並在每個 Dataverse 資料庫中進行個別追蹤。 這一切都需要他們具有存取 Dataverse 的適當授權。

Dataverse 中的資料行層級安全性

有時,記錄層級的存取對某些商業案例而言並不足夠。 Dataverse 具有資料行層級安全性功能,可讓您在資料行層級更加精細地控制安全性。 您可以在所有自訂資料行和大部分系統資料行上啟用資料行層級安全性。 大多數包含個人可識別資訊 (PII) 的系統資料行都可以個別受到保護。 每個資料行的中繼資料都會定義這是否為系統資料行的可用選項。

資料行層級安全性是按資料行逐一啟用。 接著透過建立資料行安全性設定檔來管理存取。 設定檔包含所有已啟用資料行層級安全性的資料行,以及該特定設定檔所授與的存取權。 您可以在設定檔中控制每個資料行的建立、更新和讀取存取權。 資料行安全性設定檔接著會與使用者或 Teams 建立關聯,將使用者的這些權限授與他們已經有權存取的記錄。 請務必注意,資料行層級安全性與記錄層級安全性無關。 使用者必須已經有資料行安全性設定檔記錄的存取權,才能將欄位的任何存取權授與他們。 資料行層級的安全性應視需要使用,不可過度使用,因為使用過多可能會增加不利的額外負荷。

管理多個環境的安全性

資訊安全角色和資料行安全性設定檔可以封裝起來,並使用 Dataverse 解決方案從一個環境移至下一個環境。 業務單位和團隊必須在每個環境中建立並管理,並將使用者指派給必要的安全性元件。

設定使用者環境安全性

在環境中建立角色、團隊和業務單位後,就該為使用者指派其安全性設定了。 首先,在建立使用者時,將使用者與業務單位相關聯。 根據預設,這是組織中的基本業務單位。 他們也會新增至該業務單位的預設團隊中。

此外,您可以指派任何使用者所需的資訊安全角色。 您也可以將它們新增為任何團隊的成員。 請記住,團隊也可以具有資訊安全角色,因此使用者的有效權限結合了直接指派資訊安全角色與其所隸屬之任何團隊的資訊安全角色。 安全性一律是相加的,提供所有權利中限制最少的權限。 以下是設定環境安全性的良好逐步解說。

如果您使用資料行層級安全性,則需要將使用者或使用者團隊與您建立的其中一個資料行安全性設定檔相關聯。

安全性是篇複雜的文章,最好由應用程式製作者和管理使用者權限的團隊共同努力來實現。 在將變更部署到環境之前,必須協調任何重大變更。

請參閱

設定環境安全性
資訊安全角色和權限