ユーザーが 1 つの資格情報セットを使用して Azure の仮想マシン (VM) にサインインできるようにするには、VM を Microsoft Entra Domain Services マネージド ドメインに参加させることができます。 VM を Domain Services マネージド ドメインに参加させると、ドメインのユーザー アカウントと資格情報を使用して、サーバーのサインインと管理を行うことができます。 マネージド ドメインからのグループ メンバーシップも適用され、VM 上のファイルまたはサービスへのアクセスを制御できます。
この記事では、CoreOS VM をマネージド ドメインに参加させる方法について説明します。
[前提条件]
このチュートリアルを完了するには、以下のリソースと特権が必要です。
- 有効な Azure サブスクリプション。
- Azure サブスクリプションをお持ちでない場合は、アカウントを作成してください。
- ご利用のサブスクリプションに関連付けられた Microsoft Entra テナント (オンプレミス ディレクトリまたはクラウド専用ディレクトリと同期されていること)。
- 必要に応じて、Microsoft Entra テナントを作成するか、ご利用のアカウントに Azure サブスクリプションを関連付けます。
- Microsoft Entra テナント内の Microsoft Entra Domain Services マネージド ドメインが有効化および構成されています。
- 必要であれば、1 つ目のチュートリアルで Microsoft Entra Domain Services のマネージド ドメインを作成して構成します。
- マネージド ドメインの一部であるユーザー アカウント。
- 名前の切り詰めによって生じる Active Directory での競合を防ぐため、最大 15 文字の一意の Linux VM 名。
CoreOS Linux VM を作成して接続する
Azure に既存の CoreOS Linux VM がある場合は、SSH を使用して接続し、次の手順に進んで VM の構成を開始します。
CoreOS 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 ドメイン名です。
- coreos は、マネージド ドメインに参加している CoreOS VM のホスト名です。
これらの名前を独自の値に更新してください。
127.0.0.1 coreos coreos.aaddscontoso.com
完了したら、エディターの コマンドを使用して :wq
ファイルを保存して終了します。
SSSD サービスを構成する
/etc/sssd/sssd.conf SSSD 構成を更新します。
sudo vi /etc/sssd/sssd.conf
次のパラメーターに独自のマネージド ドメイン名を指定します。
- domains (すべて大文字)
- [domain/AADDSCONTOSO] (AADDSCONTOSO はすべて大文字)
- ldap_uri
- ldap_search_base
- krb5_server
- krb5_realm (すべて大文字)
[sssd]
config_file_version = 2
services = nss, pam
domains = AADDSCONTOSO.COM
[domain/AADDSCONTOSO]
id_provider = ad
auth_provider = ad
chpass_provider = ad
ldap_uri = ldap://aaddscontoso.com
ldap_search_base = dc=aaddscontoso,dc=com
ldap_schema = rfc2307bis
ldap_sasl_mech = GSSAPI
ldap_user_object_class = user
ldap_group_object_class = group
ldap_user_home_directory = unixHomeDirectory
ldap_user_principal = userPrincipalName
ldap_account_expire_policy = ad
ldap_force_upper_case_realm = true
fallback_homedir = /home/%d/%u
krb5_server = aaddscontoso.com
krb5_realm = AADDSCONTOSO.COM
VM をマネージド ドメインに参加させる
SSSD 構成ファイルが更新された状態で、仮想マシンをマネージド ドメインに参加させます。
まず、
adcli info
コマンドを使用して、マネージド ドメインに関する情報を確認します。 次の例では、ドメイン AADDSCONTOSO.COM の情報を取得します。 独自のマネージド ドメイン名を、すべて大文字で指定します。sudo adcli info AADDSCONTOSO.COM
adcli info
コマンドでマネージド ドメインが見つからない場合は、次のトラブルシューティング手順を確認してください。- ドメインが VM から到達可能であることを確認します。 肯定的な応答が返されるかどうかを確認するには、
ping aaddscontoso.com
を試してください。 - VM が、マネージド ドメインが使用可能な同じ仮想ネットワークまたはピアリングされた仮想ネットワークにデプロイされていることを確認します。
- 仮想ネットワークの DNS サーバー設定が、マネージド ドメインのドメイン コントローラーを指すよう更新されていることを確認します。
- ドメインが VM から到達可能であることを確認します。 肯定的な応答が返されるかどうかを確認するには、
次に、
adcli join
コマンドを使用して VM をマネージド ドメインに参加させます。 マネージド ドメインの一部であるユーザーを指定します。 必要に応じて、Microsoft Entra ID のグループにユーザー アカウントを追加します。ここでも、マネージド ドメイン名はすべて大文字で入力する必要があります。 次の例では、
contosoadmin@aaddscontoso.com
という名前のアカウントを使用して Kerberos を初期化します。 マネージド ドメインの一部である独自のユーザー アカウントを入力します。sudo adcli join -D AADDSCONTOSO.COM -U contosoadmin@AADDSCONTOSO.COM -K /etc/krb5.keytab -H coreos.aaddscontoso.com -N coreos
vm がマネージド ドメインに正常に参加している場合、
adcli join
コマンドは情報を返しません。ドメイン参加構成を適用するには、SSSD サービスを開始します。
sudo systemctl start sssd.service
ドメイン アカウントを使用して VM にサインインする
VM がマネージド ドメインに正常に参加していることを確認するには、ドメイン ユーザー アカウントを使用して新しい SSH 接続を開始します。 ホーム ディレクトリが作成され、ドメインのグループ メンバーシップが適用されていることを確認します。
コンソールから新しい SSH 接続を作成します。
contosoadmin@aaddscontoso.com
などのssh -l
コマンドを使用してマネージド ドメインに属するドメイン アカウントを使用し、VM のアドレス (coreos.aaddscontoso.com など) を入力します。 Azure Cloud Shell を使用する場合は、内部 DNS 名ではなく、VM のパブリック IP アドレスを使用します。ssh -l contosoadmin@AADDSCONTOSO.com coreos.aaddscontoso.com
次に、グループ メンバーシップが正しく解決されていることを確認します。
id
マネージド ドメインのグループ メンバーシップが表示されます。
次のステップ
VM をマネージド ドメインに接続したり、ドメイン アカウントでサインインしたりする際に問題が発生した場合は、「 ドメイン参加の問題のトラブルシューティング」を参照してください。