Azure Stack 허브에서 다중 테 넌 트 구성Configure multi-tenancy in Azure Stack Hub

여러 Azure Active Directory (Azure AD) 테 넌 트의 사용자를 지원 하도록 Azure Stack 허브를 구성 하 여 Azure Stack 허브에서 서비스를 사용할 수 있습니다.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:

  • Azure Stack 허브가 설치 된 contoso.onmicrosoft.com의 서비스 관리자입니다.You're the service administrator of contoso.onmicrosoft.com, where Azure Stack Hub is installed.
  • Mary는 게스트 사용자가 있는 fabrikam.onmicrosoft.com의 디렉터리 관리자입니다.Mary is the directory administrator of fabrikam.onmicrosoft.com, where guest users are located.
  • Mary의 회사는 회사에서 IaaS 및 PaaS 서비스를 받고 게스트 디렉터리 (fabrikam.onmicrosoft.com)의 사용자가 contoso.onmicrosoft.com의 허브 리소스 Azure Stack에 로그인 하 고 사용할 수 있도록 해야 합니다.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 허브에 다중 테 넌 트를 구성 하는 데 필요한 단계를 제공 합니다.This guide provides the steps required, in the context of this scenario, to configure multi-tenancy in Azure Stack Hub. 이 시나리오에서는 사용자와 Mary가 Fabrikam의 사용자가 로그인 하 여 Contoso의 Azure Stack 허브 배포에서 서비스를 사용할 수 있도록 하는 단계를 완료 해야 합니다.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 허브에서 다중 테 넌 트를 구성 하기 전에 고려해 야 할 몇 가지 필수 구성 요소가 있습니다.There are a few prerequisites to account for before you configure multi-tenancy in Azure Stack Hub:

  • 사용자와 Mary는 (Contoso)에 설치 된 디렉터리 Azure Stack 및 게스트 디렉터리 (Fabrikam)에서 관리 단계를 조정 해야 합니다.You and Mary must coordinate administrative steps across both the directory Azure Stack Hub is installed in (Contoso), and the guest directory (Fabrikam).

  • Azure Stack 허브 용 PowerShell을 설치 하 고 구성 했는지 확인 합니다.Make sure you've installed and configured PowerShell for Azure Stack Hub.

  • Azure Stack Hub 도구를 다운로드하 고 연결 및 id 모듈을 가져옵니다.Download the Azure Stack Hub Tools, and import the Connect and Identity modules:

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

Azure Stack 허브 디렉터리 구성Configure Azure Stack Hub directory

이 섹션에서는 Fabrikam Azure AD 디렉터리 테 넌 트의 로그인을 허용 하도록 Azure Stack 허브를 구성 합니다.In this section, you configure Azure Stack Hub to allow sign-ins from Fabrikam Azure AD directory tenants.

게스트 디렉터리 테 넌 트에서 사용자 및 서비스 사용자를 수락 하도록 Azure Resource Manager를 구성 하 여 Fabrikam (게스트 디렉터리 테 넌 트)을 Azure Stack 허브에 등록 합니다.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 운영자가 Azure Stack Hub와 함께 사용할 Fabrikam 디렉터리를 사용 하도록 설정한 후에는 Mary가 Fabrikam의 디렉터리 테 넌 트를 사용 하 여 Azure Stack 허브에 등록 해야 합니다.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 허브 등록Register Azure Stack Hub with the guest directory

Mary (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.

Managed Disks에서 Vm을 만드는 데 문제가 있는 경우 (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

이제 사용자와 Mary는 Mary의 디렉터리를 등록 하는 단계를 완료 했으므로 Mary는 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 접미사가 있는 사용자)가 https//portal.local.azurestack.external.를 방문 하 여 로그인 :Fabrikam users (users with the fabrikam.onmicrosoft.com suffix) sign in by visiting https://portal.local.azurestack.external.

Mary는 Fabrikam 디렉터리 (fabrikam.onmicrosoft.com의 접미사가 없는 Fabrikam 디렉터리의 사용자)에 있는 모든 외부 보안 주체 를 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 허브에 여러 테 넌 트가 더 이상 필요 하지 않은 경우 다음 단계를 순서 대로 수행 하 여 다중 테 넌 트를 사용 하지 않도록 설정할 수 있습니다.If you no longer want multiple tenants in Azure Stack Hub, you can disable multi-tenancy by doing the following steps in order:

  1. 게스트 디렉터리의 관리자 (이 시나리오에서는 Mary)로 AzsWithMyDirectoryTenant 을 실행 합니다.As the administrator of the guest directory (Mary in this scenario), run Unregister-AzsWithMyDirectoryTenant. Cmdlet은 새 디렉터리에서 모든 Azure Stack 허브 앱을 제거 합니다.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 허브의 서비스 관리자로 서 (이 시나리오에서) 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. 단계 #2를 먼저 완료 하면 #1 단계가 실패 합니다.Step #1 fails if step #2 is completed first.

Azure Stack 허브 id 상태 보고서 검색Retrieve Azure Stack Hub identity health report

<region>, <domain><homeDirectoryTenant> 자리 표시자를 바꾼 후 Azure Stack 허브 관리자 권한으로 다음 cmdlet을 실행 합니다.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 AD 테 넌 트 권한 업데이트Update Azure AD tenant permissions

이 작업을 수행 하면 디렉터리에 업데이트가 필요 함을 나타내는 Azure Stack Hub의 경고가 지워집니다.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. Cmdlet을 실행 한 후 경고를 지워야 합니다.The alert should clear after you run the cmdlet.

다음 단계Next steps