NIS と Active Directory を統合する

最終公開日 : Nov 13, 2026
この記事では、SSSD を使用して Linux VDA 上で NIS と Windows Active Directory (AD) を統合する方法について説明します。Linux VDA は Citrix Virtual Apps and Desktops のコンポーネントと見なされます。その結果、Windows AD 環境に緊密に適合します。
UID および GID プロバイダーとして AD の代わりに NIS を使用するには、アカウント情報(ユーザー名とパスワードの組み合わせ)が AD と NIS で同じである必要があります。
注:
認証は引き続き AD サーバーによって実行されます。NIS+ はサポートされていません。NIS を UID および GID プロバイダーとして使用する場合、Windows サーバーからの POSIX 属性は使用されなくなります。
ヒント:
この方法は、Linux VDA を展開する非推奨の方法であり、特別なユースケースでのみ使用されます。RHEL/CentOS ディストリビューションの場合は、Amazon Linux 2、CentOS、RHEL、Rocky Linux に Linux VDA を手動でインストールする の手順に従ってください。Ubuntu ディストリビューションの場合は、Ubuntu に Linux VDA を手動でインストールする の手順に従ってください。
SSSD とは?
SSSD はシステムデーモンです。その主な機能は、システムにキャッシュとオフラインサポートを提供できる共通のフレームワークを通じて、リモートリソースの識別と認証へのアクセスを提供することです。PAM モジュールと NSS モジュールの両方を提供し、将来的には拡張ユーザー情報のための D-BUS ベースのインターフェイスをサポートできます。また、ローカルユーザーアカウントと拡張ユーザーデータを保存するためのより優れたデータベースも提供します。

NIS と AD を統合する

NIS を AD と統合するには、次の手順を実行します。

ステップ 1:Linux VDA を NIS クライアントとして追加する

NIS クライアントを構成します。
yum –y install ypbind rpcbind oddjob-mkhomedir
NIS ドメインを設定します。
ypdomainname nis.domain
echo "NISDOMAIN=nis.domain" >> /etc/sysconfig/network
NIS サーバーとクライアントの IP アドレスを /etc/hosts に追加します。
{NIS server IP address}   server.nis.domain nis.domain
authconfig を使用して NIS を構成します。
sudo authconfig --enablenis --nisdomain=nis.domain --nisserver=server.nis.domain --enablemkhomedir --update
nis.domain は NIS サーバーのドメイン名を表します。server.nis.domain は NIS サーバーのホスト名であり、NIS サーバーの IP アドレスでもかまいません。
NISサービスを設定します。
sudo systemctl start rpcbind ypbind

sudo systemctl enable rpcbind ypbind
NIS構成が正しいことを確認します。
ypwhich
アカウント情報がNISサーバーから利用可能であることを検証します。
getent passwd nisaccount
注:
nisaccount は、NISサーバー上の実際のNISアカウントを表します。UID、GID、ホームディレクトリ、およびログインシェルが正しく構成されていることを確認してください。

ステップ2:Sambaを使用してドメインに参加し、ホストキータブを作成する

SSSDは、ドメインへの参加やシステムキータブファイルの管理のためのADクライアント機能を提供しません。これらの機能を実現するには、いくつかの方法があります。
  • adcli
  • realmd
  • Winbind
  • Samba
このセクションの情報は、Sambaのアプローチのみを説明しています。realmdについては、RHELまたはCentOSベンダーのドキュメントを参照してください。これらの手順は、SSSDを構成する前に実行する必要があります。
Sambaを使用してドメインに参加し、ホストキータブを作成する:
適切に構成されたファイルを持つLinuxクライアントで:
  • /etc/krb5.conf
  • /etc/samba/smb.conf:
SambaおよびKerberos認証用にマシンを構成します。
sudo authconfig --smbsecurity=ads --smbworkgroup=domain --smbrealm=REALM --krb5realm=REALM --krb5kdc=fqdn-of-domain-controller --update
ここで、REALM は大文字のKerberosレルム名であり、domain はドメインのNetBIOS名です。
KDCサーバーとレルム名のDNSベースのルックアップが必要な場合は、上記のコマンドに次の2つのオプションを追加します。
--enablekrb5kdcdns --enablekrb5realmdns
/etc/samba/smb.conf を開き、authconfig ツールによって生成されたセクションの後に、\[Global\] セクションの下に次のエントリを追加します。
kerberos method = secrets and keytab
winbind offline logon = no
Windowsドメインに参加するには、ドメインコントローラーに到達可能であり、コンピューターをドメインに追加する権限を持つADユーザーアカウントが必要です。
sudo net ads join REALM -U user
REALM は大文字のKerberosレルム名であり、user はコンピューターをドメインに追加する権限を持つドメインユーザーです。

