Azure AD Domain Servicesを使ってAzure ADユーザーでAmazon WorkSpacesを利用してみた

2020.08.02

しばたです。
前の記事でAzure Active Directory Domain Services (Azure AD Domain Services)環境を構築しましたが、今回はこのディレクトリをWorkSpacesのディレクトリに設定し、Azure ADユーザー(正確にはAzure ADと同期されたドメインユーザー)でAmazon WorkSpacesを利用してみました。

元ネタ

今回試す内容は以下のAWS Desktop and Application Streamingブログを参考にしています。

基本的にはこちらのブログの内容に従う形で作業をしていますが、ブログ内のPowerShellスクリプトを若干改善したりしています。

検証環境と前提条件

今回作る環境は若干ややこしいので最初に全体図を示しておきます。

前の記事で作成したAzure AD Domain Services環境とWorkSpaces用のAWS環境をSite-to-Site VPNで接続し、AD ConnectorがAzure AD Domain Servicesのディレクトリに接続する構成となります。
ADDSはローカル接続を必要とするためAWSとAzureをVPN接続するのは必須となります。

AWS側は10.0.0.0/16のVPCにPublic/PrivateのサブネットをMulti-AZで配置、Azure側は前回の記事で作った172.16.0.0/16のVNetにVPN接続用に新たに172.16.254.0/24のGateway Subnetを追加しています。

AWSとAzureでSite-to-Site VPNを張る手順については以下の記事を参考にしてください。

Azure AD Domain Services環境の構築手順は前回の記事を参考にしてください。

本記事では

  • AWS側ネットワーク(VPC、Subnet、ルートテーブルなど)の構築手順
  • AWSとAzure間でのSite-to-Site VPN構築手順
  • Azure AD Domain Services環境構築手順

は割愛します。

やってみた

それでは本題に入っていきます。

スタート地点

本記事の内容は以下の環境があるところから始めます。

あらかじめ用意したAWS VPC環境と前回作成したAzure AD Domain Services環境をVPN接続したところがスタート地点です。
この環境にAD ConnectorとWorkSpaces環境を構築します。

1. Azure AD Domain Serives で AD Connetor用ユーザーを作成する

AD ConnectorとWorkSpaces環境を構築を整備する前に、事前にAzure側でAD Connector用のユーザーを作成しておく必要があります。

以前に書いた記事で紹介している様にAD Connectorを使うには必要最低限の権限を持ったActive Directoryユーザーを作成するのがベストプラクティスとされています。

ただ、今回の環境はAzure AD Domain Servicesが提供するマネージドなディレクトリであり、残念ながら上記記事にある手順を実施するための権限が与えられていません。(ディレクトリ全体に対する制御の委任ができない)
このため最初に触れたAWS Blogにある様に、Azure AD Domain Servicesの管理者であるAAD DC AdministratorsグループにAD Connector用のユーザーを作成してやります。

AAD DC Administratorsグループのユーザーであればなんでもよいので、Azureのポータルから手動で作成してもよいですし、以下の様にPowerShellで作成しても構いません。
今回はAzure Cloud Shellで以下のスクリプトを実行しadconnector@xxxxxxxx.onmicrosoft.comという専用ユーザーを作成しました。

# AD Connector用ユーザー設定
# ※内容は環境に応じて変更してください
$adconnectorUpn          = "adconnector@xxxxxxxx.onmicrosoft.com"
$adconnectorPassword     = "Password123!"
$adconnectorDisplayName  = "AD Connector for Amazon Workspaces"
$adconnectorNailNickName = "adconnector"

# 必要に応じて Azure ADに接続しておく
Connect-AzureAD

# Azure AD ユーザーを作成
$params = @{
    UserPrincipalName = $adconnectorUpn;
    # 初回ログイン時のパスワード変更が無い設定でパスワードプロファイルを指定
    PasswordProfile = &{
        $passwordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
        $passwordProfile.ForceChangePasswordNextLogin = $false
        $passwordProfile.Password = $adconnectorPassword
        return $passwordProfile
    }
    DisplayName = $adconnectorDisplayName;
    MailNickName = $adconnectorNailNickName
    AccountEnabled = $true
}
$newAADUser = New-AzureADUser @params
$newAADUser

# "AAD DC Administrators グループにユーザーを追加
Get-AzureADGroup -Filter "DisplayName eq 'AAD DC Administrators'" | Add-AzureADGroupMember -RefObjectId $newAADUser.ObjectId 

作った結果はこんな感じです。

2. AD Connectorを作成する

次にAD Connectorを作成します。
方法は何でもよいのですが今回はマネジメントコンソールから実施します。

マネジメントコンソールからディレクトリの新規追加で「AD Connector」を選択し、

ディレクトリサイズは環境に合わせて選択、
(今回は検証用なので「スモール」に)

配置するサブネットを指定し、

接続先のディレクトリ情報を入力します。
Azure AD Domain Servicesの環境に合わせて以下の様に指定します。

項目 設定値 備考
ディレクトリのDNS名 Azure AD Domain ServicesのDNS名 (azure.shibata.tech)
ディレクトリのNetBIOS名 Azure AD Domain ServicesのNetBIOS名 未入力でもOK
DNS IPアドレス Azure AD Domain ServicesのIPアドレス (172.16.1.4, 172.16.1.5) 2つとも記入
サービスアカウントのユーザー名 前項で作ったユーザー名 (adconnector) @xxxxxxxx.onmicrosoft.comの部分は無くてよい
サービスアカウントのパスワード 前項で作ったユーザーのパスワード

最後に登録内容の確認がありますので間違いがないことを確認して「ディレクトリの作成」をクリックします。

これでAD Connectorが作成されますので完了までしばらく待ちます。

エラー無く出来上がれば完了です。

3. WorkSpacesを作成する

続けてWorkSpaces環境を作成していきます。
対象ディレクトリに前項で作成したディレクトリ(AD Connector)を選ぶ以外は一般的なWorkSpaces環境の作成とまったく同一の手順となります。

以降の詳細な説明は省きますが、ざっくり以下の様な感じです。

(ユーザー名は[ディレクトリ名][ユーザー名]の形式で表示される)

(バンドルは適当に)

出来上がった環境は以下。

4. Azure ADユーザーでWorkSpacesに接続してみる

あとはこの情報をもとにWorkSpaces Clientから接続してみます。
私の手元の環境がWindowsですので今回は最新のWindows Client(Ver.3.0.8.1536)から接続します。

まずはWindows Clientを起動して招待コードを登録します。

続けてユーザー名とパスワードを入力します。
WorkSpaces上ではユーザー名はUPNでなくUPNのユーザー名部分で管理されていますので@xxxxxxxx.onmicrosoft.comの部分は入力不要です。

これで無事WorkSpaces環境に接続できます。
whoamiコマンドでユーザー情報を確認するとちゃんとUPNは@xxxxxxxx.onmicrosoft.comであることがわかります。

最後に

以上となります。

前提条件となるAzure AD Domain ServicesおよびAWSとAzureのVPN接続を作成するまでが少し面倒ですが、前提となる環境ができてしまえば以降の手順は通常のAD Connectorを使ったWorkSpaces環境の構築とほとんど変わりありません。

普段Azure ADをお使いでVDI環境にAmazon WorkSpacesを使いたい場合はこの様な構成もできますのでぜひ参考にしてください。