LoginSignup
11
10

More than 3 years have passed since last update.

Hybrid Azure AD Join の検証用環境の動作確認とスタートアップ スクリプトによる解除の動作検証について

Posted at

はじめに

Hybrid Azure AD Join が構成される仕組みは図式化すると下記のとおりとなります。
image.png

通常 上記流れに記載されている、4. の SCP はオンプレミスの Active Direcotry の 「CN=Device Registration Configuration」の中に格納されており、フォレスト 単位で構成するものになります。

今回検証する内容は、Hybrid Azure AD Join の構成を本番環境に展開する前に、OU単位でグループ ポリシーを作成し、レジストリ内に SCP を作成することで、極端な話をすると 1 台単位で Hybrid Azure AD Join を構成するための動作を確認したいと思います。

弊社公開情報にて該当する内容は下記ドキュメントになります。

-参考情報
ハイブリッド Azure AD 参加の検証を制御する
URL:https://docs.microsoft.com/ja-jp/azure/active-directory/devices/hybrid-azuread-join-control

作業概要

今回の検証は以下の流れで行います。

  1. Azure AD Connect で既に SCP を構成済みの場合は手動で削除する
  2. グループ ポリシーにて SCP を手動構成する
  3. Hybrid Azure AD Join させたいコンピューターの OU に 2. で作成したグループ ポリシーをリンクさせる
  4. Hybrid Azure AD Join させることを確認する
  5. Hybrid Azure AD Join させたコンピューターを 2. の OU 以外(Hybrid Azure AD Join させない)に移動させる
  6. 移動した OU 上で「dsregcmd /leave」を実行するスタートアップ スクリプトを配置する
  7. 対象のコンピューターを再起動し、起動時に Hybrid Azure AD Join が解除されることを確認する
  8. 再度 2. の OU に移動後にログオンし Hybrid Azure AD Join が再構成されるか確認する。

※手順6. の部分、最初はログオン スクリプトで頑張ろうとしてたのですが、システム管理者権限で実行するためには、スタートアップ スクリプトではないといけないという、賢者からの啓示をいただき、手順を修正しています。
(実際にスタートアップ スクリプトでないと動作しませんでした、散々ハマりました)

やってみる

1. Azure AD Connect で既に SCP を構成済みの場合は手動で削除する

オンプレミス AD にサインインし、「スタート」→「Windows 管理ツール」→「ADSI エディター」の順に選択し ADSI エディターを起動します。
image.png

対象のリーフ オブジェクトを右クリックし、「プロパティ」を選択します。
image.png

属性エディターより、属性名「keywords」を選択し、「編集」をクリックします。
image.png

AzureADIdを選択し、「削除」→「OK」の順にクリックします。
image.png

再度「編集」画面を開き azureADName を選択し、「削除」→「OK」の順にクリックします。
image.png

最後に「適用」→「OK」の順にクリックし、属性エディターを閉じます。
image.png

これで Azure AD Connect で構成した SCP を手動で削除できました。

2. グループ ポリシーにて SCP を手動構成する

詳細な手順は下記公開情報にも記載されていますので、あわせて参考にしてください。

SCP のクライアント側レジストリ設定を構成する
URL:https://docs.microsoft.com/ja-jp/azure/active-directory/devices/hybrid-azuread-join-control#configure-client-side-registry-setting-for-scp

「管理ツール」→「グループ ポリシーの管理」の順にクリックします。
image.png

新しいグループ ポリシーを作成します。(名前は任意です)
image.png

作成したグループ ポリシー右クリックにて編集し、「コンピューターの構成」→「基本設定」→「Windows 設定」→「レジストリ」の順に選択します。
image.png

「レジストリ」 を右クリックして、 「新規」→ 「レジストリ項目」の順に選択します。
image.png

「全般」 タブで、以下のとおり構成します。

項目
アクション Update
Hive HKEY_LOCAL_MACHINE
キー パス SOFTWARE\Microsoft\Windows\CurrentVersion\CDJ\AAD
値の名前 TenantId
値の型 REG_SZ
値のデータ Azure AD インスタンスの GUID またはディレクトリ ID

