在 Azure Stack Hub 中設定多重租用

您可以設定 Azure Stack Hub,以支援位於其他Microsoft Entra目錄中的使用者登入,讓他們能夠使用 Azure Stack Hub 中的服務。 這些目錄與您的 Azure Stack Hub 目錄具有「來賓」關聯性,而且會被視為來賓Microsoft Entra租使用者。

例如,請考慮以下的狀況:

  • 您是 contoso.onmicrosoft.com 的服務管理員,這是提供 Azure Stack Hub 身分識別和存取管理服務的主Microsoft Entra租使用者。
  • Mary 是 adatum.onmicrosoft.com 的目錄管理員,是來賓使用者所在的來賓Microsoft Entra租使用者。
  • Mary 的公司 (Adatum) 使用來自您公司的 IaaS 和 PaaS 服務。 Adatum 想要允許來賓目錄 (adatum.onmicrosoft.com) 中的使用者登入,並使用受 contoso.onmicrosoft.com 保護的 Azure Stack Hub 資源。

本指南提供在此情況下,為來賓目錄租用戶啟用或停用 Azure Stack Hub 中多租用戶所需的步驟。 您和 Mary 會透過註冊或取消註冊來賓目錄租用戶來完成此程序,以啟用或停用 Adatum 使用者的 Azure Stack Hub 登入和服務使用。

如果您是雲端解決方案提供者 (CSP),還有其他方式可設定和管理多租用戶 Azure Stack Hub

必要條件

註冊或取消註冊來賓目錄之前,您和 Mary 必須完成個別Microsoft Entra租使用者的系統管理步驟:Azure Stack Hub 主目錄 (Contoso) ,以及 adatum (客體目錄) :

註冊來賓目錄

若要註冊多租用戶的來賓目錄,您必須同時設定 Azure Stack Hub 主目錄和來賓目錄。

設定 Azure Stack Hub 目錄

身為 contoso.onmicrosoft.com 的服務管理員,您必須先將 Adatum 的來賓目錄租用戶連線到 Azure Stack Hub。 下列指令碼會將 Azure Resource Manager 設定為接受 adatum.onmicrosoft.com 租用戶中的使用者和服務主體登入:

## The following Azure Resource Manager endpoint is for the ASDK. If you're in a multinode environment, contact your operator or service provider to get the endpoint, formatted as adminmanagement.<region>.<FQDN>.
$adminARMEndpoint = "https://adminmanagement.local.azurestack.external"

## Replace the value below with the Azure Stack Hub directory
$azureStackDirectoryTenant = "contoso.onmicrosoft.com"

## Replace the value below with the guest directory tenant. 
$guestDirectoryTenantToBeOnboarded = "adatum.onmicrosoft.com"

## Replace the value below with the name of the resource group in which the directory tenant registration resource should be created (resource group must already exist).
$ResourceGroupName = "system.local"

## Replace the value below with the region location of the resource group.
$location = "local"

# Subscription Name
$SubscriptionName = "Default Provider Subscription"

Register-AzSGuestDirectoryTenant -AdminResourceManagerEndpoint $adminARMEndpoint `
 -DirectoryTenantName $azureStackDirectoryTenant `
 -GuestDirectoryTenantName $guestDirectoryTenantToBeOnboarded `
 -Location $location `
 -ResourceGroupName $ResourceGroupName `
 -SubscriptionName $SubscriptionName

設定來賓目錄

接下來,Mary (Adatum 的目錄管理員) 必須執行下列指令碼,向 adatum.onmicrosoft.com 來賓目錄註冊 Azure Stack Hub:

## The following Azure Resource Manager endpoint is for the ASDK. If you're in a multinode environment, contact your operator or service provider to get the endpoint, formatted as management.<region>.<FQDN>.
$tenantARMEndpoint = "https://management.local.azurestack.external"

## Replace the value below with the guest directory tenant.
$guestDirectoryTenantName = "adatum.onmicrosoft.com"

Register-AzSWithMyDirectoryTenant `
 -TenantResourceManagerEndpoint $tenantARMEndpoint `
 -DirectoryTenantName $guestDirectoryTenantName `
 -Verbose

重要

如果您的 Azure Stack Hub 管理員在未來安裝新服務或更新,您可能需要再次執行此指令碼。

