認証にActiveDirectoryを使用する方法

KERBEROS認証もしくはLDAP認証を用いることで、WindowsのActiveDirectoryを利用したユーザ認証が行えます。

KERBEROS認証を用いる場合

準備するもの

  • mod_auth_kerb
    CentOS4等では、「yum -y install mod_auth_kerb」を実行することで導入できます。

前提

ActiveDirectoryドメインDOMAIN.EXAMPLE.COM
ActiveDirectoryサーバserver.example.com
Apacheの認証レルムKerberos Login認証時のダイアログにも表示されます

設定

  • KERBEROS REALMSの設定
    「/etc/krb5.conf」の「realms」セクションに認証に利用するActiveDirectoryのドメイン情報を追加します。
    [realms]
    DOMAIN.EXAMPLE.COM = {
     kdc = server.example.com:88
    }
  • 認証を掛けたいApacheのディレクティブ(.htaccess等)の設定
    ディレクティブ(.htaccess等)に以下の設定を追加
    AuthType       Kerberos
    AuthName       "Kerberos Login"
    KrbAuthRealms  DOMAIN.EXAMPLE.COM
    KrbVerifyKDC   Off
    Require        valid-user
    「Require user ユーザ名@DOMAIN.EXAMPLE.COM」とすることで特定のユーザのみ許可することができます。

欠点

KERBEROS認証の場合は、ActiveDirectory上の有効なユーザ全員が対象となり、ActiveDirectory上の特定OU内のユーザのみにすることは出来ないようです。特定ユーザのみにする場合は「Require user」か、ユーザを列挙したファイルを用意して「Require group」を使用することになります。(対象ユーザがActiveDirectory上で一元管理出来ない)
補足:この欠点は、サービスチケットをActiveDirectoryサーバに発行してもらっていないのが原因です。
リソースキットを参考にしてサービスチケットを発行してもらい設定を反映すれば決まったユーザだけ許可することができるようです。(未検証)

利点

Apache-ActiveDirectoryサーバ間はKERBEROSのプロトコルが使用されるので、パスワードがクリアテキストで流れません。

参考になるページ

LDAP認証を用いる場合

準備するもの

  • mod_auth_ldap
    通常はApacheと一緒に配布されています。

前提

ActiveDirectoryドメインDOMAIN.EXAMPLE.COM
ActiveDirectoryサーバserver.example.com
LDAP接続に使うユーザDNSEARCH@DOMAIN.example.comActiveDirectoryにLDAP接続用のユーザ「SEARCH」を用意します
LDAP接続に使うパスワードpassword
認証対象のグループのDNCN=APACHE,DC=DOMAIN,DC=example,DC=comActiveDirectoryのトップに認証用グループ「APACHE」を作成します。
Apacheの認証レルムLDAP Login認証時のダイアログにも表示されます

※APACHEグループのメンバーだけが認証可能となります

設定

  • 認証を掛けたいApacheのディレクティブ(.htaccess等)の設定
    ディレクティブ(.htaccess等)に以下の設定を追加
    AuthType             Basic
    AuthName             "LDAP login"
    AuthLDAPEnabled      On
    AuthLDAPBindDN       SEARCH@DOMAIN.example.com
    AuthLDAPBindPassword password
    AuthLDAPUrl          "ldap://server.example.com:389/dc=DOMAIN,dc=example,dc=com?\
                         sAMAccountName?sub?\
                         (?(objectClass=user)(memberOf=CN=Apache,dc=DOMAIN,dc=example,dc=com))"
    Require              valid-user

欠点

LDAPの場合は簡易認証となるため、apache-ActiveDirectoryサーバ間のパスワードがクリアテキストで流れてしまいます。 また、LDAPに接続するためのユーザ(認証対象と別のものでよい)とパスワードが必要になります。

利点

ActiveDirectoryのグループ単位で認証を掛けられるため、ActiveDirectory上での一元管理が可能となります。

コメント


(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-07-22 (水) 15:30:01 (1724d)