9

Tôi đã tạo trang ASP.NET Intranet ASP.NET MVC với Xác thực Windows được bật:ASP.NET MVC 3 Intranet site trên IIS7.5 w Xác thực Windows cho 401.3 và ủy quyền tệp không thành công cho yêu cầu khi cố gắng đăng nhập

  1. trong các thuộc tính tập tin dự án Visual Studio
  2. trong web.config, tức là <authentication mode="Windows"/>
  3. trên các thuộc tính trang web trong IIS 7.5. máy chủ

Truy cập ẩn danh bị vô hiệu hóa cho cả ba điều này ở trên, web.config cho biết <deny users="?"/>. Mạo danh bị tắt trong web.config theo nhận dạng <impersonate="false"/> và trên thuộc tính trang web trong máy chủ IIS 7.5. Và cuối cùng, DỊCH VỤ MẠNG được thiết lập để chạy hồ bơi ứng dụng và cũng đã đọc trên thư mục trang web (không chắc chắn nếu nó cần thiết, bạn nói với tôi, nhưng nó chắc chắn không đủ để giải quyết vấn đề của tôi dưới đây).

Bây giờ, khi đăng nhập thông qua hộp thoại Xác thực Windows tiêu chuẩn, người dùng miền được hiển thị với lỗi 401.3 sau ba lần đăng nhập hợp lệ. Điều này có vẻ là trước khi thậm chí đạt đến mã trang web MVC của tôi, tức là nó có vẻ hoàn toàn liên quan đến IIS. Nhật ký sự kiện cung cấp cho các loại sau đây của entry (đó là một mục thông tin, không phải là một lỗi, và tôi đã obfuscated nó một chút để bảo vệ khách hàng của tôi) cho tất cả người dùng đã cố gắng đăng nhập:

Event code: 4008 
Event message: File authorization failed for the request. 
Event time: 2012-02-20 18:45:41 
Event time (UTC): 2012-02-20 17:45:41 
Event ID: 6dd3b4bf99784ba1a0fe06694dd89691 
Event sequence: 3 
Event occurrence: 1 
Event detail code: 0 
Application information: 
Application domain: /LM/W3SVC/2/ROOT-1-129742335229554599 
Trust level: Full 
Application Virtual Path:/
Application Path: D:\Public\BlahblahManager\ 
Machine name: HUB01-XYZ123 
Process information: 
Process ID: 2920 
Process name: w3wp.exe 
Account name: NT AUTHORITY\NETWORK SERVICE 
Request information: 
Request URL: http://blahblahmanager.user.ad.blah.com/ 
Request path:/
User host address: 134.XXX.XXX.XXX 
User: USER-AD\teh-user 
Is authenticated: True 
Authentication Type: Negotiate 
Thread account name: NT AUTHORITY\NETWORK SERVICE 
Custom event details: 

Chỉ khi tôi dành riêng cho người dùng USER-AD\teh-user hoặc USER-AD\Domain sự cho phép Read trên thư mục gốc của trang web (D: \ Public \ BlahblahManager) mà người dùng có thể đăng nhập và thực sự thấy trang web.

Tại sao điều này? Phải có một số loại cấu hình mà tôi đang thiếu. Không phải là nó đủ để các dịch vụ mạng đã đọc trên thư mục gốc của trang web? Tôi đã google này một thời gian, và mạo danh được đề cập ở đây và ở đó, nhưng ban giám khảo vẫn còn ra có vẻ như. Một số trang web tuyên bố rằng bạn nên đi với mạo danh và họ cung cấp các ví dụ về cách thực hiện, nhưng khi tôi thử các ví dụ, nó vẫn không hoạt động. Các trang web khác cho rằng mạo danh KHÔNG phải là cách để đi và bạn CẦN cấp quyền thư mục trong các trường hợp này. Nhưng điều đó dường như là một điều kỳ lạ để làm. Người dùng không có doanh nghiệp trên máy chủ thực tế, họ chỉ nên làm việc qua trang web.

