Настройка мультитенантности в Azure Stack HubConfigure multi-tenancy in Azure Stack Hub

Вы можете настроить в Azure Stack Hub поддержку пользователей из нескольких клиентов Azure Active Directory (Azure AD), чтобы они использовали службы в Azure Stack Hub.You can configure Azure Stack Hub to support users from multiple Azure Active Directory (Azure AD) tenants, allowing them to use services in Azure Stack Hub. Давайте рассмотрим следующий пример:For example, consider the following scenario:

  • Вы являетесь администратором служб для contoso.onmicrosoft.com, где установлен Azure Stack Hub.You're the service administrator of contoso.onmicrosoft.com, where Azure Stack Hub is installed.
  • Мария является администратором каталога гостевых пользователей fabrikam.onmicrosoft.com.Mary is the directory administrator of fabrikam.onmicrosoft.com, where guest users are located.
  • Компания, в которой работает Мария, использует службы IaaS и PaaS вашей компании. Вам нужно разрешить вход и использование ресурсов Azure Stack Hub в contoso.onmicrosoft.com для пользователей из гостевого каталога (fabrikam.onmicrosoft.com).Mary's company receives IaaS and PaaS services from your company and needs to allow users from the guest directory (fabrikam.onmicrosoft.com) to sign in and use Azure Stack Hub resources in contoso.onmicrosoft.com.

Далее описана процедура, которая позволяет настроить мультитенантность в Azure Stack Hub для описанного сценария.This guide provides the steps required, in the context of this scenario, to configure multi-tenancy in Azure Stack Hub. В нашем примере вам и Марии придется выполнить ряд действий, чтобы пользователи из компании Fabrikam могли выполнять вход в развертывание Azure Stack Hub компании Contoso и использовать ресурсы этого развертывания.In this scenario, you and Mary must complete steps to enable users from Fabrikam to sign in and consume services from the Azure Stack Hub deployment in Contoso.

Если вы являетесь поставщиком облачных решений (CSP), у вас есть дополнительные способы настройки и управления Azure Stack концентратора с несколькими клиентами.If you're a Cloud Solution Provider (CSP), you have additional ways you can configure and manage a multi-tenant Azure Stack Hub.

Включение поддержки мультитенантностиEnable multi-tenancy

Перед настройкой мультитенантности в Azure Stack Hub следует обратить внимание на ряд предварительных условий:There are a few prerequisites to account for before you configure multi-tenancy in Azure Stack Hub:

  • Вам необходимо согласовать с Марией административные действия в обоих каталогах: в Contoso, где установлена инфраструктура Azure Stack Hub, и в гостевом каталоге Fabrikam.You and Mary must coordinate administrative steps across both the directory Azure Stack Hub is installed in (Contoso), and the guest directory (Fabrikam).

  • Убедитесь, что у вас установлена и настроена среда PowerShell для Azure Stack Hub.Make sure you've installed and configured PowerShell for Azure Stack Hub.

  • Скачайте средства для Azure Stack Hub и импортируйте модули Connect и Identity:Download the Azure Stack Hub Tools, and import the Connect and Identity modules:

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

Настройка каталога Azure Stack HubConfigure Azure Stack Hub directory

В этом разделе вы настроите Azure Stack Hub, чтобы разрешить вход с учетными данными клиентов каталога Fabrikam Azure AD.In this section, you configure Azure Stack Hub to allow sign-ins from Fabrikam Azure AD directory tenants.

Подключите клиент гостевого каталога Fabrikam к Azure Stack Hub, настроив Azure Resource Manager для приема пользователей и субъектов-служб из клиента гостевого каталога.Onboard the guest directory tenant (Fabrikam) to Azure Stack Hub by configuring Azure Resource Manager to accept users and service principals from the guest directory tenant.

Администратор служб contoso.onmicrosoft.com должен выполнить следующие команды:The service admin of contoso.onmicrosoft.com runs the following commands:

## 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.
$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 tenant directory. 
$guestDirectoryTenantToBeOnboarded = "fabrikam.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

Настройка гостевого каталогаConfigure guest directory

После того как оператор Azure Stack Hub разрешил использование каталога Fabrikam в Azure Stack Hub, Мария должна зарегистрировать Azure Stack Hub с клиентом каталога Fabrikam.Once the Azure Stack Hub operator has enabled the Fabrikam directory to be used with Azure Stack Hub, Mary must register Azure Stack Hub with Fabrikam's directory tenant.

Регистрация Azure Stack Hub в гостевом каталогеRegister Azure Stack Hub with the guest directory

Мария, которая является администратором каталога Fabrikam, использует следующие команды в гостевом каталоге fabrikam.onmicrosoft.com:Mary (directory admin of Fabrikam) runs the following commands in the guest directory fabrikam.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.
$tenantARMEndpoint = "https://management.local.azurestack.external"
    
## Replace the value below with the guest tenant directory.
$guestDirectoryTenantName = "fabrikam.onmicrosoft.com"

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

Важно!

Если в дальнейшем администратор Azure Stack Hub будет устанавливать новые службы или обновления, возможно, потребуется снова запустить этот скрипт.If your Azure Stack Hub administrator installs new services or updates in the future, you may need to run this script again.

