2009-03-16 32 views
10

Tôi đang phát triển một ứng dụng web ASP.net cho công ty của tôi. Một số người dùng sử dụng trang web này trong mạng nội bộ (Intranet) và một số người sử dụng trang web Internet. Tôi đang sử dụng chế độ Xác thực Windows.Xác thực Windows cho Intranet/Internet

Tôi cần phải tìm một cách để không nhắc chế độ Windows Authentication cho một người sử dụng mạng nội bộ và nhắc chế độ Windows Authentication cho một người sử dụng Internet.

Tôi làm cách nào để thực hiện việc này?

Trả lời

0

Theo tôi biết xác thực cửa sổ chỉ có thể được sử dụng cho mạng nội bộ nhưng bạn cũng có thể bao gồm xác thực biểu mẫu để xác thực người dùng internet. This page có một số thông tin và liên kết cho hướng dẫn về cách thực hiện việc này.

0

Tôi có thể triển khai ứng dụng trên hai máy chủ khác nhau. cửa sổ xác thực trên một máy chủ bên trong tường lửa có thể truy cập và avaible để cửa sổ người dùng xác thực. trên khuôn mặt công khai, bạn đặt cấu hình web để sử dụng xác thực biểu mẫu và sau đó lo lắng về việc bảo mật kết nối với chương trình phụ trợ.

tuy nhiên, nếu bạn muốn sử dụng một máy chủ duy nhất cho điều này, bạn có thể muốn đọc bài viết này MSDN: Mixing Forms and Windows Security in ASP.NET

18

Dựa trên những gì bạn mô tả, Windows Authentication trong IIS sẽ làm các trick.

Đầu tiên một số liên kết:

Tuy nhiên lưu ý những điều sau:

Đăng nhập một lần (SSO) (tức là truy cập vào ứng dụng mà không cung cấp tên người dùng và mật khẩu) sẽ xảy ra nếu tất cả các điều sau là đúng:

  • Máy tính khách và máy chủ là một phần của cùng một miền Active Directory.
  • Phiên người dùng trên máy tính khách là người dùng từ miền AD.
  • Máy tính khách có quyền truy cập vào máy chủ miền (nghĩa là máy chủ chịu trách nhiệm về thông tin đăng nhập của người dùng)
  • Trình duyệt là Internet Explorer.
  • Các URL được sử dụng điểm đến FQDN của máy chủ (tức là http://SERVERNAME.DOMAIN.NAME/ không chỉ http://SERVERNAME/
  • Người sử dụng có thẩm quyền phải có đọc truy cập vào các thư mục ứng dụng nếu bạn đang sử dụng mạo danh. Ứng dụng này sẽ được chạy với chứng chỉ của họ về cơ bản. (biết thêm chi tiết trong MSDN article)

Dưới bất kỳ trường hợp khác, người dùng sẽ được nhắc nhở cho chứng chỉ (username và password) cho một tài khoản trong Active Directory domain. vì vậy, người dùng truy cập vào máy chủ web của bạn từ internet sẽ nhận được một popup yêu cầu họ cung cấp tên người dùng và mật khẩu.Lưu ý rằng đối với người dùng không sử dụng dấu hiệu đơn (người dùng được nhắc nhập tên người dùng và mật khẩu), chế độ xác thực HTTP rất có thể là BASIC, nghĩa là bất kỳ ai có thể chặn kết nối đó sẽ có thể thấy tên người dùng và mật khẩu trao đổi. Nếu bạn sử dụng kỹ thuật này, kết nối giữa máy khách và máy chủ được mã hóa (HTTPS hoặc có thể là VPN).

+1

Liên kết sau đây cho biết Xác thực tích hợp cửa sổ sẽ không sử dụng BASIC với IE, thay vào đó nó trở lại NTLM. http://www.aniltj.com/blog/CommentView,guid,d6bb26b9-8371-40f1- a3 57-ab9023df86ad.aspx NTLM có an toàn trên HTTP không? Điều này cũng đúng đối với các trình duyệt không phải là IE? – Spongeboy

+1

NTLM được hỗ trợ bởi tất cả các trình duyệt chính. Tôi khuyên bạn nên buộc HTTPS cho bất kỳ nội dung được xác thực nào, ngay cả khi sử dụng NTLM. – bkr

2

Đảm bảo máy chủ web của bạn đang chạy trên một miền và tất cả người dùng Intranet của bạn đã đọc quyền truy cập vào thư mục chứa trang web của bạn trên máy chủ Web.

Sau đó, hãy chắc chắn rằng bạn có trong web.config của bạn (giả sử bạn muốn để phát hiện mà miền người dùng đang truy cập vào trang web của bạn.

Cuối cùng, mở quản lý IIS và nhấn phải chuột lên trang web và chọn "Properties" Từ đó nhấp vào tab "Directory Security" và nhấp vào "Chỉnh sửa" bằng Xác thực và Kiểm soát Truy cập Bỏ chọn "Truy cập Chưa xác định" và đảm bảo "Xác thực Windows Tích hợp" được chọn. Điều này sẽ làm cho trang web hoạt động như mong đợi (giả sử các khách hàng mạng nội bộ của bạn) sử dụng IE)

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