Active DirectoryとLinuxの認証を統合しよう
第4回 LDAPによる認証統合
Active Directory(AD)の各種ディレクトリ情報の取得はLDAPにより行なわれています。ADのドメインコントローラ(DC)は,LDAPのディレクトリサーバとしても機能しています。
標準の構成では,LDAPへアクセスする際の認証はKerberos(もしくはNTLM)により行なわれるため,Linuxなどで実装されている,いわゆるLDAP認証を行うことはできません。しかし,DCにSFU(Services for UNIX)もしくはSUA(Subsystem for UNIX-based Applications)を追加することにより,LDAPのuserPassword属性相当の属性にパスワード情報が書き込まれるようになるため,ADのDCを用いてLDAP認証を実現し,認証を統合することが可能です。
なお,NISサーバ機能を提供する形態は表1のように変遷し,無償/有償の別や名称が変わっていますが,基本的な提供機能は変更ありません。以降ではWindows Server 2008のSUAを例に,設定方法を説明しますが,基本的にはSFU 3.0をインストールしたWindows 2000 Server以降において,ほぼ同等の設定で同様の機能が実現します。
表1 UNIX連携機能の推移
| プロダクト名称 | OS同梱か? | 有償/無償 |
|---|---|---|
| SFU 3.0 | NO | 有償 |
| SFU 3.5 | NO | 無償 |
| SUA | Windows Server 2003R2以降 | 無償 |
以下,IPアドレスが192.168.135.111のDCが存在するW2K8AD1.LOCALというADドメインでLinuxマシンの認証を行う場合を例に,具体的な設定例を示します。
SUAのNISサーバ機能のインストール
表1の通り,Windows Server 2003 R2以降では,NISサーバ機能はSUAの1コンポーネントという位置づけになっています。そのためインストールについては非常に簡単です。
インストールの詳細手順については,「第2回「SUAのNIS機能による認証統合」」の「SUAのNISサーバ機能のインストール」と同一ですのでここでは省略します。NISサーバとして一通り動作することを確認しておいた方がよいでしょう。
ただし,以下のLDAP認証を行う上ではNISが動作している必要はありません。NISサーバとして動作させる必要がない場合は,動作確認を終えたら「NISサーバー」サービスを停止しておいた方がセキュリティ面からもよいでしょう。
上記と並行して,LinuxマシンがADのLDAPディレクトリへアクセスする際に用いるユーザを作成します。Linux/UNIXで動作する一般的なLDAPサーバは,認証を行うためにLDAPディレクトリにアクセスする場合は匿名によるアクセスを許可する設定にしておくのが一般的ですが,ADの場合,本来の認証はKerberosやNTLMであることもあって,匿名によるアクセスが許可されているのはディレクトリのごく一部に限られているためです。
ユーザ名は何でも構いませんが,ここではUsersコンテナの下に図2のようにcn=LDAP Proxyというユーザを作成した場合を例に取って説明を進めます。このユーザのパスワードは後述するようにLinux側の設定ファイルに平文で書き込まれます。そのため,ユーザの権限は最低限にするように注意してください。最低でも「Domain Guests」グループに所属させた上で,対話的ログオンは許可しない設定を行うことをお薦めします。
続いて,Linuxサーバで参照したいADドメインのユーザごとに,Linux固有の属性の設定が必要になります。「Active Directoryユーザとコンピュータ」からユーザのプロパティを開き,図3のように「UNIX属性」タブを選択します。このタブは「NISサーバー」をインストールしていないと表示されません。
UNIX属性の詳細や設定方法については,「第2回「SUAのNIS機能による認証統合」」の「UNIX属性の設定」を参照してください。
Active Directory, LDAP, SUA, SFU, NIS