※ ディレクトリ ID はAzure portal > [Azure Active Directory] > [プロパティ] > [ディレクトリ ID] にあります|
image.png

[全般] タブで、以下のとおり構成します。

項目
アクション Update
Hive HKEY_LOCAL_MACHINE
キー パス SOFTWARE\Microsoft\Windows\CurrentVersion\CDJ\AAD
値の名前 TenantName
値の型 REG_SZ
値のデータ Azure AD で確認済みのドメイン名 (contoso.onmicrosoft.com など、またはディレクトリ内の任意の確認済みのドメイン名)

image.png

3. Hybrid Azure AD Join させたいコンピューターの OU に 2. で作成したグループ ポリシーをリンクさせる

作成したグループ ポリシーを OU にリンクさせます。
OU 名「Add_Computers」を右クリックし、「既存の GPO のリンク」をクリックします。

image.png

作成したグループ ポリシー名「ClientSideSCP」を選択し、「OK」をクリックします。
image.png

OU 名「Add_Computers」に対象のグループ ポリシーがリンクされたことを確認します。
image.png

最後に gpupdate コマンドでグループ ポリシーを反映させます。

4. Hybrid Azure AD Join させることを確認する

Hybrid Azure AD Join させるためには、対象の Windows 10 コンピューターにログオンする必要があります。
また、PRT を取得するためには、Azure AD に同期済みのユーザーでログオンする必要があります。

Windows 10 コンピューターにログオン後に、「regedit」コマンドでレジストリ エディターを開いてみましょう。

下記のとおり、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CDJ\AAD」配下に、オンプレミス AD で設定したグループ ポリシーの内容が反映されていることが確認できます。
(Default)と書いてある設定は私の作業ミスです、検証して分かりましたが、値の名前も正しく設定しないと、Hybrid Azure AD Join は完成しません。(ハマりポイントです)
image.png

そして、対象のコンピューターで「dsregcmd /status」コマンドレットをたたくと、下記のとおり PRT が取得できていることが確認できます。
image.png

Azure ポータル側も確認してみると、下記のとおり Hybrid Azure AD Join としてデバイス参加していることが分かります。
image.png

5. Hybrid Azure AD Join させたコンピューターを 2. の OU 以外(Hybrid Azure AD Join させない)に移動させる

今度は、 Hybrid Azure AD Join を解除させるための準備を始めます。
まずは、Hybrid Azure AD Join を行う OU (Add_Computers)から Hybrid Azure AD Join を行わない OU (Remove_Computers) に移動させます。

現状の設定です。Add_Computers に対象のコンピューターが所属しています。右クリックし、「移動」を選択します。
image.png

Remove_Computersを選択し「OK」をクリックします。
image.png

OU名 Remove_Computers に移動されていることを確認します。
image.png

6. 移動した OU 上で「dsregcmd /leave」を実行するログオン スクリプトを配置する

OU 名Remove_Computersに移動しただけでは、当然ですが Hybrid Azure AD Join は解除されません。
明示的に「dsregcmd /leave」コマンドレットを実行する必要があります。
今回は、直接ユーザーがコンピューターにログオンしてコマンドレットを実行するのではなく、オンプレミス AD のログオン スクリプトを配置し、リモートで Hybrid Azure AD Join を解除できるか検証してみます。

実行するファイルとして、それぞれバッチファイルとして下記内容を用意しました。


startup.bat

@echo off
pushd %~dp0
powershell.exe -NoProfile -ExecutionPolicy Unrestricted -Command "Start-Process "dsregcmdexe" -verb Runas" 
@popd

dsregcmdexe.bat


dsregcmd /leave
timeout 60
shutdown -r 

グループ ポリシーの管理より、新しいグループ ポリシーを作成します。(名前は任意)
image.png

対象のグループ ポリシーを編集し、「コンピューターの構成」→「ポリシー」→「Windowsの設定」→「スクリプト(スタートアップ/シャットダウン)の」の順に選択します。
image.png

スタートアップを選択し、右クリックより「プロパティ」をクリックします。
image.png