ステップ3:SSSDをセットアップする

SSSDのセットアップは、次の手順で構成されます。
  • Linuxクライアントマシンに sssd-ad および sssd-proxy パッケージをインストールします。
  • さまざまなファイル(例:sssd.conf)に構成変更を加えます。
  • sssdサービスを開始します。

/etc/sssd/sssd.conf

sssd.conf の構成例(必要に応じてオプションを追加できます):
[sssd]
config_file_version = 2
domains = EXAMPLE
services = nss, pam

[domain/EXAMPLE]
# Uncomment if you need offline logins
# cache_credentials = true
re_expression = (((?P<domain>[^\\]+)\\(?P<name>.+$))|((?P<name>[^@]+)@(?P<domain>.+$))|(^(?P<name>[^@\\]+)$))
id_provider = proxy
proxy_lib_name = nis
auth_provider = ad
access_provider = ad

# Should be specified as the long version of the Active Directory domain.
ad_domain = EXAMPLE.COM

# Kerberos settings
krb5_ccachedir = /tmp
krb5_ccname_template = FILE:%d/krb5cc_%U

# Uncomment if service discovery is not working
# ad_server = server.ad.example.com

# Comment out if the users have the shell and home dir set on the AD side
default_shell = /bin/bash
fallback_homedir = /home/%d/%u

# Uncomment and adjust if the default principal SHORTNAME$@REALM is not available
# ldap_sasl_authid = host/client.ad.example.com@AD.EXAMPLE.COM
ad.domain.com、server.ad.example.com を対応する値に置き換えます。詳細については、sssd-ad(5) - Linux man pageを参照してください。
sssd.conf のファイルの所有権とアクセス許可を設定します。
chown root:root /etc/sssd/sssd.conf
chmod 0600 /etc/sssd/sssd.conf restorecon /etc/sssd/sssd.conf

ステップ4:NSS/PAMを構成する

RHEL/CentOS:
authconfig を使用してSSSDを有効にします。ホームディレクトリの作成がSELinuxと互換性があることを確認するために oddjob-mkhomedir をインストールします。
authconfig --enablesssd --enablesssdauth --enablemkhomedir --update

sudo systemctl start sssd

sudo systemctl enable sssd
ヒント:
Linux VDA設定を構成する際、SSSDの場合、Linux VDAクライアントに特別な設定はないことに注意してください。ctxsetup.sh スクリプトの追加ソリューションには、デフォルト値を使用してください。

ステップ 5: Kerberos構成の確認

Linux VDAでKerberosが正しく構成されていることを確認するには、システム keytab ファイルが作成され、有効なキーが含まれていることを確認します。
sudo klist -ke
このコマンドは、プリンシパル名と暗号スイートのさまざまな組み合わせで利用可能なキーのリストを表示します。これらのキーを使用してマシンをドメインコントローラーで認証するには、Kerberos kinit コマンドを実行します。
sudo kinit –k MACHINE\$@REALM
マシン名とレルム名は大文字で指定する必要があります。シェルによる置換を防ぐため、ドル記号 ($) はバックスラッシュ (\\) でエスケープする必要があります。一部の環境では、DNSドメイン名がKerberosレルム名と異なります。レルム名が使用されていることを確認してください。このコマンドが成功した場合、出力は表示されません。
マシンアカウントのTGTチケットがキャッシュされていることを、以下を使用して確認します。
sudo klist -ke

ステップ 6: ユーザー認証の確認

getent コマンドを使用して、ログオン形式がサポートされているか、およびNSSが機能するかどうかを確認します。
sudo getent passwd DOMAIN\\username
DOMAIN パラメーターは、短いバージョンのドメイン名を示します。別のログオン形式が必要な場合は、まず getent コマンドを使用して確認します。
サポートされているログオン形式は次のとおりです。
  • ダウンレベルログオン名: DOMAIN\username
  • NetBIOSサフィックス形式: username@DOMAIN
SSSD PAMモジュールが正しく構成されていることを確認するには、ドメインユーザーアカウントを使用してLinux VDAにログオンします。このドメインユーザーアカウントは以前に使用されたことがないものとします。
sudo ssh localhost –l DOMAIN\\username

id -u
コマンドによって返された uid に対応するKerberos資格情報キャッシュファイルが作成されたことを確認します。
ls /tmp/krb5cc_{uid}
ユーザーのKerberos資格情報キャッシュ内のチケットが有効で、期限切れになっていないことを確認します。
klist