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

Вы можете настроить центр Azure Stack для поддержки входа пользователей, которые находятся в других каталогах Azure Active Directory (Azure AD), позволяя им использовать службы в центре Azure Stack.You can configure Azure Stack Hub to support sign-ins from users that reside in other Azure Active Directory (Azure AD) directories, allowing them to use services in Azure Stack Hub. Эти каталоги имеют связь "гость" с центром Azure Stack, поэтому они считаются гостевыми клиентами Azure AD.These directories have a "guest" relationship with your Azure Stack Hub, and as such, are considered guest Azure AD tenants. Например, рассмотрим следующий сценарий.For example, consider the following scenario:

  • Вы являетесь администратором службы contoso.onmicrosoft.com — домашним клиентом Azure AD, который предоставляет службы управления удостоверениями и доступом для центра Azure Stack.You're the service administrator of contoso.onmicrosoft.com, the home Azure AD tenant providing identity and access management services to your Azure Stack Hub.
  • Мэри — это администратор каталога fabrikam.onmicrosoft.com — гостевой клиент Azure AD, где находятся гостевые пользователи.Mary is the directory administrator of fabrikam.onmicrosoft.com, the guest Azure AD tenant where guest users are located.
  • Компания Мэри (Fabrikam) использует службы IaaS и PaaS из вашей компании.Mary's company (Fabrikam) uses IaaS and PaaS services from your company. Fabrikam хочет разрешить пользователям из каталога гостя (fabrikam.onmicrosoft.com) вход и использовать ресурсы центра Azure Stack, защищенные contoso.onmicrosoft.com.Fabrikam wants to allow users from the guest directory (fabrikam.onmicrosoft.com) to sign in and use Azure Stack Hub resources secured by contoso.onmicrosoft.com.

В этом руководстве описаны действия, которые необходимо выполнить в контексте этого сценария, чтобы включить или отключить мультитенантность в центре Azure Stack для клиента гостевого каталога.This guide provides the steps required, in the context of this scenario, to enable or disable multi-tenancy in Azure Stack Hub for a guest directory tenant. Вы и Мэри выполните этот процесс, зарегистрировав или отменив регистрацию клиента гостевого каталога, который включит или отключит входы в центр Azure Stack и использование службы пользователями Fabrikam.You and Mary accomplish this process by registering/unregistering the guest directory tenant, which will enable/disable Azure Stack Hub sign-ins and service consumption by Fabrikam users.

Если вы являетесь поставщиком облачных решений (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.

Предварительные требованияPrerequisites

Перед регистрацией или отменой регистрации гостевого каталога вы и Мэри должны выполнить административные шаги для соответствующих клиентов Azure AD: корневой каталог Azure Stack Hub (Contoso) и гостевой каталог (Fabrikam):Before registering or unregistering a guest directory, you and Mary must complete administrative steps for your respective Azure AD tenants: the Azure Stack Hub home directory (Contoso), and the guest directory (Fabrikam):

Регистрация гостевого каталогаRegister a guest directory

Чтобы зарегистрировать гостевой каталог для мультитенантность, необходимо настроить корневой каталог центра Azure Stack и гостевой каталог.To register a guest directory for multi-tenancy, both the home Azure Stack Hub directory and guest directory will need to be configured.

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

Администратор службы contoso.onmicrosoft.com должен сначала подключить клиент гостевого каталога Fabrikam к концентратору Azure Stack.As the service administrator of contoso.onmicrosoft.com, you must first onboard the Fabrikam's guest directory tenant to Azure Stack Hub. Следующий скрипт настраивает Azure Resource Manager для приема входов от пользователей и субъектов-служб в клиенте fabrikam.onmicrosoft.com:The following script will configure Azure Resource Manager to accept sign-ins from users and service principals in the fabrikam.onmicrosoft.com tenant:

## 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 = "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

Затем Мэри (администратор каталога Fabrikam) должна зарегистрировать центр Azure Stack в гостевом каталоге fabrikam.onmicrosoft.com, выполнив следующий сценарий:Next, Mary (directory admin of Fabrikam) must register Azure Stack Hub with the fabrikam.onmicrosoft.com guest directory, by running the following script:

## 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 = "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 с @fabrikam.onmicrosoft.com учетными записями для входа, посетив Пользовательский портал центра Azure Stack.Finally, Mary can direct Fabrikam users with @fabrikam.onmicrosoft.com accounts to sign in by visiting the Azure Stack Hub user portal. Для многоузловых систем URL-адрес пользовательского портала форматируется как https://management.<region>.<FQDN> .For multinode systems, the user portal URL is formatted as https://management.<region>.<FQDN>. Для развертывания ASDK URL-адрес имеет значение https://portal.local.azurestack.external .For an ASDK deployment, the URL is https://portal.local.azurestack.external.

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

Отмена регистрации гостевого каталогаUnregister a guest directory

Если вы больше не хотите разрешать входы в Azure Stack службы концентратора из клиента гостевого каталога, можно отменить регистрацию каталога.If you no longer want to allow sign-ins to Azure Stack Hub services from a guest directory tenant, you can unregister the directory. Опять же, необходимо настроить каталог корневого центра Azure Stack и гостевой каталог:Again, both the home Azure Stack Hub directory and guest directory will need to be configured:

  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, formatted as management.<region>.<FQDN>.
    $tenantARMEndpoint = "https://management.local.azurestack.external"
    
    ## Replace the value below with the guest directory tenant.
    $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 the 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 = "fabrikam.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
    

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

    Действия для отключения мультитенантности необходимо выполнить в указанном порядке.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 an 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 Hub 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