2011-04-20 40 views
228

Dưới Windows Server 2008 với ASP.NET 4.0 được cài đặt, có một loạt tài khoản người dùng có liên quan và tôi không thể hiểu được tài khoản nào, chúng khác nhau như thế nào, và cái nào thực sự là ứng dụng của tôi chạy dưới . Dưới đây là một danh sách:Tất cả các tài khoản người dùng cho IIS/ASP.NET là gì và chúng khác nhau như thế nào?

  • IIS_IUSRS
  • IUSR
  • DefaultAppPool
  • ASP.NET v4.0
  • NETWORK_SERVICE
  • DỊCH VỤ ĐỊA PHƯƠNG.

Điều gì là gì?

+0

Và sử dụng Windows Server 2012 với ASP.NET 4.0 trở lên? – Kiquenet

Trả lời

366

Đây là một câu hỏi rất hay và nhiều nhà phát triển không đặt đủ câu hỏi về bảo mật IIS/ASP.NET trong bối cảnh trở thành nhà phát triển web và thiết lập IIS. Vì vậy, ở đây đi ....

Để bù đắp bản sắc niêm yết:

IIS_IUSRS:

Đây là tương tự như nhóm IIS6 IIS_WPG cũ. Đó là một nhóm được tích hợp sẵn với bảo mật được cấu hình sao cho bất kỳ thành viên nào của nhóm này có thể hoạt động như một nhận dạng nhóm ứng dụng.

IUSR:

Tài khoản này là tương tự như IUSR_<MACHINE_NAME> tài khoản cục bộ cũ đó là mặc định người dùng nặc danh cho các trang web IIS5 và IIS6 (ví dụ: một trong những cấu hình thông qua các tab Directory Security thuộc tính của trang web).

Để biết thêm thông tin về IIS_IUSRSIUSR xem:

Understanding Built-In User and Group Accounts in IIS 7

DefaultAppPool:

Nếu bể bơi ứng dụng được cấu hình để chạy bằng cách sử dụng Application Pool nhận dạng đặc trưng sau đó một " tổng hợp "tài khoản được gọi là IIS AppPool\<pool name> sẽ được tạo khi đang di chuyển đến u sed như bản sắc hồ bơi. Trong trường hợp này sẽ có một tài khoản tổng hợp được gọi là IIS AppPool\DefaultAppPool được tạo cho thời gian sống của hồ bơi. Nếu bạn xóa hồ bơi thì tài khoản này sẽ không còn tồn tại nữa. Khi áp dụng quyền đối với tệp và thư mục, các quyền này phải được thêm bằng cách sử dụng IIS AppPool\<pool name>. Bạn cũng sẽ không thấy các tài khoản nhóm này trong Trình quản lý người dùng máy tính của mình. Xem sau để biết thêm thông tin:

Application Pool Identities

ASP.NET v4.0: -

Đây sẽ là Application Pool nhận dạng cho ASP.NET v4.0 Application Pool. Xem DefaultAppPool ở trên.

NETWORK SERVICE: -

Tài khoản NETWORK SERVICE là một built-in sắc giới thiệu trên Windows 2003. NETWORK SERVICE là một tài khoản đặc quyền thấp, theo đó bạn có thể chạy ứng dụng hồ bơi và các trang web của bạn. Một trang web chạy trong một hồ bơi Windows 2003 vẫn có thể mạo danh tài khoản ẩn danh của trang web (IUSR_ hoặc bất kỳ cấu hình nào bạn đã định cấu hình là danh tính ẩn danh).

Trong ASP.NET trước Windows 2008, bạn có thể có yêu cầu thực thi ASP.NET trong tài khoản Hồ bơi ứng dụng (thường là NETWORK SERVICE). Hoặc bạn có thể cấu hình ASP.NET để mạo danh tài khoản ẩn danh của trang web thông qua cài đặt <identity impersonate="true" /> trong web.config tệp cục bộ (nếu cài đặt đó bị khóa thì quản trị viên sẽ cần phải thực hiện trong tệp machine.config).

