Cách gán quyền cho tài khoản ApplicationPoolIdentity


263

Trong IIS 7 trên Windows Server 2008, nhóm ứng dụng có thể được chạy dưới dạng tài khoản "ApplicationPoolIdentity" thay vì tài khoản NetworkService.

Làm cách nào để tôi gán quyền cho tài khoản "ApplicationPoolIdentity" này. Nó không xuất hiện như một người dùng cục bộ trên máy. Nó không xuất hiện như một nhóm ở bất cứ đâu. Không có gì từ xa như nó xuất hiện ở bất cứ đâu. Khi tôi duyệt tìm người dùng cục bộ, nhóm và tài khoản tích hợp, nó không xuất hiện trong danh sách, cũng không có gì tương tự xuất hiện trong danh sách. Chuyện gì đang xảy ra vậy?

Tôi không phải là người duy nhất gặp vấn đề này: xem Rắc rối với ApplicationPoolIdentity trong IIS 7.5 + Windows 7 để biết ví dụ.


"Thật không may, đây là một hạn chế của trình chọn đối tượng trên Windows Server 2008 / Windows Vista - vì nhiều người đã phát hiện ra nó, bạn vẫn có thể thao tác ACL cho nhận dạng nhóm ứng dụng bằng các công cụ dòng lệnh như icacls ."

Câu trả lời:


289

Cập nhật: Câu hỏi ban đầu là dành cho Windows Server 2008, nhưng giải pháp dễ dàng hơn cho Windows Server 2008 R2 và Windows Server 2012 (và Windows 7 và 8). Bạn có thể thêm người dùng thông qua giao diện người dùng NTFS bằng cách nhập trực tiếp. Tên theo định dạng của IIS APPPOOL \ {tên nhóm ứng dụng}. Ví dụ: IIS APPPOOL \ DefaultAppPool.

IIS APPPOOL\{app pool name}

Lưu ý: Mỗi bình luận bên dưới, có hai điều cần lưu ý:

  • Nhập chuỗi trực tiếp vào "Chọn người dùng hoặc nhóm" chứ không phải trong trường tìm kiếm.
  • Trong môi trường miền, bạn cần đặt Vị trí cho máy tính cục bộ của mình trước.

Tham khảo bài viết Microsoft Docs: Danh tính nhóm ứng dụng> Bảo mật tài nguyên

Phản hồi ban đầu: (dành cho Windows Server 2008) Đây là một tính năng tuyệt vời, nhưng như bạn đã đề cập, nó chưa được thực hiện đầy đủ. Bạn có thể thêm danh tính nhóm ứng dụng từ dấu nhắc lệnh bằng một cái gì đó như icacls, sau đó bạn có thể quản lý nó từ GUI. Ví dụ: chạy một cái gì đó như thế này từ dấu nhắc lệnh:

icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)

Sau đó, trong Windows Explorer, hãy chuyển đến thư mục wwwroot và chỉnh sửa các quyền bảo mật. Bạn sẽ thấy những gì trông giống như một nhóm (biểu tượng nhóm) được gọi là DefaultAppPool. Bây giờ bạn có thể chỉnh sửa các quyền.

Tuy nhiên, bạn không cần phải sử dụng điều này cả. Đó là một phần thưởng mà bạn có thể sử dụng nếu bạn muốn. Bạn có thể sử dụng cách cũ để tạo người dùng tùy chỉnh cho mỗi nhóm ứng dụng và gán người dùng tùy chỉnh vào đĩa. Điều đó có hỗ trợ UI đầy đủ.

Phương pháp tiêm SID này rất hay vì nó cho phép bạn sử dụng một người dùng nhưng cách ly hoàn toàn từng trang web với nhau mà không phải tạo người dùng duy nhất cho mỗi nhóm ứng dụng. Khá ấn tượng, và nó sẽ còn tuyệt vời hơn nữa với sự hỗ trợ của UI.

Lưu ý: Nếu bạn không thể tìm thấy người dùng nhóm ứng dụng, hãy kiểm tra xem liệu dịch vụ Windows có tên là Service Host Helper Service có chạy không. Đây là dịch vụ ánh xạ người dùng ứng dụng vào tài khoản Windows.