Mọi đề xuất? Thông thường, số lượng cấu hình tối thiểu cần để làm việc này là gì? Bất kỳ lời khuyên nào về cách khắc phục sự cố loại này và tìm ra nguyên nhân gốc rễ?

+0

Bạn đã từng giải quyết vấn đề này chưa? – DaveHogan

+0

Tôi đã giải quyết nó bằng một công việc xung quanh sẽ không giúp ích gì trong trường hợp chung (rất cụ thể theo từng khách hàng). Các câu trả lời được đề xuất cho đến nay không giúp được gì nhiều: ( –

+0

Tôi có cùng một sự cố ('Không thể ủy quyền tệp cho các yêu cầu' với người dùng đã xác thực được liệt kê và Dịch vụ Mạng làm nhận dạng chuỗi, chạy ứng dụng nhóm dưới dạng NetworkService, IIS 7.5, 401 lỗi sau Hiện tại, cách duy nhất để có được nó là cấp cho mọi người (hoặc một nhóm người dùng cụ thể) truy cập vào các tệp, điều này có vẻ là một giải pháp khủng khiếp. Tôi đã cài đặt cùng một ứng dụng trên nhiều máy chủ khách hàng và không cần thiết Có thể là một cái gì đó đặc biệt với IIS 7.5 mặc dù tôi đã cài đặt ở đó trước đây và không nhớ lại vấn đề này – Rory

Trả lời

1

Kiểm tra kép Xác thực ẩn danh được bật trên IIS. Also, have a look at this post.

+1

Tại sao ẩn danh cần phải được kích hoạt? OP đã đặc biệt nói rằng nó bị vô hiệu hóa, vì Windows Authentication là bắt buộc. – Rory

2

Tôi giới thiệu bạn xem điều này post tuyên bố tất cả các phương pháp xác thực MVC. nhưng đảm bảo bạn đã bật xác thực yêu cầu tối thiểu trên ứng dụng mvc của bạn. Lưu ý rằng xác thực ẩn danh hoạt động với chính sách nhóm của bạn. bạn có thể cấu hình bằng cách làm theo: Tùy chọn Internet -> Tab bảo mật -> Intranet cục bộ -> Mức tùy chỉnh, trên trình duyệt của bạn.

1- Một điều khác có thể gây ra sự cố là IIS có thể định cấu hình không cho người dùng có liên quan được ủy quyền.Một số trong số đó là:

  • iisservice
  • IUSR
  • IIS_IUSRS
  • Network Service

2- động từ cũng kiểm tra cho phép trong IIS.

3- Trên thư mục gốc của ứng dụng của bạn Cho phép truy cập đọc vào IIS AppPool \ YourAppPool.

4- Nguyên nhân khác có thể là quy tắc truy cập phân cấp trong ứng dụng của bạn tùy thuộc vào dịch vụ ứng dụng bạn đang sử dụng, như quy tắc truy cập bảng điều khiển trang web.

5- Setting the clientaccesspolicy.xml file.

6- Kiểm tra InitializeService() Phương pháp, làm bạn thiết lập quy tắc truy cập thực thể đúng cách? Ví dụ:

config.SetEntitySetAccessRule("*", EntitySetRights.All); 

7- Kiểm tra tệpMô-đun xác minh ở cấp độ trang web.

0

Chúng tôi cũng đã chiến đấu với vấn đề này và bắt đầu thiết lập các nhóm bảo mật để chúng tôi có thể cấp cho người dùng quyền ở cấp tệp. Sau đó, một trong những quản trị viên máy chủ của chúng tôi tình cờ gặp một vài thuộc tính mới cho phép ứng dụng xác thực với hệ thống tệp theo thông tin xác thực đã đặt và giải quyết nhu cầu người dùng có quyền truy cập. Đây là những gì ông đã đưa ra ...

Có hai thiết lập IIS điều khiển này:

Physical Đường dẫn Credentials Physical Credentials Đường dẫn Logon loại

Theo mặc định, Credentials Đường dẫn vật lý được thiết lập để ứng dụng tài khoản (Xác thực chuyển tiếp). Điều này có nghĩa là IIS không thực hiện bất kỳ sự mạo danh nào khi xử lý các yêu cầu Xác thực Windows. Tuy nhiên, điều này có thể, , được đặt thành một người dùng cụ thể (mặc dù không, không may, số nhận dạng hồ bơi ứng dụng , điều này lý tưởng). Đường dẫn vật lý Loại thông tin đăng nhập được đặt theo mặc định thành Xóa văn bản. Để thử nghiệm của tôi Tôi đặt cài đặt này thành Tương tác (mặc dù đây có thể không phải là giá trị chính xác). Giá trị có thể là Xóa văn bản, Hàng loạt, Tương tác và Mạng.

Để thiết lập tôi đã làm như sau:

  1. Tạo một tài khoản cục bộ (IIS-AccessUser)
  2. Cấp IIS-AccessUser đọc và thực hiện truy cập vào các thư mục/home của trang web.
  3. Đã thêm IIS-AccessUser vào nhóm IIS_IUSRS (cần thiết để truy cập.tập tin tạm thời NET)
  4. Set IIS-AccessUser như Credentials Đường dẫn Physical
  5. Đặt Credentials Đường dẫn Physical Logon Type để tương tác

Làm ở trên cho phép tôi để đăng nhập vào các ứng dụng trực tiếp, mà không cần phải cho phép Người dùng được xác thực hoặc tôi phải là thành viên của bất kỳ nhóm nào trong thư mục/home. Nó vẫn còn vai trò ủy quyền .NET được bảo tồn, vì vậy tôi vẫn không thể truy cập các phần của trang web mà tôi không được phép.

0

Tôi cũng phải đối mặt với cùng một vấn đề này trên iis7 với xác thực cửa sổ, nhưng với với MVC4. Cuối cùng tìm thấy số này post. Hy vọng điều này có thể giúp ai đó trong tương lai.

0

Bạn không bắt buộc phải cấp quyền truy cập tệp khi sử dụng Xác thực Windows trong IIS 7.0 và IIS 7.5. Có một cách tốt hơn là chúng tôi chỉ có thể phát hiện ra điều này vì quản trị viên máy chủ của chúng tôi đã ngửi thấy các vấn đề về bảo mật và quản lý phát sinh từ việc cấp tuyến cấp quyền truy cập cấp tệp cho người dùng và nhóm.

Đối với bất kỳ ai xử lý sự cố này hoặc nếu bạn đang thiết lập máy chủ IIS7/IIS7.5 mới và/hoặc di chuyển từ IIS 6, đây là bài viết cung cấp cho bạn tất cả các tùy chọn và cấu hình Windows Authentication cần được sửa đổi để tránh cấp quyền truy cập cấp tệp cho các cá nhân hoặc nhóm.

Vui lòng đọc hai nhận xét ở cuối POST để biết một số phê bình hợp lệ của các phương pháp được sử dụng trong bài viết này.

http://weblogs.asp.net/owscott/iis-using-windows-authentication-with-minimal-permissions-granted-to-disk

Bên cạnh những thông tin trong bài viết, hãy lưu ý rằng IIS 7.5 không sử dụng các thẻ cấu hình web cho system.web (ít nhất là không trong ứng dụng MVC 4 của tôi).

Tìm kiếm trong thẻ system.webserver để định cấu hình ủy quyền (nơi bạn sẽ cần liệt kê các cửa sổ tên miền \ nhóm mà người dùng cần truy cập để truy cập vào ứng dụng của bạn).

- DSB

Các vấn đề liên quan