startup.bat ファイルを選択します。対象のファイルが下記のとおり、ログオン スクリプトのフォルダに事前に格納しておく必要があります。
(\shyamag014.work\SysVol\shyamag014.work\Policies{5CA65F2E-C0B2-4FF3-BBF7-E6DE738D3AD3}\Machine\Scripts\Startup)
image.png

スクリプトの一覧に「startup.bat」が表示されていることを確認し、「OK」をクリックします。
image.png

同様に「dsregcmdexe.bat」スクリプトも追加し、「OK」をクリックします。
image.png

OU名「Remove_Computers」を選択し右クリックより、「既存の GPO のリンク」をクリックします。
image.png

作成した「leavepolicy」を選択し、「OK」をクリックします。
image.png

Remove_Computers に対象のグループ ポリシーがリンクされたことを確認します。
image.png

最後に、gpupdate コマンドでグループ ポリシーを適用させます。

補足として、既定ではログオン後のスクリプトの実行が「5分後」になっているため、ログオン後に即時で反映させたい場合は「ログオン スクリプトの遅延を構成する」を「無効」に設定します。

image.png

7. 対象のコンピューターを再起動し、 Hybrid Azure AD Join が解除されることを確認する

※補足
スクリプト実行時に下記のようなエラーが出力される場合は、UNC path を無効化する必要があります。

UNC paths are not supported.  Defaulting to Windows directory.

レジストリ エディターにて、「Command Processor」の配下に「DisableUNCCheck」というファイル名を作成し、値「1」をセットします。
*編集対象は実行するコンピューター側のレジストリになります。
image.png

スタートアップ スクリプトなので、対象のコンピューターを再起動しログオンします。
ログオン時に timeout コマンドで指定した時間によりサインアウトされる旨が通知されます。
image.png

コマンドプロンプトより「dsregcmd /status」コマンドレットをたたくと、下記のとおり、AzureADJoined が No になっていることが確認できます。
image.png

これで、OU 名 Remove_Computers に配置することで、 Hybrid Azure AD Join を解除することができました。
因みにですが、念のため Azure ポータルからも確認すると、下記のとおり対象のコンピューター(Windows10-18098)が消えていることが確認できます。
image.png

8. 再度 2. の OU に移動後にログオンし Hybrid Azure AD Join が再構成されるか確認する。

最後に、再度、 OU 名 Add_Computers に対象のコンピューターを移動させて 、 Hybrid Azure AD Join が再構成されることを確認します。

OU 名 Remove_Computers を選択し、対象のコンピューター(Windows10-18098)を右クリックから「移動」を選択します。
image.png

移動先として、「Add_Computers」を選択し、「OK」をクリックします。
image.png

Add_Computers に対象のコンピューターが移動したことを確認します。
image.png

では、対象のコンピューターに Azure AD 同期済みユーザーでログオンしてみましょう。
資格情報を入力して「OK」をクリックします。
image.png

即時には Hybrid Azure AD Join は構成されないのでしばらく待ちます。
具体的には、下記のように Diagnostic Test を順番に行っており、すべてのテストがクリアされると Azure AD にデバイスが Join されます。
image.png

AzureADJoin が YES になりました。
PRTを取得するためには、もう1度ログオフ、ログオンする必要があります。
(画面のロック、ロックアウトでも可です)
image.png

再ログオン後に、PRTが取得できていることを確認できました。(AzureAdPrt:YES)
image.png

Azure ポータル上でも問題なくデバイスが Hybrid Azure AD Join として登録されていることを確認できました。
image.png

おわりに

今回の検証では、5月30日に公開された比較的新しい公開情報をもとに、OU 内のレジストリに SCP を作成し、1台単位で Hybrid Azure AD Join を構成し、スタートアップ スクリプトで Hybrid Azure AD Join をリモートで解除し、再度、元の OU に戻して Hybrid Azure AD Join が再構成できる、という検証を行いました。
本来であれば、Azure AD Connect を使い、フォレスト単位で構成するのが通常の運用方法ですが、まずは Hybrid Azure AD Join を構成できるか、という動作検証をしたい場合の手順を確認しました。

少しでも今回の Blog の内容が参考になれば幸いです。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10