Ubuntu Linux 仮想マシンを Microsoft Entra Domain Services マネージド ドメインに参加させる
ユーザーが 1 つの資格情報セットを使用して Azure の仮想マシン (VM) にサインインできるようにするには、VM を Microsoft Entra Domain Services マネージド ドメインに参加させることができます。 VM を Domain Services マネージド ドメインに参加させると、ドメインのユーザー アカウントと資格情報を使用して、サーバーのサインインと管理を行うことができます。 マネージド ドメインからのグループ メンバーシップも適用され、VM 上のファイルまたはサービスへのアクセスを制御できます。
この記事では、Ubuntu Linux VM をマネージド ドメインに参加させる方法について説明します。
前提 条件
このチュートリアルを完了するには、次のリソースと特権が必要です。
- アクティブな Azure サブスクリプション。
- Azure サブスクリプションをお持ちでない場合は、アカウント を作成。
- サブスクリプションに関連付けられている Microsoft Entra テナント。オンプレミスディレクトリまたはクラウド専用ディレクトリと同期されます。
- 必要に応じて、Microsoft Entra テナント を作成するか、Azure サブスクリプションをアカウントに関連付けます。
- Microsoft Entra Domain Services のマネージド ドメインが有効化され、Microsoft Entra テナント内で設定されています。
- 必要に応じて、最初のチュートリアル では、Microsoft Entra Domain Services マネージド ドメインを作成して構成します。
- マネージド ドメインの一部であるユーザー アカウント。 ユーザーの SAMAccountName 属性が自動生成されていないことを確認します。 Microsoft Entra テナント内の複数のユーザー アカウントに同じ mailNickname 属性がある場合、各ユーザーの SAMAccountName 属性が自動生成されます。 詳細については、「Microsoft Entra Domain Services マネージド ドメインでのオブジェクトと資格情報の同期方法」を参照してください。
- Active Directory で競合を引き起こす可能性のある名前の切り捨てを回避するために、最大 15 文字の一意の Linux VM 名。
Ubuntu Linux VM を作成して接続する
Azure に既存の Ubuntu Linux VM がある場合は、SSH を使用して接続し、次の手順に進み、VM の構成開始します。
Ubuntu Linux VM を作成する必要がある場合、またはこの記事で使用するテスト VM を作成する場合は、次のいずれかの方法を使用できます。
VM を作成するときは、仮想ネットワークの設定に注意して、VM がマネージド ドメインと通信できることを確認します。
- Microsoft Entra Domain Services を有効にしたのと同じ仮想ネットワークまたはピアリングされた仮想ネットワークに VM をデプロイします。
- MICROSOFT Entra Domain Services マネージド ドメインとは異なるサブネットに VM をデプロイします。
VM がデプロイされたら、手順に従って SSH を使用して VM に接続します。
hosts ファイルを構成する
VM ホスト名がマネージド ドメイン用に正しく構成されていることを確認するには、/etc/hosts ファイルを編集し、ホスト名を設定します。
sudo vi /etc/hosts
hosts ファイルで、localhost アドレスを更新します。 次の例では、
- aaddscontoso.com は、マネージド ドメインの DNS ドメイン名です。
- ubuntu は、マネージド ドメインに参加している Ubuntu VM のホスト名です。
これらの名前を独自の値に更新してください。
127.0.0.1 ubuntu.aaddscontoso.com ubuntu
完了したら、エディターの :wq
コマンドを使用して、hosts ファイルを保存して終了します。
必要なパッケージをインストールする
VM をマネージド ドメインに参加させるために、いくつかの追加パッケージが必要です。 これらのパッケージをインストールして構成するには、apt-get
を使用してドメイン参加ツールを更新してインストールします
Kerberos のインストール中に、krb5-user パッケージは、レルム名をすべて大文字で入力するように求めます。 たとえば、マネージド ドメインの名前が aaddscontoso.comされている場合は、領域として「AADDSCONTOSO.COM」と入力します。 インストールでは、/etc/krb5.conf 構成ファイルに [realm]
セクションと [domain_realm]
セクションを書き込みます。 領域を必ずすべて大文字(ALL UPPERCASE)で指定してください。
sudo apt-get update
sudo apt-get install krb5-user samba sssd sssd-tools libnss-sss libpam-sss ntp ntpdate realmd adcli
ネットワーク タイム プロトコル (NTP) の構成
ドメイン通信が正しく機能するためには、Ubuntu VM の日時がマネージド ドメインと同期する必要があります。 マネージド ドメインの NTP ホスト名を /etc/ntp.conf ファイルに追加します。
エディターで ntp.conf ファイルを開きます。
sudo vi /etc/ntp.conf
ntp.conf ファイルで、マネージド ドメインの DNS 名を追加する行を作成します。 次の例では、aaddscontoso.com のエントリが追加されています。 独自の DNS 名を使用します。
server aaddscontoso.com
完了したら、エディターの
:wq
コマンドを使用して、ntp.conf ファイルを保存して終了します。VM がマネージド ドメインと同期されていることを確認するには、次の手順が必要です。
- NTP サーバーを停止する
- マネージド ドメインからの日付と時刻を更新する
- NTP サービスを開始する
これらの手順を完了するには、次のコマンドを実行します。
ntpdate
コマンドで独自の DNS 名を使用します。sudo systemctl stop ntp sudo ntpdate aaddscontoso.com sudo systemctl start ntp
VM をマネージド ドメインに参加させる
必要なパッケージが VM にインストールされ、NTP が構成されたので、VM をマネージド ドメインに参加させます。
realm discover
コマンドを使用してマネージド ドメインを検出します。 次の例では、領域 AADDSCONTOSO.COMを検出します。 独自の管理ドメイン名をすべて大文字で指定してください。sudo realm discover AADDSCONTOSO.COM
realm discover
コマンドでマネージド ドメインが見つからない場合は、次のトラブルシューティング手順を確認してください。- ドメインが VM から到達可能であることを確認します。 肯定的な応答が返されるかどうかを確認するには、
ping aaddscontoso.com
を試してください。 - VM が、マネージド ドメインが使用可能な同じ仮想ネットワークまたはピアリングされた仮想ネットワークにデプロイされていることを確認します。
- 仮想ネットワークの DNS サーバー設定が、マネージド ドメインのドメイン コントローラーを指すよう更新されていることを確認します。
- ドメインが VM から到達可能であることを確認します。 肯定的な応答が返されるかどうかを確認するには、
次に、
kinit
コマンドを使用して Kerberos を初期化します。 マネージド ドメインの一部であるユーザーを指定します。 必要に応じて、Microsoft Entra IDのグループにユーザー アカウントを追加します。ここでも、マネージド ドメイン名はすべて大文字で入力する必要があります。 次の例では、
contosoadmin@aaddscontoso.com
という名前のアカウントを使用して Kerberos を初期化します。 マネージド ドメインの一部である独自のユーザー アカウントを入力します。sudo kinit -V contosoadmin@AADDSCONTOSO.COM
最後に、
realm join
コマンドを使用して、VM をマネージド ドメインに参加させます。contosoadmin@AADDSCONTOSO.COM
など、前のkinit
コマンドで指定したマネージド ドメインの一部であるのと同じユーザー アカウントを使用します。sudo realm join --verbose AADDSCONTOSO.COM -U 'contosoadmin@AADDSCONTOSO.COM' --install=/
VM をマネージド ドメインに参加させるのにしばらく時間がかかります。 次の出力例は、VM がマネージド ドメインに正常に参加したことを示しています。
Successfully enrolled machine in realm
VM がドメイン参加プロセスを正常に完了できない場合は、VM のネットワーク セキュリティ グループが、TCP + UDP ポート 464 でマネージド ドメインの仮想ネットワーク サブネットへの送信 Kerberos トラフィックを許可していることを確認します。
指定されていない GSS の失敗 エラーを受け取った場合には、マイナー コードが追加の情報を提供します (Kerberos データベースにサーバーが見つかりません)。この場合、/etc/krb5.conf ファイルを開き、[libdefaults]
セクションに次のコードを追加して、再試行してください。
rdns=false
SSSD 構成を更新する
前の手順でインストールしたパッケージの 1 つは、System Security Services Daemon (SSSD) 用でした。 ユーザーがドメイン資格情報を使用して VM にサインインしようとすると、SSSD は要求を認証プロバイダーに中継します。 このシナリオでは、SSSD は Domain Services を使用して要求を認証します。
エディターで sssd.conf ファイルを開きます。
sudo vi /etc/sssd/sssd.conf
次のように、use_fully_qualified_names の行をコメント アウトします。
# use_fully_qualified_names = True
完了したら、エディターの
:wq
コマンドを使用して、sssd.conf ファイルを保存して終了します。変更を適用するには、SSSD サービスを再起動します。
sudo systemctl restart sssd
ユーザー アカウントとグループの設定を構成する
VM がマネージド ドメインに参加し、認証用に構成されている場合、完了するユーザー構成オプションがいくつかあります。 これらの構成の変更には、パスワードベースの認証を許可することや、ドメイン ユーザーが最初にサインインするときにローカル VM にホーム ディレクトリを自動的に作成することが含まれます。
SSH のパスワード認証を許可する
既定では、ユーザーは SSH 公開キーベースの認証を使用してのみ VM にサインインできます。 パスワードベースの認証が失敗します。 VM をマネージド ドメインに参加させる場合、これらのドメイン アカウントではパスワードベースの認証を使用する必要があります。 次のように、パスワードベースの認証を許可するように SSH 構成を更新します。
手記
Ubuntu Marketplace イメージには、通常、/etc/ssh/sshd_config.d の下にいくつかの構成オプションが設定されています。これには、50-cloud-init.conf ファイルの passwordAuthentication 含まれます。そのため、次の手順で設定されたものが上書きされないように、そのファイルも必ず更新してください。
エディターで sshd_conf ファイルを開きます。
sudo vi /etc/ssh/sshd_config
PasswordAuthentication の行を「yes」に更新します。
PasswordAuthentication yes
完了したら、エディターの
:wq
コマンドを使用して、sshd_conf ファイルを保存して終了します。変更を適用し、ユーザーがパスワードを使用してサインインできるようにするには、SSH サービスを再起動します。
sudo systemctl restart ssh
ホーム ディレクトリの自動作成を構成する
ユーザーが最初にサインインしたときにホーム ディレクトリの自動作成を有効にするには、次の手順を実行します。
エディターで
/etc/pam.d/common-session
ファイルを開きます。sudo vi /etc/pam.d/common-session
このファイルの行
session optional pam_sss.so
の下に次の行を追加します。session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
完了したら、エディターの
:wq
コマンドを使用して、共通セッション ファイルを保存して終了します。
"AAD DC Administrators" グループに sudo 特権を付与する
Ubuntu VM で AAD DC Administrators グループの管理者特権のメンバーに付与するには、/etc/sudoersにエントリを追加します。 追加すると、AAD DC Administrators グループのメンバーは、Ubuntu VM で sudo
コマンドを使用できます。
編集のために sudoers ファイルを開きます。
sudo visudo
/etc/sudoers ファイルの末尾に、 次のエントリを追加してください。
# Add 'AAD DC Administrators' group members as admins. %AAD\ DC\ Administrators ALL=(ALL) NOPASSWD:ALL
完了したら、
Ctrl-X
コマンドを使用してエディターを保存して終了します。
ドメイン アカウントを使用して VM にサインインする
VM がマネージド ドメインに正常に参加したことを確認するには、ドメイン ユーザー アカウントを使用して新しい SSH 接続を開始します。 ホーム ディレクトリが作成され、ドメインのグループ メンバーシップが適用されていることを確認します。
コンソールから新しい SSH 接続を作成します。
contosoadmin@aaddscontoso.com
などのssh -l
コマンドを使用してマネージド ドメインに属するドメイン アカウントを使用し、VM のアドレス (ubuntu.aaddscontoso.comなど) を入力します。 Azure Cloud Shell を使用する場合は、内部 DNS 名ではなく、VM のパブリック IP アドレスを使用します。sudo ssh -l contosoadmin@AADDSCONTOSO.com ubuntu.aaddscontoso.com
VM に正常に接続したら、ホーム ディレクトリが正しく初期化されたことを確認します。
sudo pwd
ユーザー アカウントと一致する独自のディレクトリを持つ /home ディレクトリに存在する必要があります。
次に、グループ メンバーシップが正しく解決されていることを確認します。
sudo id
マネージド ドメインのグループ メンバーシップが表示されます。
AAD DC Administrators グループのメンバーとして VM にサインインした場合は、
sudo
コマンドを正しく使用できることを確認します。sudo apt-get update
次の手順
VM をマネージド ドメインに接続したり、ドメイン アカウントを使用してサインインしたりする際に問題が発生した場合は、「ドメイン参加の問題のトラブルシューティング」を参照してください。