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) が設定されている。

手順

  1. Ubuntu デスクトップで samba パッケージと winbind パッケージをインストールします。
    sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
  2. プロンプトが表示されたら、次のように Kerberos Authentication の設定を行います。
    1. [Default Kerberos version 5 realm(デフォルトの Kerberos バージョン 5 レルム)] に、Active Directory ドメインの DNS 名をすべて大文字で入力します。
      たとえば、Active Directory ドメインの名前が mydomain.com の場合、 MYDOMAIN.COM と入力します。
    2. [Kerberos servers for your realm(レルムの Kerberos s サーバ)] で、Active Directory サーバのホスト名を入力します(この手順の例では ads_hostname)。
    3. [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. 自動生成された resolv.conf ファイルが検索ドメインとして Active Directory ドメインを参照するように、システム接続で NetworkManager の設定を編集します。
    1. NetworkManager コントロール パネルを開き、システム接続の [IPv4 Settings(IPv4 設定)] に移動します。方法として、[Automatic (DHCP) addresses only(自動 DHCP アドレスのみ)] を選択します。[DNS servers(DNS サーバ)] テキスト ボックスで、DNS ネーム サーバの IP アドレスを入力します(この手順の例では dns_IP_ADDRESS です)。[ Save(保存)] をクリックします。
    2. /etc/NetworkManager/system-connections に構成ファイルでシステム接続を編集します。次の例を使用します。
      [ipv4]
      dns=dns_IP_ADDRESS
      dns-search=mydomain.com
      ignore-auto-dns=true
      method=auto
      注: 新しいインスタント クローン仮想デスクトップを作成すると、新しい仮想ネットワーク アダプタが追加されます。インスタント クローン仮想デスクトップに新しいネットワーク アダプタを追加すると、仮想デスクトップ テンプレート内の DNS サーバなどのネットワーク アダプタのすべての設定が失われます。クローン作成された仮想デスクトップに新しいネットワーク アダプタを追加したときに DNS サーバ設定が失われないようにするには、Linux システムで DNS サーバを指定する必要があります。
    3. DNS サーバを指定するには、次の例のように、/etc/resolv.conf 構成ファイルを編集します。
      nameserver dns_IP_ADDRESS
      
      search mydomain.com
    4. システムを再起動して再びログインします。
  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 の設定