本文將引導你如何在 Microsoft Entra ID(前身為 Azure Active Directory)建立一個群組,並將該群組指定為 Directory Readers角色。 角色指派允許群組擁有者為 Azure Synapse Analytics 資源新增管理身份到群組中。 此方法可避免要求 特殊權限角色系統管理員 直接將目錄讀取者角色指派給每個身分。
此教學課程使用了使用 Microsoft Entra 群組來管理角色指派中介紹的功能。
注意
Microsoft Entra server principals 目前正處於 Azure Synapse Analytics 的預覽階段。
你可以不指派目錄讀取者角色,而是依照最小權限原則,指派較低層級的 Microsoft Graph 權限。 欲了解更多資訊,請參閱 Microsoft Entra for Azure Synapse Analytics 的 Managed identities。
Prerequisites
- 微軟 Entra 租戶。 欲了解更多資訊,請參閱「設定及管理搭配 Azure Synapse Analytics 使用的 Microsoft Entra 驗證」。
- 一個 Azure Synapse 工作空間或者一個獨立專用 SQL 池。
使用 Azure 入口網站指派 Directory Readers 角色
建立新的群組,並指派擁有者和角色
- 你需要一個擁有 特權角色管理員 權限的使用者來進行初始設定。
- 讓有權限的使用者登入 Azure 入口網站。
- 移至 Microsoft Entra ID 資源。 在 [管理] 底下,移至 [ 群組]。 選取 [新增群組] 來建立新的群組。
- 選取 [安全性] 作為群組類型,然後填妥其餘欄位。 確保可將 Microsoft Entra 角色指派給群組設定已切換為「是」。 然後將 Microsoft Entra ID [目錄讀取者] 角色指派給群組。
- 指派 Microsoft Entra 使用者為群組擁有者。 群組擁有者可以是一般的 Microsoft Entra 使用者,而不具管理員角色。 擁有者應該是管理你 Azure Synapse 資源的使用者。
- 選擇創建。
檢查你建立的群組
注意
確保 群組類型 是 安全性。 Azure Synapse SQL 不支援 Microsoft 365 群組。
要檢查和管理你建立的群組,回到 Azure 入口網站的群組面板,搜尋你的群組名稱。 選擇群組後,您可以在管理設定的擁有者與成員選單中新增更多擁有者和成員。 也可以檢閱群組的指派角色。
將 Azure Synapse 受控識別新增至群組
接下來的步驟,您不再需要特權角色管理員(Privileged Role Administrator)使用者。
以管理 Azure Synapse 資源並擁有你所建立群組的使用者身份登入 Azure 入口網站。
尋找您 Azure Synapse 工作區的受控識別。 關於工作空間識別的資訊,請參閱 Azure Synapse Analytics 的受控服務識別。
在 Microsoft Entra ID 中,於 管理 底下,選取 企業應用程式。 搜尋受控識別,並記錄其 物件 ID。
在 Microsoft Entra ID 中,在管理下,選擇群組。 選擇你建立的群組,然後選擇 成員>新增成員。 搜尋並新增 Azure Synapse 受控識別。
注意
權限傳播並允許存取 Microsoft Graph 可能需要幾分鐘。
Remarks
你可以在 邏輯伺服器 建立時建立伺服器身分識別,或在伺服器建立後建立伺服器身分識別。 欲了解更多如何在 Azure Synapse 建立或設定伺服器身分識別的資訊,請參閱 Azure Synapse Analytics 的受控識別。
在為邏輯伺服器設定 Microsoft Entra 管理員時,Azure Synapse 不需要將目錄讀取器角色指派給伺服器身份。 然而,若要在 Azure Synapse 中代表 Microsoft Entra 應用程式建立 Microsoft Entra 物件,則需要 Directory Readers 角色(或 Microsoft Entra 中 Azure SQL 的受控識別中討論的較低層級權限)。 如果你沒有將角色指派給邏輯伺服器身份,建立 Microsoft Entra 使用者就會失敗。
使用 PowerShell 進行目錄讀取者角色的指派
Important
特 權角色管理員 需要執行這些初步步驟。 除了 PowerShell 之外,Microsoft Entra ID 還提供 Microsoft 圖形 API,以 在 Microsoft Entra ID 中建立角色可指派的群組。
請使用以下指令下載 Microsoft Graph PowerShell 模組。 您可能需要以系統管理員身分執行 PowerShell。
Install-Module Microsoft.Graph.Authentication Import-Module Microsoft.Graph.Authentication # To verify that the module is ready to use, run the following command: Get-Module Microsoft.Graph.Authentication連線至您的 Microsoft Entra 租用戶。
Connect-MgGraph建立安全組以指派目錄讀取者角色。
-
DirectoryReaderGroup、Directory Reader Group、和DirRead可以根據您的喜好設定進行變更。
$group = New-MgGroup -DisplayName "DirectoryReaderGroup" -Description "Directory Reader Group" -SecurityEnabled:$true -IsAssignableToRole:$true -MailEnabled:$false -MailNickname "DirRead" $group-
將 Directory Readers 角色指派給該群組。
# Displays the Directory Readers role information $roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Directory Readers'" $roleDefinition# Assigns the Directory Readers role to the group $roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId '/' -RoleDefinitionId $roleDefinition.Id -PrincipalId $group.Id $roleAssignment將擁有者指派給群組。
- 將
<username>替換為您希望擁有此群組的使用者。 透過重複這些步驟來增加多位擁有者。
$newGroupOwner = Get-MgUser -UserId "<username>" $newGroupOwner$GrOwner = New-MgGroupOwnerByRef -GroupId $group.Id -OdataId "https://graph.microsoft.com/v1.0/users/$($newGroupOwner.Id)"檢查群組的擁有者:
Get-MgGroupOwner -GroupId $group.Id也可以在 Azure 入口網站驗證群組的擁有者。 要檢查你所建立的群組,請參見 「檢查已建立的群組」。
- 將
將服務主體指派為群組的成員
接下來的步驟,您不再需要特權角色管理員(Privileged Role Administrator)使用者。
作為一位群組擁有者,同時也管理 Azure Synapse 資源,請執行以下指令連接 Microsoft Entra ID。
Connect-MgGraph將服務主體指派為你所建立群組的成員。
- 將
<ServerName>替換為您的邏輯伺服器或受控執行個體的名稱。 欲了解更多資訊,請參閱「Add Azure SQL service identity to the group」章節。
# Returns the service principal of your Azure SQL resource $managedIdentity = Get-MgServicePrincipal -Filter "displayName eq '<ServerName>'" $managedIdentity# Adds the service principal to the group New-MgGroupMember -GroupId $group.Id -DirectoryObjectId $managedIdentity.Id下列命令會傳回服務主體物件識別碼,指出其已新增至群組:
Get-MgGroupMember -GroupId $group.Id -Filter "Id eq '$($managedIdentity.Id)'"- 將