Ubuntu デスクトップで True SSO をサポートするには、Samba と Winbind のソリューションを使用して、デスクトップと Active Directory ドメインを統合します。
Ubuntu デスクトップと Active Directory ドメインを統合するには、次の手順に従います。
説明の中で、Ubuntu デスクトップのホスト名などのネットワーク構成のエンティティをプレースホルダーで表している部分があります。次の表を参考にして、これらのプレースホルダーの値をご使用の環境に合わせて変更してください。
プレースホルダーの値 |
説明 |
dns_IP_ADDRESS |
DNS ネーム サーバの IP アドレス |
mydomain.com |
Active Directory ドメインの DNS 名 |
MYDOMAIN.COM |
Active Directory ドメインの DNS 名。すべて大文字にします。 |
myhost |
Ubuntu デスクトップのホスト名 |
MYDOMAIN |
ワークグループの DNS 名または Samba サーバが含まれている NT ドメインの DNS 名。すべて大文字にします。 |
ads-hostname |
Active Directory サーバのホスト名 |
admin-user |
Active Directory ドメインの管理者のユーザー名 |
前提条件
- Active Directory (AD) サーバが Linux システムの DNS で解決できる。
- Linux システムで NTP (Network Time Protocol) が設定されている。
手順
- Ubuntu デスクトップで samba パッケージと winbind パッケージをインストールします。
sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
- プロンプトが表示されたら、次のように Kerberos Authentication の設定を行います。
- [Default Kerberos version 5 realm(デフォルトの Kerberos バージョン 5 レルム)] に、Active Directory ドメインの DNS 名をすべて大文字で入力します。
たとえば、Active Directory ドメインの名前が
mydomain.com の場合、
MYDOMAIN.COM と入力します。
- [Kerberos servers for your realm(レルムの Kerberos s サーバ)] で、Active Directory サーバのホスト名を入力します(この手順の例では ads_hostname)。
- [Administrative server for your Kerberos realm(Kerberos レルムの管理サーバ)] に、Active Directory ドメインのホスト名を再度入力します。
- PAM の設定を更新します。
- PAM の設定ページを開きます。
- [Create Home Directory on Login(ログイン時にホーム ディレクトリを作成)] を選択して、[OK] を選択します。
- 次の例のように、/etc/nsswitch.conf 構成ファイルを編集します。
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files
- 自動生成された resolv.conf ファイルが検索ドメインとして Active Directory ドメインを参照するように、システム接続で NetworkManager の設定を編集します。
- NetworkManager コントロール パネルを開き、システム接続の [IPv4 Settings(IPv4 設定)] に移動します。方法として、[Automatic (DHCP) addresses only(自動 DHCP アドレスのみ)] を選択します。[DNS servers(DNS サーバ)] テキスト ボックスで、DNS ネーム サーバの IP アドレスを入力します(この手順の例では dns_IP_ADDRESS です)。[ Save(保存)] をクリックします。
- /etc/NetworkManager/system-connections に構成ファイルでシステム接続を編集します。次の例を使用します。
[ipv4]
dns=dns_IP_ADDRESS
dns-search=mydomain.com
ignore-auto-dns=true
method=auto
注: 新しいインスタント クローン仮想デスクトップを作成すると、新しい仮想ネットワーク アダプタが追加されます。インスタント クローン仮想デスクトップに新しいネットワーク アダプタを追加すると、仮想デスクトップ テンプレート内の DNS サーバなどのネットワーク アダプタのすべての設定が失われます。クローン作成された仮想デスクトップに新しいネットワーク アダプタを追加したときに DNS サーバ設定が失われないようにするには、Linux システムで DNS サーバを指定する必要があります。
- DNS サーバを指定するには、次の例のように、/etc/resolv.conf 構成ファイルを編集します。
nameserver dns_IP_ADDRESS
search mydomain.com
- システムを再起動して再びログインします。
- 次の例のように、/etc/hosts 構成ファイルを編集します。
127.0.0.1 localhost
127.0.1.1 myhost.mydomain.com myhost
- 次の例のように、/etc/samba/smb.conf 構成ファイルを編集します。
[global]
security = ads
realm = MYDOMAIN.COM
workgroup = MYDOMAIN
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
kerberos method = secrets and keytab
winbind refresh tickets = true
- smbd サービスを再起動します。
sudo systemctl restart smbd.service
- 次の例のように、/etc/krb5.conf 構成ファイルの内容を編集します。
[libdefaults]
default_realm = MYDOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
MYDOMAIN.COM = {
kdc = ads-hostname
admin_server = ads-hostname
}
[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM
- Ubuntu デスクトップを Active Directory ドメインに参加させます。
- Kerberos チケットを開始します。
sudo kinit admin-user
プロンプトが表示されたら、管理者パスワードを入力します。
- チケットが正常に作成されたことを確認します。
sudo klist
このコマンドは、チケットに関する情報(有効期間の開始時間や有効期限)を返します。
- Kerberos キータブ ファイルを作成します。
sudo net ads keytab create -U admin-user
- Active Directory ドメインに参加します。
sudo net ads join -U admin-user
- Winbind サービスを再起動して確認します。
- Winbind サービスを再起動します。
sudo systemctl restart winbind.service
- Winbind サービスを確認するには、次のコマンドを実行し、正しい出力が返されていることを確認します。
- wbinfo -u
- wbinfo -g
- getend passwd
- getend group
- システムを再起動して再びログインします。