web-dev-qa-db-ja.com

ActiveDirectoryを使用したApacheSSOと、グループに基づく承認の提供

イントラネットを作成するためにLAMPスタックを実行しているrhel5を使用しています。 IEとFirefoxを使用して、ネットワーク上のユーザーとSSOを実現しようとしています。次のモジュールを使用すると、正常に実行できます。

mod_auth_kerb

さらに一歩進んで、グループメンバーシップに基づいて特定の場所へのアクセスのみを許可したいと思います。 mod_authz_ldapでこれを達成することができました。両方を一緒に利用する方法はありますか?もしそうなら、誰かが例を持っていますか?

以下は、SSOKerberosのセットアップです。

<Location /sso/location>
  AuthType Kerberos
  AuthName "Please Login"
  KrbServiceName HTTP
  KrbMethodNegotiate On
  KrbMethodK5Passwd On
  KrbAuthRealms DOMAIN.LOCAL
  Krb5KeyTab /etc/httpd/keytab
  require valid-user
</Location>

以下は、グループのメンバーのみにアクセスを許可するための設定です。

<Location /allowed/only/for/group>
        AuthType Basic
        AuthName "Please Login"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative on
        AuthLDAPURL "ldap://dc.domain.local:389/OU=Domain Users,DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)"
        AuthLDAPBindDN "CN=ldapbinduser,CN=Users,DC=domain,DC=local"
        AuthLDAPBindPassword ldapbinduserpass 
        require ldap-group CN=Staff,CN=Users,DC=domain,DC=local
        require ldap-group CN=Faculty,CN=Users,DC=domain,DC=local
        Satisfy any
</Location>

Kerberosを使用して認証し、次にいくつかのPHPコードを使用してグループルックアップを実行することについて読みましたが、これがApache構成で厳密に達成でき、Webページコードを変更する必要がないことを望んでいます。

どんな助けでも大歓迎です。ありがとう。

... Googleは私に次のことを示しました、誰もがそれを使用しています: http://www.stanford.edu/services/webauth/

1
netadmin_newb
Alias /students /var/www/students

<Location /students>
  KrbServiceName HTTP
  KrbMethodNegotiate On
  KrbMethodK5Passwd On
  KrbSaveCredentials off
  KrbAuthRealms DOMAIN.LOCAL
  Krb5KeyTab /etc/httpd/keytab
  KrbAuthoritative off

  AuthType Kerberos
  AuthName "Please Login"
  AuthBasicProvider ldap
  AuthzLDAPAuthoritative on
  AuthLDAPURL "ldap://dc.domain.local:389/OU=Domain Users,DC=domain,DC=local?userPrincipalName?sub?(objectClass=*)"
  AuthLDAPBindDN "CN=ldapsearchuser,CN=Users,DC=domain,DC=local"
  AuthLDAPBindPassword ldapsearchuserpass
  require ldap-group CN=Students,CN=Users,DC=domain,DC=local
  require ldap-group CN=Staff,CN=Users,DC=domain,DC=local
</Location>

これにより、Students/Staff ADグループのいずれかのメンバーであるすべてのユーザーが、IE/Firefoxが適切に構成されていれば、ログイン資格情報を指定することなく、背後のページにアクセスできます http:// intranetsite/students

Kerberosモジュールがusername @ REALMをldapモジュールに渡していたため、sAMAccountNameの代わりにuserPrincipalNameが使用されました。

今、私は誰かが許可されていない場合、彼らが提示されるという問題を抱えています:

承認が必要ですこのサーバーは、要求されたドキュメントへのアクセスが承認されていることを確認できませんでした。間違った資格情報(パスワードの誤りなど)を指定したか、ブラウザが必要な資格情報の提供方法を​​理解していません。

別の資格情報を試すことができるように、ユーザー名/パスワードダイアログボックスをポップアップさせる方法を知っている人はいますか?承認の取得に失敗した後、資格情報を要求するように取得する唯一の方法は、キャッシュをクリアすることです。認証されたユーザーとしてPCにログインしているが、このリソースに対して許可されていないユーザーの場合、代替の資格情報を提供する方法がありません(これは良いことかもしれません)。

4
netadmin_newb

KrbMethodK5Passwdをオンにすると、基本認証へのフォールバックがオンになりますが、もちろん、パスワードがクライアントのマシンから離れることがないというセキュリティが失われます。

0
James Cape