2012-03-19 30 views
13

Tôi có một vài ứng dụng web dựa trên Java được phát triển. Cả hai ứng dụng đều có logic Xác thực riêng dựa trên một số cài đặt thư mục ActiveX.Xác thực Windows cho các ứng dụng web dựa trên Java, Cách thực hiện?

Bây giờ, tôi cần thay đổi điều này thành xác thực Windows để bất cứ khi nào người dùng truy cập URL của ứng dụng web của tôi, thay vì chuyển hướng anh ta đến trang đăng nhập, tôi cần kiểm tra thông tin đăng nhập Windows của anh ấy.

Tôi không muốn lưu trữ thông tin đăng nhập cửa sổ của mình trong URL.

Có cách nào tốt để thực hiện việc này không?

+0

Nó gần như không thể làm điều này trong một trình duyệt thời trang độc lập. Nhiều năm trở lại đây, chúng tôi đã thực hiện điều này với sự kết hợp giữa IE và Netegrity (nay là CA) SiteMinder. – Perception

+1

@Perception - Trên thực tế, Spring Security + Kerberos có thể cung cấp loại chức năng này cho bất kỳ trình duyệt nào hỗ trợ xác thực Kerberos, mà tôi nghĩ là tất cả các trình duyệt chính ngay bây giờ. – cdeszaq

+0

Nếu bạn không sử dụng bảo mật mùa xuân, hãy thử [SPNEGO Filter] (http://spnego.sourceforge.net/index.html) –

Trả lời

1

Tôi muốn đề xuất sử dụng Active Directory để hiển thị lớp xác thực cửa sổ của nó qua LDAP, sau đó có thể bị truy cập bởi một cái gì đó như Spring Security.

Điều này sẽ buộc bất kỳ ai sử dụng ứng dụng của bạn sử dụng đăng nhập cửa sổ của họ.

+1

Bạn có thể lớp nhà cung cấp xác thực với Spring Security, do đó, sử dụng LDAP với AD không _necessarily_ yêu cầu cửa sổ đăng nhập để sử dụng ứng dụng. Spring Security cực kỳ linh hoạt. – cdeszaq

10

Tùy thuộc vào mức độ tích hợp bạn muốn ứng dụng web của mình có, Spring Security sẽ giúp bạn có được mọi thông tin về những gì bạn đang làm sau.

Nếu chuyển hướng đến trang đăng nhập và xác thực thông tin đăng nhập đã nhập vào máy chủ Active Directory qua LDAP là chấp nhận được thì LDAP extension là cách để thực hiện.

Nếu bạn muốn thêm luồng đăng nhập một lần (SSO) và người dùng của bạn đã được xác thực đối với máy chủ Active Directory có thẩm quyền được đề cập (ví dụ: họ đã đăng nhập vào miền), thì Kerberos plugin cho Spring Security hấp dẫn hơn, vì người dùng của bạn sẽ chỉ cần truy cập ứng dụng web và sẽ không phải trải qua bất kỳ bước xác thực nào khác. Các hệ thống sẽ chăm sóc nó đằng sau hậu trường.

Bạn cũng có thể kết hợp/lớp các phương pháp này nếu bạn sử dụng và thử xác thực dựa trên Kerberos trước và nếu quá trình xác thực bị rơi, hãy quay lại biểu mẫu đăng nhập và xác thực dựa trên LDAP.

Nếu bạn cần vượt xa điều đó, Spring Security đủ linh hoạt để cho phép bạn sử dụng OpenID hoặc xác thực trong ứng dụng nếu cần.

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