次の方法で共有


チュートリアル: Azure Virtual Desktop (クラシック) で PowerShell を使用してサービス プリンシパルとロールの割り当てを作成する

大事な

このコンテンツは、Azure Resource Manager Azure Virtual Desktop オブジェクトをサポートしていない Azure Virtual Desktop (クラシック) に適用されます。

サービス プリンシパルは、特定の目的でロールとアクセス許可を割り当てるために Microsoft Entra ID で作成できる ID です。 Azure Virtual Desktop では、次のサービス プリンシパルを作成できます。

  • 特定の Azure Virtual Desktop 管理タスクを自動化します。
  • Azure Virtual Desktop 用の Azure Resource Manager テンプレートを実行するときに、MFA が必要なユーザーの代わりに資格情報として使用します。

このチュートリアルでは、次の方法について説明します。

  • Microsoft Entra ID でサービス プリンシパルを作成します。
  • Azure Virtual Desktop でロールの割り当てを作成します。
  • サービス プリンシパルを使用して Azure Virtual Desktop にサインインします。

前提 条件

サービス プリンシパルとロールの割り当てを作成する前に、次の操作を行う必要があります。

  1. 手順に従って、Azure Az PowerShell モジュールをインストール

  2. Azure Virtual Desktop PowerShell モジュールをダウンロードしてインポートします。

大事な

同じ PowerShell セッションで、この記事のすべての手順に従います。 ウィンドウを閉じて後で再度開くことで、PowerShell セッションを中断した場合、プロセスが機能しない可能性があります。

Microsoft Entra ID でサービス プリンシパルを作成する

PowerShell セッションで前提条件を満たしたら、次の PowerShell コマンドレットを実行して、Azure にマルチテナント サービス プリンシパルを作成します。

Import-Module Az.Resources
Connect-AzConnect
$aadContext = Get-AzContext
$svcPrincipal = New-AzADApplication -AvailableToOtherTenants $true -DisplayName "Azure Virtual Desktop Svc Principal"
$svcPrincipalCreds = New-AzADAppCredential -ObjectId $svcPrincipal.Id

PowerShell で資格情報を表示する

サービス プリンシパルのロールの割り当てを作成する前に、資格情報を表示し、後で参照できるように書き留めます。 この PowerShell セッションを閉じた後にパスワードを取得できないため、パスワードは特に重要です。

書き留める必要がある 3 つの値と、それらを取得するために実行する必要があるコマンドレットを次に示します。

  • パスワード:

    $svcPrincipalCreds.SecretText
    
  • テナント ID:

    $aadContext.Tenant.Id
    
  • アプリケーション ID:

    $svcPrincipal.AppId
    

Azure Virtual Desktop でロールの割り当てを作成する

次に、サービス プリンシパルが Azure Virtual Desktop にサインインできるように、ロールの割り当てを作成する必要があります。 ロールの割り当てを作成するアクセス許可を持つアカウントでサインインしてください。

まず、まだ PowerShell セッションで使用する Azure Virtual Desktop PowerShell モジュール をダウンロードしてインポートします。

次の PowerShell コマンドレットを実行して Azure Virtual Desktop に接続し、テナントを表示します。

Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"
Get-RdsTenant

ロールの割り当てを作成するテナントのテナント名が見つかると、次のコマンドレットでその名前を使用します。

$myTenantName = "<Azure Virtual Desktop Tenant Name>"
New-RdsRoleAssignment -RoleDefinitionName "RDS Owner" -ApplicationId $svcPrincipal.AppId -TenantName $myTenantName

サービス プリンシパルを使用してサインインする

サービス プリンシパルのロールの割り当てを作成したら、次のコマンドレットを実行して、サービス プリンシパルが Azure Virtual Desktop にサインインできることを確認します。

$creds = New-Object System.Management.Automation.PSCredential($svcPrincipal.AppId, (ConvertTo-SecureString $svcPrincipalCreds.Value -AsPlainText -Force))
Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com" -Credential $creds -ServicePrincipal -AadTenantId $aadContext.Tenant.Id

正常にサインインできる場合は、サービス プリンシパルが正しく構成されています。

次の手順

サービス プリンシパルを作成し、Azure Virtual Desktop テナントにロールを割り当てた後、それを使用してホスト プールを作成できます。 ホスト プールの詳細については、Azure Virtual Desktop でホスト プールを作成するためのチュートリアルに進んでください。

Azure Marketplace を使用してホスト プールを作成する