隨時再次執行此指令碼以檢查您目錄中的 Azure Stack Hub 應用程式狀態。

如果您發現在受控磁碟 (於 1808 更新中引進) 中建立 VM 有問題,我們已新增磁碟資源提供者,但需要再次執行這個指令碼。

將使用者導向登入

最後,Mary 可以引導具有 @adatum.onmicrosoft.com 帳戶的 Adatum 使用者瀏覽 Azure Stack Hub 使用者入口網站進行登入。 針對多節點系統,使用者入口網站 URL 的格式為 https://portal.<region>.<FQDN>。 若是 ASDK 部署,則 URL 為 https://portal.local.azurestack.external

Mary 也必須引導任何外部主體 (結尾不是 adatum.onmicrosoft.com 的 Adatum 目錄中使用者) 使用 https://<user-portal-url>/adatum.onmicrosoft.com 進行登入。 如果他們未在 URL 中指定 /adatum.onmicrosoft.com 目錄租用戶,則會被送往其預設目錄並收到錯誤,指出他們的管理員尚未同意。

取消註冊來賓目錄

如果您不再想要允許從來賓目錄租用戶登入 Azure Stack Hub 服務,您可以取消註冊目錄。 同樣地,必須同時設定 Azure Stack Hub 主目錄和來賓目錄:

  1. 以來賓目錄的管理員身分 (在此案例中為 Mary),執行 Unregister-AzsWithMyDirectoryTenant。 此 Cmdlet 會將所有 Azure Stack Hub 應用程式從新目錄解除安裝。

    ## The following Azure Resource Manager endpoint is for the ASDK. If you're in a multinode environment, contact your operator or service provider to get the endpoint, formatted as management.<region>.<FQDN>.
    $tenantARMEndpoint = "https://management.local.azurestack.external"
    
    ## Replace the value below with the guest directory tenant.
    $guestDirectoryTenantName = "adatum.onmicrosoft.com"
    
    Unregister-AzsWithMyDirectoryTenant `
     -TenantResourceManagerEndpoint $tenantARMEndpoint `
     -DirectoryTenantName $guestDirectoryTenantName `
     -Verbose 
    
  2. 以 Azure Stack Hub 的服務管理員身分 (在此案例中為您),執行 Unregister-AzSGuestDirectoryTenant Cmdlet:

    ## The following Azure Resource Manager endpoint is for the ASDK. If you're in a multinode environment, contact your operator or service provider to get the endpoint, formatted as adminmanagement.<region>.<FQDN>.
    $adminARMEndpoint = "https://adminmanagement.local.azurestack.external"
    
    ## Replace the value below with the Azure Stack Hub directory
    $azureStackDirectoryTenant = "contoso.onmicrosoft.com"
    
    ## Replace the value below with the guest directory tenant. 
    $guestDirectoryTenantToBeDecommissioned = "adatum.onmicrosoft.com"
    
    ## Replace the value below with the name of the resource group in which the directory tenant resource was created (resource group must already exist).
    $ResourceGroupName = "system.local"
    
    Unregister-AzSGuestDirectoryTenant -AdminResourceManagerEndpoint $adminARMEndpoint `
     -DirectoryTenantName $azureStackDirectoryTenant `
     -GuestDirectoryTenantName $guestDirectoryTenantToBeDecommissioned `
     -ResourceGroupName $ResourceGroupName
    

    警告

    停用多租用戶的步驟必須依序執行。 若未先完成步驟 #2,則步驟 #1 會失敗。

取出 Azure Stack Hub 身分識別健康情況報告

取代 <region><domain><homeDirectoryTenant> 預留位置,然後執行下列 Cmdlet 作為 Azure Stack Hub 管理員。


$AdminResourceManagerEndpoint = "https://adminmanagement.<region>.<domain>"
$DirectoryName = "<homeDirectoryTenant>.onmicrosoft.com"
$healthReport = Get-AzsHealthReport -AdminResourceManagerEndpoint $AdminResourceManagerEndpoint -DirectoryTenantName $DirectoryName
Write-Host "Healthy directories: "
$healthReport.directoryTenants | Where status -EQ 'Healthy' | Select -Property tenantName,tenantId,status | ft


