Ubuntu Linux 仮想マシンを Microsoft Entra Domain Services のマネージド ドメインに参加させる
ユーザーが 1 セットの資格情報を使用して Azure の仮想マシン (VM) にサインインできるようにするには、Microsoft Entra Domain Services のマネージド ドメインに VM を参加させます。 VM を Domain Services のマネージド ドメインに参加させると、ドメインのユーザー アカウントと資格情報を使用して、サーバーにサインインして管理することができます。 マネージド ドメインのグループ メンバーシップも適用され、VM 上のファイルまたはサービスへのアクセスを制御できるようになります。
この記事では、Ubuntu Linux VM をマネージド ドメインに参加させる方法について説明します。
前提条件
このチュートリアルを完了するには、以下のリソースと特権が必要です。
- 有効な Azure サブスクリプション
- Azure サブスクリプションをお持ちでない場合は、アカウントを作成してください。
- ご利用のサブスクリプションに関連付けられた Microsoft Entra テナント (オンプレミス ディレクトリまたはクラウド専用ディレクトリと同期されていること)。
- 必要に応じて、Microsoft Entra テナントを作成するか、ご利用のアカウントに Azure サブスクリプションを関連付けます。
- Microsoft Entra テナントで有効にされていて、構成されている Microsoft Entra Domain Services マネージド ドメイン。
- 必要であれば、1 つ目のチュートリアルで 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 をデプロイします。
- VM を Microsoft Entra Domain Services のマネージド ドメインとは異なるサブネットにデプロイします。
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 をマネージド ドメインに参加させるには、VM にいくつかの追加パッケージが必要です。 これらのパッケージをインストールして構成するには、apt-get
を使用してドメイン参加ツールを更新およびインストールします
Kerberos のインストールの間に、krb5-user パッケージでは、領域名をすべて大文字で入力するように求められます。 たとえば、マネージド ドメインの名前が aaddscontoso.com の場合、「AADDSCONTOSO.COM」を領域として入力します。 インストールによって、[realm]
セクションと [domain_realm]
セクションが /etc/krb5.conf 構成ファイルに書き込まれます。 領域はすべて大文字で指定します。
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 をマネージド ドメインに参加させます。 前のkinit
コマンドで指定した、マネージド ドメインの一部である同じユーザー アカウントを使用します (contosoadmin@AADDSCONTOSO.COM
など)。sudo realm join --verbose AADDSCONTOSO.COM -U 'contosoadmin@AADDSCONTOSO.COM' --install=/
VM をマネージド ドメインに参加させるにはしばらくかかります。 次の出力例では、VM がマネージド ドメインに正常に参加したことが示されています。
Successfully enrolled machine in realm
VM のドメイン参加プロセスを正常に完了できない場合は、VM のネットワーク セキュリティ グループで、マネージド ドメインの仮想ネットワーク サブネットに対する TCP + UDP ポート 464 での送信 Kerberos トラフィックが許可されていることを確認します。
"Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database) (未指定の GSS の障害。マイナー コードで詳細情報が提供されている可能性があります (Kerberos データベースでサーバーが見つかりません))" というエラーを受け取ったら、/etc/krb5.conf ファイルを開き、[libdefaults]
セクションに次のコードを追加して、もう一度実行してください。
rdns=false
SSSD の構成を更新する
前のステップでインストールされたパッケージの 1 つは、システム セキュリティ サービス デーモン (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 の構成を更新します。
エディターで 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
コマンドを使用して、common-session ファイルを保存して終了します。
"AAD DC Administrators" グループに sudo 特権を付与する
AAD DC Administrators グループのメンバーに Ubuntu VM での管理特権を付与するには、 /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 接続を作成します。
ssh -l
コマンドを使用して、マネージド ドメインに属しているドメイン アカウントを使用して (例:contosoadmin@aaddscontoso.com
)、VM のアドレス (例: ubuntu.aadds.contoso.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 の接続、またはドメイン アカウントでのサインインに関して問題がある場合は、「ドメイン参加の問題のトラブルシューティング」を参照してください。