Azure Stack Hub でマルチテナントを構成する
他のMicrosoft Entra ディレクトリに存在するユーザーからのサインインをサポートするように Azure Stack Hub を構成し、Azure Stack Hub でサービスを使用できるようにすることができます。 これらのディレクトリは、Azure Stack Hub ディレクトリと "ゲスト" 関係があり、ゲスト Microsoft Entra テナントと見なされます。
たとえば、次のシナリオについて考えてみます。
- Azure Stack Hub に ID とアクセス管理サービスを提供するホーム Microsoft Entra テナントである contoso.onmicrosoft.com のサービス管理者です。
- Mary は、ゲスト ユーザーが配置されているゲスト Microsoft Entra テナントである adatum.onmicrosoft.com のディレクトリ管理者です。
- 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 のツールをダウンロードして、Connect モジュールと Identity モジュールをインポートします。
Import-Module .\Identity\AzureStack.Identity.psm1
ゲスト ディレクトリを登録する
マルチテナント用にゲスト ディレクトリを登録するには、Azure Stack Hub のホーム ディレクトリとゲスト ディレクトリの両方を構成する必要があります。
Azure Stack Hub ディレクトリの構成
contoso.onmicrosoft.com のサービス管理者として、最初に Adatum のゲスト ディレクトリ テナントを Azure Stack Hub にオンボードする必要があります。 次のスクリプトを実行すると、adatum.onmicrosoft.com テナントのユーザーとサービス プリンシパルからのサインインを受け入れるように、Azure Resource Manager が構成されます。
## 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 のディレクトリ管理者) は、次のスクリプトを実行して、Azure Stack Hub を 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 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 は、Azure Stack Hub ユーザー ポータルにアクセスして、@adatum.onmicrosoft.com アカウントを使用する Adatum ユーザーに対してサインインするよう指示できます。 マルチノード システムの場合、ユーザー ポータルの 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 のホーム ディレクトリとゲスト ディレクトリの両方を構成する必要があります。
ゲスト ディレクトリの管理者 (このシナリオでは Mary) として、
Unregister-AzsWithMyDirectoryTenant
を実行します。 このコマンドレットは、新しいディレクトリからすべての 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
Azure Stack Hub のサービス管理者として (このシナリオではあなた)、
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, 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 の ID 正常性レポートの取得
プレースホルダーの <region>
、<domain>
、<homeDirectoryTenant>
を置き換えてから、次のコマンドレットを 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 テナントで管理者資格情報の入力を求めるメッセージが表示され、実行には数分かかります。 このコマンドレットを実行すると、アラートがクリアされます。
このバージョンではポータルベースの管理がサポートされていない
管理者ポータルを使用したマルチテナント管理は、バージョン 2102 以降でのみ使用できます。 ページ左上のにあるセレクターを使用して、新しいバージョンを選択してください。
ゲスト ディレクトリを登録する
マルチテナント用にゲスト ディレクトリを登録するには、Azure Stack Hub のホーム ディレクトリとゲスト ディレクトリの両方を構成する必要があります。
Azure Stack Hub ディレクトリの構成
最初の手順として、Azure Stack Hub システムでゲスト ディレクトリを認識できるようにします。 この例では、Mary の会社のディレクトリ Adatum は、adatum.onmicrosoft.com と呼ばれます。
Azure Stack Hub 管理者ポータルにサインインし、 [すべてのサービス] - [ディレクトリ] に移動します。
[追加] を選択して、オンボード プロセスを開始します。 ゲスト ディレクトリ名 "adatum.onmicrosoft.com" を入力し、 [追加] を選択します。
ゲスト ディレクトリがリスト ビューに表示されます。状態は未登録です。
ゲスト ディレクトリに対する認証のための資格情報を持っているのは Mary だけです。このため、登録を完了するには、Mary にリンクを送信する必要があります。 [adatum.onmicrosoft.com] チェックボックスをオンにして、 [登録] を選択します。
新しいブラウザーのタブが開きます。 ページ下部の [リンクのコピー] を選択し、Mary に提供します。
ゲスト ディレクトリの資格情報がある場合、ご自身で登録を完了するには、 [サインイン] を選択します。
ゲスト ディレクトリの構成
Mary は、ディレクトリ登録のためのリンクを含むメールを受信しました。 ブラウザーでリンクを開き、Azure Stack Hub システムのMicrosoft Entra ID と Azure Resource Manager エンドポイントを確認します。
Mary は、adatum.onmicrosoft.com 用のグローバル管理者資格情報を使用してサインインします。
Note
サインインする前に、ポップアップ ブロッカーが無効になっていることを確認します。
Mary は、ディレクトリが未登録の状態であることを確認します。
Mary は、 [登録] を選択してプロセスを開始します。
Note
Visual Studio Code に必要なオブジェクトを作成できない可能性があるため、PowerShell を使用する必要があります。
登録プロセスの完了後、Mary はディレクトリ内に作成されたすべてのアプリケーションを確認し、その状態をチェックできます。
Mary は、登録プロセスを正常に完了しました、これで、Azure Stack Hub ユーザーポータルにアクセスして、@adatum.onmicrosoft.com アカウントを使用する Adatum ユーザーに対してサインインするよう指示できるようになりました。 マルチノード システムの場合、ユーザー ポータルの URL は
https://portal.<region>.<FQDN>
という形式になります。 ASDK のデプロイの場合、URL はhttps://portal.local.azurestack.external
です。
重要
Azure Stack オペレーターの管理ポータル内にディレクトリの状態の更新が表示されるには、最大で 1 時間かかる場合があります。
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 サブスクリプションからすべてのリソースを削除します。
Mary は、adatum.onmicrosoft.com 用のグローバル管理者資格情報を使用してサインインします。
Note
サインインする前に、ポップアップ ブロッカーが無効になっていることを確認します。
Mary は、ディレクトリの状態を確認します。
Mary は [登録解除] を選択して、アクションを開始します。
プロセスが完了すると、状態は [未登録] として表示されます。
Mary は、adatum.onmicrosoft.com ディレクトリを正常に登録解除しました。
Note
Azure Stack 管理ポータル内にディレクトリの登録解除が表示されるには、最大で 1 時間かかる場合があります。
Azure Stack Hub ディレクトリの構成
Mary がディレクトリを以前に登録解除していない場合でも、Azure Stack Hub のオペレーターとして、任意の時点でゲスト ディレクトリを削除できます。
Azure Stack Hub 管理者ポータルにサインインし、 [すべてのサービス] - [ディレクトリ] に移動します。
adatum.onmicrosoft.com ディレクトリのチェックボックスをオンにして、 [削除] を選択します。
「yes」と入力し、 [削除] を選択して、削除操作を確定します。
ディレクトリを正常に削除しました。
必要な更新プログラムを管理する
Azure Stack Hub 更新プログラムによって、新しいツールまたはサービスのサポートを導入できますが、これによりホーム ディレクトリまたはゲスト ディレクトリの更新が必要になる可能性があります。
Azure Stack Hub オペレーターの管理ポータルには、必要なディレクトリ更新について通知するアラートが表示されます。 管理ポータルのディレクトリ ウィンドウを表示すると、ホーム ディレクトリとゲスト ディレクトリに更新が必要かどうかを判断することもできます。 各ディレクトリ リストには、ディレクトリの種類が表示されます。 種類はホーム ディレクトリまたはゲスト ディレクトリで、さらに、その状態が表示されます。
Azure Stack Hub ディレクトリを更新する
Azure Stack Hub ディレクトリの更新が必要な場合は、更新が必要という状態が 表示されます。 次に例を示します。
ディレクトリを更新するには、 [ディレクトリ名] チェックボックスをオンにし、 [更新] を選択します。
ゲスト ディレクトリを更新する
また、Azure Stack Hub オペレーターは、ゲスト ディレクトリの所有者に、登録用に共有されている URL を使用してディレクトリを更新する必要があることを通知する必要があります。 オペレーターが URL を再送信しても、それは変わりません。
ゲスト ディレクトリの所有者 Mary は、ディレクトリを登録したときにメールで受信した URL を開きます。
Mary は、adatum.onmicrosoft.com 用のグローバル管理者資格情報を使用してサインインします。 サインインする前に、ポップアップ ブロッカーが無効になっていることを確認します。
Mary は、ディレクトリが更新を必要とする状態であることを確認します。
更新操作は、Mary がゲスト ディレクトリを更新するときに使用できます。 Azure Stack 管理ポータル内にディレクトリの登録が表示されるには、最大で 1 時間かかる場合があります。
その他の機能
Azure Stack Hub オペレーターは、ディレクトリに関連付けられているサブスクリプションを表示できます。 また、各ディレクトリに、Azure portal 内でディレクトリを直接管理するためのアクションが用意されています。 管理するには、ターゲット ディレクトリに Azure portal での管理アクセス許可が必要です。