この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
はじめに
AVDをマルチセッションで使う、もしくは複数のセッションホストで運用する際にほぼ100%ユーザプロファイルの保存先の検討を行うかと思います。
移動ユーザプロファイルやFsLogixを使用して外部ストレージもしくはサーバなどから参照する方法が一般的かと思いますが、今回はAzureFilesにユーザプロファイルを保存する方法をご紹介しようと思います。
AzureFilesを使用することで、AzurePortal上でユーザプロファイルの管理が行えるなど管理面のメリットやバックアップが容易であるといったメリットがありますので、保存先の一つとして検討してみてはいかがでしょうか。
https://docs.microsoft.com/ja-jp/azure/storage/files/storage-files-active-directory-overview
想定シナリオ
今回想定している環境としては
AzureADと同期しているADサーバを使ってAVDを構築し、そのAVDのセッションホストのユーザプロファイルをIDベース認証を使用したファイル共有にてAzureFiles上に保存・参照する方法をご紹介いたします。
※図赤矢印を構成する手順です。
※検証ではオンプレミスの想定環境もAzure上で構成してます。
手順
既にAVDのデプロイが完了している前提とし、AVDの構築手順は割愛します。
また、ユーザプロファイルのローミングにはFsLogixを使用して構築していきます。
1.AzureFiles設定(リソース作成)①(AzurePortal)
2.AzureFilesのAD DS 認証有効化(ADサーバ)
3.AzureFiles設定(ロール割り当て)②(AzurePortal)
4.FsLogix設定(各セッションホスト)
5.確認
といった手順で構築してきます。
1.AzureFiles設定(リソース作成)①(AzurePortal)
まずは Azure上で ストレージアカウントをデプロイしていきます。
既存のストレージアカウントがある場合は次のAzureFilesの作成から始めてください。
このストレージアカウントの作成には特に注意点はありません。
ネットワーク接続はドメインコントローラーからアクセスできるように設定しましょう。
デプロイが完了したらリソースに移動し、AzureFilesを作成します。
ファイル共有名は任意で問題ありません。これでリソース作成は完了です。
次にADサーバにて作業を実施します。
なお、この時点でActive Directoryの構成は”構成されていません”になっていますが、2の手順で構成済みへとかわります。
2.AzureFilesのAD DS 認証有効化(ADサーバ)
以下のリンクよりAzFilesHybridモジュールをインストールして任意のフォルダに展開してください。(説明ではC:\tempに展開しているので配置場所が異なる場合は2行目のスクリプトを適宜変えてください)
https://github.com/Azure-Samples/azure-files-samples/releases
管理者権限でPowerShellを開き、以下のスクリプトを一行ずつ実施してください。
※一行ずつ実施しないと失敗することが多々ありました。
※事前にAzモジュールをインストールしておいてください。
https://docs.microsoft.com/ja-jp/powershell/azure/install-az-ps?view=azps-6.3.0&viewFallbackFrom=azps-2.8.0
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
cd C:\temp\AzFilesHybrid
.\CopyToPSPath.ps1
Import-Module -Name AzFilesHybrid
Connect-AzAccount
$SubscriptionId = "<サブスクリプションID>"
$ResourceGroupName = "<リソースグループ名>"
$StorageAccountName = "<ストレージアカウント名>"
$DomainAccountType = "<ComputerAccount or ServiceLogonAccount,どちらかを記載>"
$OuDistinguishedName = "<AzureFiles用のコンピュータアカウントを配置するOU>"
$EncryptionType = "<AES256|RC4|AES256,RC4>"
Join-AzStorageAccountForAuth `
-ResourceGroupName $ResourceGroupName `
-StorageAccountName $StorageAccountName `
-DomainAccountType $DomainAccountType `
-OrganizationalUnitDistinguishedName $OuDistinguishedName `
-EncryptionType $EncryptionType
Update-AzStorageAccountAuthForAES256 -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName
OUの指定は例を挙げておきます(ドメイン:wvd2.jpの場合)
例:$OuDistinguishedName = “CN=Computers,DC=wvd2,DC=jp”
成功するとADのユーザとコンピュータにストレージアカウント名のコンピュータアカウントが作成されます。
3.AzureFiles設定(ロール割り当て)②(AzurePortal)
再びAzurePortalにてAzureFilesを見てみましょう。
Active Directoryが構成済みになっているかと思います。
構成済みになっていることを確認したらフォルダをクリックし、
アクセス制御(IAM)>ロール割り当ての追加
を行います。
役割:記憶域ファイルデータのSMB共有の管理者特権の共同作成者
を選択し、メンバにはAVDを使用するADユーザを選択してください。
4.FsLogix設定(各セッションホスト)
最後にFsLogixの設定を行います。
FsLogixを使用する場合、グループポリシーにて管理してる方も多いかと思いますが、
今回はセッションホストが一台なので、直接レジストリを編集しています。
※インストール方法は割愛させていただきます。
FsLogixの設定がまだ行われていない場合は
下記ページ内のリンクより FsLogix をダウンロードし、AVDに展開した Windows 10 にインストールしてください
https://docs.microsoft.com/en-us/fslogix/install-ht
それでは、レジストリを編集します。ない設定がある場合は追加してください
HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles
DeleteLocalProfileWhenVHDShouldApply:1 (REG_DWORD)
Enabled:1 (REG_DWORD)
FlipFlopProfileDirectoryName :1(REG_DWORD)
VHDLocations:\\<ストレージアカウント名>.file.core.windows.net\<AzureFilesの共有名>
例:\\profilefolder08.file.core.windows.net\userprofile
上記の設定はPowerShellを使って設定も可能です。
その場合はセッションホストリソース画面からRunPowerShellScriptを活用してみてください
5.確認
まず、AzureFiles内に何もデータがないことを確認します
先ほどストレージアカウントを作成した際にパブリックエンドポイントの設定をしたためリソースは確認できないかと思います。
なので、まずはクライアントIPらのアクセスも許可してあげます
ストレージアカウントのネットワークからクライアントアドレスを許可してあげます。
すると、AzureFilesの中身が見えるようになったかと思います。
空であることを確認したら、AVDでログインしてAzureFilesにユーザプロファイルが作成されることを確認しましょう
FsLogixが適用されていることが確認できました。AzureFilesを確認すると
ユーザプロファイルが作成されていました。
まとめ
以上の手順でIDベース認証を用いてAzureFilesにユーザプロファイルを保管できました。
手順自体はそこまで複雑ではないので、検証等でストレージの管理を簡単に行いたい時など選択肢の一つとして
検討してみてはいかがでしょうか