Запускайте его в любое время, чтобы проверить состояние приложений Azure Stack Hub в вашем каталоге.Run this script again at any time to check the status of the Azure Stack Hub apps in your directory.

Для решения проблем с созданием виртуальных машин в Управляемых дисках (служба, добавленная с обновлением 1808) был добавлен новый поставщик дисковых ресурсов , что требует перезапуска этого скрипта.If you've noticed issues with creating VMs in Managed Disks (introduced in the 1808 update), a new Disk Resource Provider was added requiring this script to be run again.

Информирование пользователей о возможности входаDirect users to sign in

Итак, вы с Марией завершили все действия по подключению ее каталога, и теперь она может сообщить пользователям Fabrikam сведения о процедуре входа в ваш каталог.Now that you and Mary have completed the steps to onboard Mary's directory, Mary can direct Fabrikam users to sign in. Пользователи Fabrikam (с суффиксом fabrikam.onmicrosoft.com) могут использовать для входа URL-адрес https://portal.local.azurestack.external.Fabrikam users (users with the fabrikam.onmicrosoft.com suffix) sign in by visiting https://portal.local.azurestack.external.

Для всех внешних субъектов в каталоге Fabrikam (без суффикса fabrikam.onmicrosoft.com, но включенных в каталог Fabrikam) Мария предоставит другой URL-адрес для входа: https://portal.local.azurestack.external/fabrikam.onmicrosoft.com.Mary will direct any foreign principals in the Fabrikam directory (users in the Fabrikam directory without the suffix of fabrikam.onmicrosoft.com) to sign in using https://portal.local.azurestack.external/fabrikam.onmicrosoft.com. Если они не воспользуются этим URL-адресом, они будут перенаправлены в каталог по умолчанию (Fabrikam) и получат сообщение об ошибке, информирующее о том, что администратор не предоставил согласие.If they don't use this URL, they're sent to their default directory (Fabrikam) and receive an error that says their administrator hasn't consented.

Отключение поддержки мультитенантностиDisable multi-tenancy

Если поддержка нескольких клиентов в Azure Stack Hub вам больше не требуется, можно отключить мультитенантность, выполнив перечисленные далее действия в указанном порядке:If you no longer want multiple tenants in Azure Stack Hub, you can disable multi-tenancy by doing the following steps in order:

  1. Как администратор гостевого каталога (в этом сценарии — Мария) запустите командлет Unregister-AzsWithMyDirectoryTenant.As the administrator of the guest directory (Mary in this scenario), run Unregister-AzsWithMyDirectoryTenant. Командлет удалит все приложения Azure Stack Hub из нового каталога.The cmdlet uninstalls all the Azure Stack Hub apps from the new directory.

    ## 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.
    $tenantARMEndpoint = "https://management.local.azurestack.external"
    
    ## Replace the value below with the guest tenant directory.
    $guestDirectoryTenantName = "fabrikam.onmicrosoft.com"
    
    Unregister-AzsWithMyDirectoryTenant `
     -TenantResourceManagerEndpoint $tenantARMEndpoint `
     -DirectoryTenantName $guestDirectoryTenantName `
     -Verbose 
    
  2. Как администратор служб Azure Stack Hub (в этом сценарии — вы), запустите командлет Unregister-AzSGuestDirectoryTenant.As the service administrator of Azure Stack Hub (you in this scenario), run Unregister-AzSGuestDirectoryTenant.

    ## 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.
    $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 tenant directory. 
    $guestDirectoryTenantToBeDecommissioned = "fabrikam.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"
    
    Unregister-AzSGuestDirectoryTenant -AdminResourceManagerEndpoint $adminARMEndpoint `
     -DirectoryTenantName $azureStackDirectoryTenant `
     -GuestDirectoryTenantName $guestDirectoryTenantToBeDecommissioned `
     -ResourceGroupName $ResourceGroupName
    

    Предупреждение

    Действия для отключения мультитенантности необходимо выполнить в указанном порядке.The disable multi-tenancy steps must be performed in order. Шаг 1 не удастся выполнить, если перед ним выполнен шаг 2.Step #1 fails if step #2 is completed first.

Получение отчета о работоспособности удостоверений Azure Stack HubRetrieve Azure Stack Hub identity health report

Замените заполнители <region>, <domain> и <homeDirectoryTenant>, а затем выполните следующий командлет от имени администратора Azure Stack Hub.Replace the <region>, <domain>, and <homeDirectoryTenant> placeholders, then execute the following cmdlet as the Azure Stack Hub administrator.


$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

Обновление разрешений арендатора Azure ADUpdate Azure AD tenant permissions

Это действие очистит оповещение в центре Azure Stack, указывая, что для каталога требуется обновление.This action will clear the alert in Azure Stack Hub, indicating that a directory requires an update. Выполните следующую команду в папке Azurestack-Tools-Master/Identity :Run the following command from the Azurestack-tools-master/identity folder:

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

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

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

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

Этот скрипт запрашивает учетные данные администратора в арендаторе Azure AD. Выполняется он несколько минут.The script prompts you for administrative credentials on the Azure AD tenant, and takes several minutes to run. Оповещение должно быть удалено после выполнения командлета.The alert should clear after you run the cmdlet.

Дальнейшие действияNext steps