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にログインしているが、このリソースに対して許可されていないユーザーの場合、代替の資格情報を提供する方法がありません(これは良いことかもしれません)。
私たちは非常によく似た問題に直面しました。最終的に、Internet ExplorerとFirefoxに統合されたNTLMログオンサポートは便利ですが、失敗につながる例外ケースが非常に多いため、アプローチを変更したと結論付けました。
統合認証の問題は、現在ログオンしているユーザー名とパスワードがまだ正しく、リソースへのアクセスが適切に許可されている場合にのみ機能することです。
ただし、機能しない状況は他にもあります。
私たちが標準化したアプローチは、資格情報を受け入れるユーザー名/パスワードのログオンWebページ(アプリケーションの前)を表示することでした。資格情報が送信されると、アプリケーションはそれらの資格情報をディレクトリに対して検証し、それに応じて応答します(.NETの世界では、フォーム認証を使用できます http://msdn.Microsoft.com/en-us/ library/aa480476.aspx このログインページを介してアプリケーションへのアクセスを強制します)。アプリケーションが資格情報の検証を行っているため、ログインの失敗の性質に関する豊富な情報が得られます。さらに、ログインは成功したが、ユーザーに表示する関連情報がある場合でも、たとえば、彼らのパスワードはまもなく期限切れになるなど、これはそうする機会を提供します。
更新:このアプローチを採用する場合は、IISアプリケーションルートへの匿名アクセスを許可する必要があります。これにより、最初に自動を試行せずにログインWebページにアクセスできるようになります。 NTLM認証。NTLM認証を有効のままにするかどうかはあなた次第です。おそらく、一部のクライアントに引き続き自動的にログインさせたい場合があります。