Tài khoản IUSR và IWAM trong IIS là gì?


23

Tôi đang tìm kiếm một lời giải thích tốt về các tài khoản IUSR và IWAM được IIS sử dụng để giúp tôi định cấu hình tốt hơn môi trường lưu trữ của chúng tôi:

  • Tại sao họ lại ở đó?
  • Sự khác biệt giữa chúng là gì?
  • Những cái tên đại diện cho một cái gì đó có ý nghĩa?
  • Có bất kỳ thay đổi thực hành tốt nhất tôi nên làm?
  • IIS cũng cung cấp cho tôi các tùy chọn để chạy các nhóm ứng dụng như Dịch vụ mạng, Dịch vụ cục bộ hoặc Hệ thống cục bộ. Tôi có nên
  • Máy chủ web của tôi là một phần của một miền, điều này thay đổi mọi thứ như thế nào?

Dường như rất phổ biến để tạo các phiên bản tài khoản của riêng bạn khi triển khai nhiều trang web đến một máy chủ đặt ra một số câu hỏi thêm:

  • Khi nào tôi có thể muốn tạo tài khoản IUSR và IWAM của riêng mình?
  • Tôi nên tạo các tài khoản bổ sung này như thế nào để chúng có quyền chính xác?

Tôi đang sử dụng cả IIS 6 và IIS 7 với cấu hình chủ yếu mặc định.

Câu trả lời:


33

IUSR và IWAM bắt đầu từ những ngày đầu của IIS khi bạn cài đặt nó một cách riêng biệt (không phải là một thành phần HĐH). Theo mặc định, nếu một trang web cho phép xác thực ẩn danh, tài khoản IUSR được sử dụng đối với các quyền trên HĐH. Điều này có thể được thay đổi từ mặc định. Có một số đề xuất bảo mật để ít nhất đổi tên tài khoản, vì vậy đó không phải là tài khoản "đã biết", giống như có một đề xuất đổi tên tài khoản quản trị viên trên máy chủ. Bạn có thể tìm hiểu thêm về IUSR và xác thực tại MSDN .

IWAM được thiết kế cho mọi ứng dụng ngoài quy trình và chỉ được sử dụng trong IIS 6.0 khi bạn ở chế độ cách ly IIS 5.0. Bạn thường thấy nó với các đối tượng COM / DCOM.

Đối với danh tính nhóm ứng dụng, mặc định là chạy dưới dạng Dịch vụ mạng. Bạn không nên chạy như Hệ thống cục bộ vì tài khoản đó có quyền lớn hơn tài khoản của quản trị viên. Vì vậy, về cơ bản, điều đó đưa bạn đến Dịch vụ mạng, Dịch vụ địa phương hoặc tài khoản cục bộ / tên miền khác ngoài hai tài khoản đó.

Để làm gì, nó phụ thuộc. Một lợi thế của việc rời khỏi nó là Dịch vụ mạng là đây là tài khoản đặc quyền hạn chế trên máy chủ. Tuy nhiên, khi nó truy cập tài nguyên trên mạng, nó xuất hiện dưới dạng Domain \ ComputerName $, nghĩa là bạn có thể gán các quyền cho phép tài khoản Dịch vụ mạng truy cập các tài nguyên như SQL Server chạy trên một hộp khác. Ngoài ra, vì nó xuất hiện dưới dạng tài khoản máy tính, Nếu bạn bật xác thực Kerberos, SPN đã sẵn sàng nếu bạn truy cập trang web bằng tên máy chủ.

