Ubuntu デスクトップで True SSO をサポートするには、Samba と Winbind ソリューションを使用して、ベース仮想マシン (VM) と Active Directory (AD) ドメインを統合します。

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 サーバが Ubuntu 仮想マシンの DNS で解決できる。
  • Ubuntu 仮想マシンで NTP (Network Time Protocol) が設定されている。

手順

  1. Ubuntu 仮想マシンで sambawinbind パッケージをインストールします。
    sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
  2. Kerberos 認証設定を構成します。
    1. システムに Kerberos 認証設定のウィンドウが表示されない場合は、次のコマンドを実行して表示します。
      dpkg-reconfigure krb5-config
    2. [Default Kerberos version 5 realm(デフォルトの Kerberos バージョン 5 レルム)] に、Active Directory ドメインの DNS 名をすべて大文字で入力します。
      たとえば、Active Directory ドメインの名前が mydomain.com の場合、 MYDOMAIN.COM と入力します。
    3. [Kerberos servers for your realm(レルムの Kerberos s サーバ)] で、Active Directory サーバのホスト名を入力します(この手順の例では ads_hostname)。
    4. [Administrative server for your Kerberos realm(Kerberos レルムの管理サーバ)] に、Active Directory ドメインのホスト名を再度入力します。
  3. PAM の設定を更新します。
    1. PAM の設定ページを開きます。
      pam-auth-update
    2. [Create Home Directory on Login(ログイン時にホーム ディレクトリを作成)] を選択して、[OK] を選択します。
  4. 次の例のように、/etc/nsswitch.conf 構成ファイルを編集します。
    passwd: compat winbind
    group: compat winbind
    shadow: compat
    gshadow: files
  5. (オプション) 正しい DNS サーバが自動的に検出された場合は、この手順をスキップして次の手順に進みます。正しい DNS サーバの検出に失敗した場合は、この手順を行い、DNS サーバを手動で設定します。
    自動生成された resolv.conf ファイルが検索ドメインとして Active Directory ドメインを参照するように、システム接続で NetworkManager の設定を編集します。次のサブステップでは、Ubuntu 20.04 システムの例を示します。
    1. NetworkManager コントロール パネルを開き、システム接続の [IPv4 Settings(IPv4 設定)] に移動します。方法として、[Automatic (DHCP) addresses only(自動 DHCP アドレスのみ)] を選択します。[DNS servers(DNS サーバ)] テキスト ボックスで、DNS ネーム サーバの IP アドレスを入力します(この手順の例では dns_IP_ADDRESS です)。[ Save(保存)] をクリックします。
    2. 次の例のように、/etc/dhcp/dhclient.conf ファイルを編集します。
      supersede domain-name "mydomain.com";
      prepend domain-name-servers dns_IP_ADDRESS;
    3. 次の例のように、/etc/systemd/resolved.conf ファイルを編集します。
      DNS=dns_IP_ADDRESS
      Domains="mydomain.com"
      注: 新しいインスタント クローン仮想デスクトップを作成すると、新しい仮想ネットワーク アダプタが追加されます。インスタント クローン仮想デスクトップに新しいネットワーク アダプタを追加すると、仮想デスクトップ テンプレート内の DNS サーバなどのネットワーク アダプタのすべての設定が失われます。クローン作成された仮想デスクトップに新しいネットワーク アダプタを追加したときに DNS サーバ設定が失われないようにするには、Ubuntu 仮想マシンで DNS サーバを指定する必要があります。
    4. DNS サーバを指定するには、次の例のように、/etc/resolv.conf 構成ファイルを編集します。
      nameserver dns_IP_ADDRESS
      
      search mydomain.com
    5. 仮想マシンを再起動して、再度ログインします。
  6. 次の例のように、/etc/hosts 構成ファイルを編集します。
    127.0.0.1     localhost
    127.0.1.1     myhost.mydomain.com myhost
  7. 次の例のように、/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
  8. smbd サービスを再起動します。
    sudo systemctl restart smbd.service
  9. 次の例のように、/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
    
  10. Ubuntu 仮想マシンを Active Directory ドメインに参加させます。
    1. Kerberos チケットを開始します。
       sudo kinit admin-user
      プロンプトが表示されたら、管理者パスワードを入力します。
    2. チケットが正常に作成されたことを確認します。
      sudo klist
      このコマンドは、チケットに関する情報(有効期間の開始時間や有効期限)を返します。
    3. Kerberos キータブ ファイルを作成します。
      sudo net ads keytab create -U admin-user
    4. Active Directory ドメインに参加します。
      sudo net ads join -U admin-user
  11. Winbind サービスを再起動して確認します。
    1. Winbind サービスを再起動します。
      sudo systemctl restart winbind.service 
    2. Winbind サービスを確認するには、次のコマンドを実行し、正しい出力が返されていることを確認します。
      • wbinfo -u
      • wbinfo -g
      • getend passwd
      • getend group
  12. 仮想マシンを再起動して、再度ログインします。

次のタスク

Ubuntu デスクトップでの True SSO の設定