Thiết lập <identity impersonate="true"> là điều phổ biến trong môi trường lưu trữ dùng chung, nơi sử dụng nhóm ứng dụng dùng chung (cùng với cài đặt ủy thác một phần để ngăn việc tháo tài khoản mạo danh).

Trong điều khiển mạo danh IIS7.x/ASP.NET hiện được định cấu hình thông qua tính năng Cấu hình xác thực của trang web. Vì vậy, bạn có thể cấu hình để chạy như nhận dạng hồ bơi, IUSR hoặc tài khoản ẩn danh tùy chỉnh cụ thể.

LOCAL SERVICE:

Tài khoản LOCAL SERVICE là một built-in tài khoản được sử dụng bởi người quản lý kiểm soát dịch vụ. Nó có một số đặc quyền tối thiểu trên máy tính cục bộ. Nó có một phạm vi khá hạn chế về sử dụng:

LocalService Account

LOCAL SYSTEM:

Bạn đã không hỏi về việc này nhưng tôi thêm cho đầy đủ. Đây là tài khoản tích hợp cục bộ. Nó có đặc quyền và sự tin tưởng khá rộng rãi. Bạn không bao giờ nên định cấu hình trang web hoặc hồ bơi ứng dụng để chạy theo danh tính này.

LocalSystem Account

Trong Thực hành:

Trong thực tế phương pháp ưa thích để đảm bảo một trang web (nếu trang web bị hồ bơi ứng dụng riêng của mình - đó là mặc định cho một trang web mới trong MMC của IIS7) chạy dưới Application Pool Identity.Điều này có nghĩa thiết lập nhận dạng của trang web trong Advanced Settings Pool ứng dụng của nó để Application Pool Identity:

enter image description here

Trong trang web của bạn sau đó nên cấu hình tính năng xác thực:

enter image description here

Nhấp chuột phải và chỉnh sửa Anonymous Mục nhập xác thực:

enter image description here

.210

Đảm bảo rằng "sắc bơi ứng dụng" được chọn:

enter image description here

Khi bạn đến đăng ký tập tin và thư mục cho phép bạn cấp bản sắc bơi ứng dụng bất cứ quyền được yêu cầu. Ví dụ, nếu bạn cho phép bản sắc bơi ứng dụng cho ASP.NET v4.0 quyền hồ sau đó bạn có thể làm điều này thông qua Explorer:

enter image description here

Nhấp vào nút "Check Names":

enter image description here

Hoặc bạn có thể thực hiện việc này bằng tiện ích ICACLS.EXE:

icacls c:\wwwroot\mysite /grant "IIS AppPool\ASP.NET v4.0":(CI)(OI)(M)

... hoặc ... nếu hồ bơi ứng dụng mà bạn trang web được gọi là BobsCatPicBlog thì:

icacls c:\wwwroot\mysite /grant "IIS AppPool\BobsCatPicBlog":(CI)(OI)(M)

Tôi hy vọng điều này sẽ giúp mọi việc rõ ràng lên.

Cập nhật:

Tôi chỉ tình cờ gặp câu trả lời tuyệt vời này từ năm 2009, trong đó có một loạt các thông tin hữu ích, rất đáng đọc:

The difference between the 'Local System' account and the 'Network Service' account?

+0

không đồng ý trong việc sử dụng cùng một người dùng cho xác thực đồng nhất và nhận dạng hồ bơi ứng dụng ... nếu bạn cần cung cấp cho tính năng chia sẻ thông tin cho phép đối với một thư mục .... – giammin

+0

@giammin - tại sao không? Trừ khi bạn có một trường hợp đặc biệt, việc sử dụng nhận dạng hồ bơi ứng dụng là cách tiếp cận an toàn nhất được cung cấp cho mỗi trang web trong hồ bơi ứng dụng của riêng nó. Ghét để làm "kháng cáo thẩm quyền" nhưng đã được một kỹ sư máy chủ web chia sẻ và anh chàng bảo mật trong 15 năm, phương pháp này là không có trí tuệ trên IIS7 +. – Kev

+0

@Kev đơn giản là tôi không thích cấp quyền ghi trên trang web cho người dùng ẩn danh – giammin

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