Introduction
Hello. My name is Lou Prete. I have been supporting Microsoft
Internet Information Services (IIS) for the past five years and have been IIS
content lead for the past two years.
HTTP 401 errors are among the
most common errors you may have to deal with in IIS. While the causes for these
errors can vary greatly, the causes fall into a finite number of categories.
Correctly identifying the category of the cause for your HTTP 401 error can
decrease the amount of time needed to identify the root cause of the
error.
A great tool for troubleshooting these issues is Authentication
and Access Control Diagnostics, or AuthDiag. You can download this tool from
the following Microsoft Download Center Web site:
This tool is also part of the IIS Diagnostics Toolkit that you can
download from the following Microsoft Download Center Web site:
In almost every situation described in this column, AuthDiag can
provide quick answers to the HTTP 401 error at hand.
In this column, I
will outline an effective approach to identifying and correcting the common
problems that lead to HTTP 401 errors. I will also point out a number of
Microsoft Knowledge Base articles that will be useful and a number of tools
that will help you along your way.
Troubleshooting steps
Identify the substatus code of the HTTP 401 error
There are two common ways to identify the substatus code:
Note You can also use tools, such as WFetch and Network Monitor, to
gather substatus codes.
For more information about these
tools, click the following article numbers to view the articles in the
Microsoft Knowledge Base:
284285
(http://support.microsoft.com/kb/284285/
)
How to use Wfetch.exe to troubleshoot HTTP connections
812953
(http://support.microsoft.com/kb/812953/
)
How to use Network Monitor to capture network traffic
Base your troubleshooting on the substatus code
Once you know the HTTP substatus code, focus on issues related to
that particular substatus. All others can be ignored.
HTTP 401.1: Denied by invalid user credentials
DescriptionIIS failed to log on a user to execute the request. All
requests must be associated with a user, even if the request is
anonymous.
Common reasons- The wrong user name or password is provided. Identify the
user who failed to log on, and correct the user name or password.
- Kerberos authentication fails.
For more information, click the
following article number to view the article in the Microsoft Knowledge Base:
326985
(http://support.microsoft.com/kb/326985/
)
How to troubleshoot Kerberos-related issues in IIS
Other useful Kerberos articles are as
follows:871179
(http://support.microsoft.com/kb/871179/
)
You receive an "HTTP Error 401.1 -
Unauthorized: Access is denied due to invalid credentials" error message when
you try to access a Web site that is part of an IIS 6.0 application pool
- The local or domain policy or the user rights assignment
prevents the user from accessing the server. If the server is configured to
audit logon failures, there may be additional information in the Security log.
Refer to the following articles for the required user rights:
812614
(http://support.microsoft.com/kb/812614/
)
Default permissions and user rights for IIS 6.0
271071
(http://support.microsoft.com/kb/271071/
)
How to set required NTFS permissions and user rights for an IIS 5.0 Web server
832981
(http://support.microsoft.com/kb/832981/
)
Users cannot access Web sites when the security event log is full
300549
(http://support.microsoft.com/kb/300549/
)
How to enable and apply security auditing in Windows 2000
- This error may also occur when anonymous access is
configured. This may occur if the user name or password for the anonymous
account that is stored in the IIS metabase differs from the actual information
stored in the local user database (or the Active Directory directory service,
if a domain account is used). Resetting the password for the account and in IIS
resolves this problem.
- After you upgrade a server running IIS 5.0 to IIS 6.0, IIS
is running in IIS 5.0 compatibility mode. Once the server is switched to IIS
6.0 isolation mode, you may see HTTP 401.1 errors on anonymous requests. This
occurs because of IIS 5.0 anonymous password synchronization. To resolve this
problem, set the AnonymousPasswordSync metabase key to false, and reset the anonymous user's password for the account and in
IIS.
- For more
information about this error, click the following article numbers to view the
articles in the Microsoft Knowledge Base:
896861
(http://support.microsoft.com/kb/896861/
)
You receive error 401.1 when you browse a Web site that uses Integrated Authentication and is hosted on IIS 5.1 or IIS 6
304201
(http://support.microsoft.com/kb/304201/
)
Cannot access Web sites or cannot start IIS services that run under non-local system account and use Windows authentication with IIS
263140
(http://support.microsoft.com/kb/263140/
)
Anonymous and Basic authentication fail when you connect to IIS 5.0 on a domain controller
HTTP 401.2: Denied by server configuration
DescriptionThe client browser and IIS could not agree on an
authentication protocol.
Common reasons- No authentication protocol (including anonymous) is
selected in IIS. At least one authentication type must be selected.
For more information, click the following article
number to view the article in the Microsoft Knowledge Base:
253667
(http://support.microsoft.com/kb/253667/
)
Error message: HTTP 401.2 - Unauthorized: Logon failed due to server configuration with no authentication
- Only Integrated authentication is enabled, and an older,
non-Internet Explorer client browser tries to access the site. This happens
because the client browser cannot perform Integrated authentication. To resolve
this problem, use one of the following methods:
- Configure IIS to accept Basic authentication. This
should only occur over SSL for security purposes.
- Use a client browser that can perform Integrated
authentication. Internet Explorer and new versions of Netscape Navigator and
Mozilla Firefox can perform Integrated authentication.
- Integrated authentication is through a proxy. This happens
because the proxy doesn't maintain the NTLM-authenticated connection and thus
sends an anonymous request from the client to the server. Options to resolve
this problem are as follows:
- Configure IIS to accept Basic authentication. This
should only occur over SSL for security purposes.
- Don't use a proxy.
HTTP 401.3: Denied by resource ACL
DescriptionThis error is returned when the user successfully
authenticated to the server, but the user does not have NTFS permissions to the
content requested.
Common solutions- Set the NTFS permissions correctly on the content. Review
the "NTFS Permissions" section in the following articles:
812614
(http://support.microsoft.com/kb/812614/
)
Default permissions and user rights for IIS 6.0
271071
(http://support.microsoft.com/kb/271071/
)
How to set required NTFS permissions and user rights for an IIS 5.0 Web server
- Verify that the correct authentication method is set. For
example, when you use Integrated authentication, users are not prompted for
authentication credentials. In this instance, it may be unclear if the request
is authenticating or not.
- If the content is located on a remote share, verify that
users have sufficient NTFS and Share permissions.
For more information,
click the following article number to view the article in the Microsoft
Knowledge Base:
332142
(http://support.microsoft.com/kb/332142/
)
NTLM requests for content on UNC share may be returned with 401 error messages
HTTP 401.4: Denied by custom ISAPI filter
DescriptionAn ISAPI filter loaded denied the request.
SolutionIdentify which ISAPI filter denied the request, and
contact the developer or vendor to determine a solution.
HTTP 401.5: Denied by custom ISAPI/CGI Web application
DescriptionAn ISAPI extension or CGI application denied the
request.
SolutionIdentify which ISAPI extension or CGI application denied
the request, and contact the developer or vendor to determine a solution.
Summary
In summary, when you troubleshoot HTTP 401 errors, the first step
should always be to determine the substatus code.
- 401.1: Authentication was attempted, but failed.
- 401.2: Authentication was not attempted because the server
and client could not agree on an authentication protocol.
- 401.3: Authentication was successful, but the account that
authenticated does not have sufficient permissions to access the requested
resource or content.
- 401.4: An ISAPI filter denied the request.
- 401.5: An ISAPI extension or CGI application denied the
request.
Useful tools and resources
Microsoft tools
- Authentication and Access Control Diagnostics 1.0
- IIS Diagnostics Toolkit
- WFetch
284285
(http://support.microsoft.com/kb/284285/
)
How to use Wfetch.exe to troubleshoot HTTP connections
- Network Monitor
148942
(http://support.microsoft.com/kb/148942/
)
How to capture network traffic with Network Monitor
- Auditing/Security log
300549
(http://support.microsoft.com/kb/300549/
)
How to enable and apply security auditing in Windows 2000
Third-party tools
Until next time, thank you for your time, and have a great day.
As always, feel free to submit ideas on topics you want addressed in future
columns or in the Knowledge Base using the
Ask For It
(http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=)
form.
Microsoft provides third-party contact information to help you
find technical support. This contact information may change without notice.
Microsoft does not guarantee the accuracy of this third-party contact
information.
The third-party products that this article discusses are
manufactured by companies that are independent of Microsoft. Microsoft makes no
warranty, implied or otherwise, regarding the performance or reliability of
these products.
Article ID: 907273 - Last Review: December 3, 2007 - Revision: 2.5
APPLIES TO
- Microsoft Internet Information Services 6.0
- Microsoft Internet Information Services version 5.1
- Microsoft Internet Information Services 5.0
- Microsoft Internet Information Server 1.01