Trường hợp bạn cân nhắc thay đổi nhóm ứng dụng thành tài khoản miền Windows cụ thể nếu bạn muốn một tài khoản cụ thể truy cập các tài nguyên được nối mạng như tài khoản dịch vụ truy cập SQL Server cho ứng dụng dựa trên web. Có các tùy chọn khác trong ASP.NET để thực hiện việc này mà không thay đổi danh tính nhóm ứng dụng, vì vậy điều này không còn cần thiết nữa. Một lý do khác mà bạn xem xét khi sử dụng tài khoản người dùng tên miền là bạn đang thực hiện xác thực Kerberos và bạn có nhiều máy chủ web phục vụ một ứng dụng web. Một ví dụ điển hình là nếu bạn có hai hoặc nhiều máy chủ web phục vụ Dịch vụ báo cáo SQL Server. Giao diện người dùng có thể sẽ đến một url chung như báo cáo.mydomain.com hoặc báo cáo.mydomain.com. Trong trường hợp đó, SPN chỉ có thể được áp dụng cho một tài khoản trong AD. Nếu bạn có nhóm ứng dụng chạy trong Dịch vụ mạng trên mỗi máy chủ thì điều đó sẽ không hoạt động, bởi vì khi họ rời khỏi máy chủ, chúng sẽ xuất hiện dưới dạng Domain \ ComputerName $, nghĩa là bạn có nhiều tài khoản như bạn có máy chủ phục vụ ứng dụng. Giải pháp là tạo một tài khoản miền, đặt danh tính nhóm ứng dụng trên tất cả các máy chủ thành cùng một tài khoản người dùng tên miền và tạo một SPN, từ đó cho phép xác thực Kerberos. Trong trường hợp một ứng dụng như SSRS, nơi bạn có thể muốn chuyển thông tin đăng nhập của người dùng đến máy chủ cơ sở dữ liệu phía sau, thì xác thực Kerberos là bắt buộc vì sau đó bạn sẽ phải định cấu hình ủy quyền Kerberos. d có nhiều tài khoản như bạn có máy chủ phục vụ ứng dụng. Giải pháp là tạo một tài khoản miền, đặt danh tính nhóm ứng dụng trên tất cả các máy chủ thành cùng một tài khoản người dùng tên miền và tạo một SPN, từ đó cho phép xác thực Kerberos. Trong trường hợp một ứng dụng như SSRS, nơi bạn có thể muốn chuyển thông tin đăng nhập của người dùng đến máy chủ cơ sở dữ liệu phía sau, thì xác thực Kerberos là bắt buộc vì sau đó bạn sẽ phải định cấu hình ủy quyền Kerberos. d có nhiều tài khoản như bạn có máy chủ phục vụ ứng dụng. Giải pháp là tạo một tài khoản miền, đặt danh tính nhóm ứng dụng trên tất cả các máy chủ thành cùng một tài khoản người dùng tên miền và tạo một SPN, từ đó cho phép xác thực Kerberos. Trong trường hợp một ứng dụng như SSRS, nơi bạn có thể muốn chuyển thông tin đăng nhập của người dùng đến máy chủ cơ sở dữ liệu phía sau, thì xác thực Kerberos là bắt buộc vì sau đó bạn sẽ phải định cấu hình ủy quyền Kerberos.

Tôi biết đó là rất nhiều để đưa vào, nhưng câu trả lời ngắn gọn là, ngoại trừ Hệ thống cục bộ, nó phụ thuộc.


Đáng lưu ý rằng các đề xuất đổi tên các tài khoản này không đến từ Microsoft. Tài khoản hệ thống có SID tĩnh và được ghi chép đầy đủ và có thể dễ dàng hack bất kể tên hiển thị.
Thomas

9

IUSR = Người dùng Internet, tức là bất kỳ khách truy cập ẩn danh, chưa xác thực nào vào trang web của bạn (tức là khá nhiều người)

IWAM = Trình quản lý ứng dụng web Internet, tức là tất cả các ứng dụng ASP và .NET của bạn sẽ chạy trong tài khoản này

Nói chung, IUSR và IWAM CHỈ nên có quyền truy cập chính xác những gì họ cần. Họ không bao giờ nên được cấp quyền truy cập vào bất cứ điều gì khác, trong trường hợp các tài khoản này bị xâm phạm thì họ không thể truy cập bất cứ điều gì quan trọng.

Đó là tất cả những gì tôi có thể giúp trong danh sách các câu hỏi của bạn, những câu hỏi khác có nhiều kinh nghiệm hơn về quản trị IIS có thể giúp bạn tiếp tục!


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.