イントラネットを作成するために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/
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にログインしているが、このリソースに対して許可されていないユーザーの場合、代替の資格情報を提供する方法がありません(これは良いことかもしれません)。
KrbMethodK5Passwdをオンにすると、基本認証へのフォールバックがオンになりますが、もちろん、パスワードがクライアントのマシンから離れることがないというセキュリティが失われます。