Write-Host "Unhealthy directories: "
$healthReport.directoryTenants | Where status -NE 'Healthy' | Select -Property tenantName,tenantId,status | ft

更新Microsoft Entra租使用者許可權

此動作會清除 Azure Stack Hub 中的警示,並指出目錄需要更新。 從 Azurestack-tools-master/identity 資料夾執行下列命令:

Import-Module ..\Identity\AzureStack.Identity.psm1

$adminResourceManagerEndpoint = "https://adminmanagement.<region>.<domain>"

# This is the primary tenant Azure Stack Hub is registered to:
$homeDirectoryTenantName = "<homeDirectoryTenant>.onmicrosoft.com"

Update-AzsHomeDirectoryTenant -AdminResourceManagerEndpoint $adminResourceManagerEndpoint `
   -DirectoryTenantName $homeDirectoryTenantName -Verbose

腳本會提示您在Microsoft Entra租使用者上提供系統管理認證,而且需要幾分鐘的時間才能執行。 該警示會在您執行 Cmdlet 之後清除。

此版本不支援入口網站型管理

只有 2102 版和更新版本才能使用管理員入口網站進行多租用戶管理。 使用頁面左上方的選取器來選取較新版本。

註冊來賓目錄

若要註冊多租用戶的來賓目錄,您必須同時設定 Azure Stack Hub 主目錄和來賓目錄。

設定 Azure Stack Hub 目錄

第一個步驟是讓 Azure Stack Hub 系統察覺來賓目錄。 在此範例中,Mary 公司 Adatum 的目錄稱為 adatum.onmicrosoft.com

  1. 登入 Azure Stack Hub 管理員入口網站,並前往 [所有服務 - 目錄]。

    顯示目錄清單的螢幕擷取畫面。

  2. 選取 [新增] 以開始上線程序。 輸入來賓目錄名稱 "adatum.onmicrosoft.com",然後選取 [新增]。

    顯示如何新增目錄的螢幕擷取畫面。

  3. 來賓目錄會出現在清單檢視中,狀態為 [未註冊]。

    顯示具有未註冊狀態之新來賓目錄的螢幕擷取畫面。

  4. 只有 Mary 有認證可向來賓目錄進行驗證,因此您必須傳送連結給她才能完成註冊。 選取 adatum.onmicrosoft.com 核取方塊,然後選取 [註冊]。

    顯示選取要註冊之目錄的螢幕擷取畫面。

  5. 隨即開啟新的瀏覽器索引標籤。 選取頁面底部的 [複製連結],並將其提供給 Mary。

  6. 如果您有來賓目錄的認證,您可以選取 [登入] 自行完成註冊。

    顯示選取登入的螢幕擷取畫面。

設定來賓目錄

Mary 收到具有註冊目錄連結的電子郵件。 她會在瀏覽器中開啟連結,並確認 Azure Stack Hub 系統的Microsoft Entra識別碼和 Azure Resource Manager端點。

  1. Mary 使用 adatum.onmicrosoft.com 的全域管理員認證進行登入。

    注意

    在登入之前,請確定已停用快顯封鎖程式。

    顯示登入以管理目錄的螢幕擷取畫面。

  2. Mary 檢閱目錄的狀態,並看到其未註冊。

    顯示未註冊目錄的螢幕擷取畫面。

  3. Mary 選取 [註冊] 以開始此程序。

    注意

    Visual Studio Code 的必要物件可能無法建立,且必須使用 PowerShell。

    顯示起始目錄註冊的螢幕擷取畫面。

  4. 註冊程序完成之後,Mary 可以檢閱在目錄中建立的所有應用程式,並檢查其狀態。

    顯示已註冊目錄的螢幕擷取畫面。

  5. Mary 已成功完成註冊程序,現在可以引導具有 @adatum.onmicrosoft.com 帳戶的 Adatum 使用者瀏覽 Azure Stack Hub 使用者入口網站進行登入。 針對多節點系統,使用者入口網站 URL 的格式為 https://portal.<region>.<FQDN>。 若是 ASDK 部署,則 URL 為 https://portal.local.azurestack.external

重要

Azure Stack 操作員最多可能需要一小時,才能在管理員入口網站中看到目錄狀態的更新。

Mary 也必須引導任何外部主體 (結尾不是 adatum.onmicrosoft.com 的 Adatum 目錄中使用者) 使用 https://<user-portal-url>/adatum.onmicrosoft.com 進行登入。 如果他們未在 URL 中指定 /adatum.onmicrosoft.com 目錄租用戶,則會被送往其預設目錄並收到錯誤,指出他們的管理員尚未同意。

取消註冊來賓目錄

如果您不再想要允許從來賓目錄租用戶登入 Azure Stack Hub 服務,您可以取消註冊目錄。 同樣地,必須同時設定 Azure Stack Hub 主目錄和來賓目錄:

設定來賓目錄

Mary 不再使用 Azure Stack Hub 上的服務,且必須移除物件。 她再次開啟透過電子郵件收到的 URL,以取消註冊目錄。 開始此程序之前,Mary 會移除 Azure Stack Hub 訂閱中的所有資源。

  1. Mary 使用 adatum.onmicrosoft.com 的全域管理員認證進行登入。

    注意

    在登入之前,請確定已停用快顯封鎖程式。

    顯示選取 [登入] 的螢幕擷取畫面。

  2. Mary 查看目錄的狀態。

    顯示已註冊目錄的螢幕擷取畫面。

  3. Mary 選取 [取消註冊] 以開始此動作。

    顯示選取 [取消註冊] 以取消註冊目錄的螢幕擷取畫面。

  4. 當程序完成時,狀態會顯示為 [未註冊]:

    顯示已取消註冊之目錄的螢幕擷取畫面。

    Mary 已成功取消註冊目錄 adatum.onmicrosoft.com

    注意

    最多可能需要一小時,才能在 Azure Stack 管理員入口網站中顯示目錄為未註冊。

設定 Azure Stack Hub 目錄

身為 Azure Stack Hub 操作員,您可以隨時移除來賓目錄,即使 Mary 先前尚未取消註冊目錄也一樣。

  1. 登入 Azure Stack Hub 管理員入口網站,並前往 [所有服務 - 目錄]。

    顯示所有目錄的螢幕擷取畫面。

  2. 選取 adatum.onmicrosoft.com 目錄核取方塊,然後選取 [移除]。

    顯示針對目錄選取 [移除] 的螢幕擷取畫面。

  3. 鍵入 yes 並選取 [移除],以確認刪除動作。

    顯示如何移除目錄的螢幕擷取畫面。

    您已成功移除目錄。

管理必要的更新

Azure Stack Hub 更新會引進可能需要更新主目錄或來賓目錄的新工具或服務支援。

身為 Azure Stack Hub 操作員,您會在管理員入口網站中收到警示,通知您需要更新目錄。 您也可以在管理員入口網站中檢視目錄窗格,判斷是否需要更新主目錄或來賓目錄。 每個目錄清單都會顯示目錄的類型。 此類型可以是主目錄或來賓目錄,並會顯示其狀態。

更新 Azure Stack Hub 目錄

需要更新 Azure Stack Hub 目錄時,會顯示 [需要更新] 狀態。 例如:

顯示需要更新之目錄的螢幕擷取畫面。

若要更新目錄,請選取 [目錄名稱] 核取方塊,然後選取 [更新]。

更新來賓目錄

Azure Stack Hub 操作員也應告知來賓目錄擁有者,必須使用專為註冊而共用的 URL 來更新其目錄。 操作員可以重新傳送 URL,但 URL 會保持不變。

來賓目錄擁有者 Mary 開啟在註冊目錄時透過電子郵件收到的 URL:

  1. Mary 使用 adatum.onmicrosoft.com 的全域管理員認證進行登入。 在登入之前,請確定已停用快顯封鎖程式。

    顯示選取 [登入] 的螢幕擷取畫面。

  2. Mary 看到目錄的狀態指出需要更新。

  3. Mary 可以透過 [更新] 動作來更新來賓目錄。 最多可能需要一小時,才能在 Azure Stack 管理員入口網站中顯示目錄為已註冊。

其他功能

Azure Stack Hub 操作員可以檢視與目錄建立關聯的訂閱。 此外,每個目錄都有直接在 Azure 入口網站中管理目錄的動作。 若要進行管理,目標目錄必須具有 Azure 入口網站的管理權限。

後續步驟