1
Nó là một con quái vật kỳ lạ vì nó không giống như một nhóm mà người dùng sống trong một nhóm và nó không giống như một tài khoản máy tính so với tài khoản người dùng hoàn toàn khác biệt với nhau. Tài khoản nhóm ứng dụng 'chồng chéo' người dùng nhận dạng nhóm ứng dụng. Ví dụ: bạn có thể có 5 nhóm ứng dụng sử dụng Dịch vụ mạng và 5 nhóm khác sử dụng tài khoản tùy chỉnh, nhưng chúng là 10 tài khoản nhóm ứng dụng được quản lý hệ thống khác nhau. Những ưu điểm được nhận thấy với thư mục c: \ inetpub \ temp \ appPools nơi nó được quản lý tự động và khóa hệ thống sạch sẽ. IIS tận dụng chúng tốt. Việc sử dụng của chúng tôi trên các thư mục là tùy chọn.
Scott Forsyth - MVP

29
Lưu ý rằng nếu bạn nhập trực tiếp "IIS APPPOOL \ DefaultAppPool" vào "Chọn người dùng hoặc nhóm" (thay vì tìm kiếm nó) khi chỉnh sửa quyền, nó sẽ được nhận dạng tốt (được thử nghiệm trên Win7 x64 và Win2k8 R2 x64).
Milan Gardian

5
Bạn đã đúng cho Win7 và Win2k8 R2. Nó không được triển khai trong Win2k8 RTM, nhưng ở R2.
Scott Forsyth - MVP

9
Cuối cùng cũng nhận được điều này - nếu bạn nhập tên nhóm ứng dụng trực tiếp như @Milan Gardian nói ở trên thay đổi trường vị trí thành máy cục bộ thì nó hoạt động
Ciaran Bruen

4
Cảm ơn bạn rất nhiều vì "hai điều cần biết". Tôi đã vấp phải cả hai điều này, và đây là một lời giải thích rõ ràng và đơn giản về các vấn đề và làm thế nào để đạt được những gì tôi cần. Thật đáng tiếc, không có tài liệu MSDN nào rõ ràng như vậy.
Ian Grainger

22

Bạn phải chắc chắn rằng From this locationtrường được đặt thành local machinevà không phải miền.

Tôi đã có cùng một vấn đề và một khi tôi đã thay đổi thì nó hoạt động tốt.


4

Bạn thực sự nên tạo các nhóm theo "vai trò" và chỉ định nhóm đó truy cập vào hệ thống tệp. Sau đó thêm nhóm ứng dụng vào các nhóm cụ thể theo vai trò khi cần thiết. Bằng cách này, ngay cả khi bạn loại bỏ các hồ bơi ứng dụng sau đó (và người dùng ảo đi poof ), bạn không cần phải lo lắng về việc làm lại tất cả các quyền, bạn chỉ cần thêm hồ bơi ứng dụng thay thế cho nhóm hiện có.


3

Sau khi đọc @Scott Forsyth - Câu trả lời MVP, tôi đã cố gắng khởi động lại Dịch vụ trợ giúp máy chủ ứng dụng. Điều đó đã giải quyết vấn đề cho tôi.


0

Tôi đã chạy WS8 R2 và tôi không thể thêm IIS APPPOOL\DefaultAppPoolqua Windows Explorer. Cách duy nhất nó hoạt động là thông qua dòng lệnh:

cacls [FILE PATH] / T / E / G "IIS APPPOOL \ DefaultAppPool": C


2
Thật kỳ lạ, tôi đã phải làm "IIS AppPool \ DefaultAppPool" để được chấp nhận. Lưu ý trường hợp hỗn hợp - tất cả chữ hoa, như tôi đã làm lần đầu tiên, không được chấp nhận từ GUI.
Jeff McJunkin

0

Nếu câu hỏi này là về cách thực thi _sp_send_dbmail trong cơ sở dữ liệu msdb (sử dụng thủ tục lưu SQL gửi cơ sở dữ liệu trong msdb), thì đây là một số cách giải quyết. Thêm tên người dùng ứng dụng .net của cơ sở dữ liệu của bạn (được xác định trên chuỗi kết nối trong ứng dụng .net của bạn) cho người dùng msdb với tư cách thành viên vai trò "DatabaseMailUserRole"

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.