Tôi muốn tiêu thụ .Net WS từ IBM WebSphere.Ứng dụng khách JAX-WS của IBM .Net WS với xác thực Active Directory (NTLM)
Tôi đã tạo WS-client với triển khai thực hiện JAX-WS của IBM để tiêu thụ .Net WS trên IIS. Các khách hàng là trên SUSE và xác thực là bởi NTLM với Windows Server 2003 Active Directory.
Nếu khách hàng được thực thi trong dòng lệnh thực hiện cuộc gọi java.net.Authenticator để nhận thông tin đăng nhập và yêu cầu thành công.
Nếu khách hàng được thực hiện bên trong RAD Authenticator không được gọi và nó không thành công với 401.
Nếu khách hàng được thực hiện bên trong WebSphere Authenticator không được gọi và nó không thành công với 401.
Nếu tôi tạo một HttpConnection trực tiếp đến URL .Net WS thì Authenticator được gọi và yêu cầu thành công.
Nếu thay vì JAX-WS Việc triển khai IBM, tôi sử dụng Axis2 (trực tiếp, không thực hiện JAX-WS của IBM Axis2) Tôi có thể chuyển cho đối tượng Authenticator của đối tượng Authenticator và yêu cầu thành công. Điều này chỉ hoạt động cho giao thức NTLM với Windows Server 2003. Khi chúng ta di chuyển sang Windows Server 2008, giao thức auth là NTLMv2 (mọi người chuyển sang NTLMv2 vì vấn đề bảo mật với NTLM) và yêu cầu không thành công vì NTLMv2 không được HTTP Client 3 hỗ trợ. X là phụ thuộc của Axis2. Và trong một thời gian họ sẽ không di cư.
Nếu tôi sử dụng tính năng triển khai JAX-WS khác tốt hơn IBM, tôi mất quyền quản lý bảng điều khiển và đọc chú thích tự động cùng với hỗ trợ rời khỏi IBM.
Câu hỏi
tôi không hiểu tại sao bên trong RAD nó, đã không hề làm việc, là cùng một chương trình làm việc từ dòng lệnh.
Làm thế nào để bạn thực hiện JAX-WS IBM thực hiện xác thực với hỗ trợ giao thức NTLMv2 với thông tin đăng nhập cụ thể? (java.net.Authenticator cung cấp cho bạn điều này, và nó sẽ được gọi là ... nó không)
Có cách nào để làm cho việc triển khai JAX-WS của IBM có thể sử dụng một ứng dụng khách HTTP khác không?
Ngay cả khi triển khai JVM của IBM cung cấp xác thực NTLM (đây là lý do tại sao dòng lệnh và lệnh thực thi HttpConnection trực tiếp hoạt động) nên tôi không hiểu tại sao họ không sử dụng nó cho ngăn xếp IBM WS.
điểm Thêm
Có cách nào tốt để cung cấp khả năng hai chiều để tiêu thụ WS với xác thực ActiveDirectory?
Comment
Xuân WS sử dụng HttpClient 4.X hỗ trợ NTLMv2 auth, nhưng tôi cần một việc thực hiện JAX-WS và nó nên là người của IBM. JAX-WS của IBM dường như chỉ hỗ trợ AUTH cơ bản. Tôi không hiểu làm thế nào mà Microsoft WS interop không quan trọng đối với IBM.
Tài liệu tham khảo
Authenticator conf:
https://stackoverflow.com/a/5994706/14811
Cảm ơn trước!
Tôi không chọn để đi đến NTLMv2, công ty đi đến. WS-Security là một lớp trên giao thức truyền tải. NTLMv2 hoạt động trong lớp truyền tải nên tôi không thể đi với WS-Security. Kerberos là một lựa chọn tốt hơn so với NTLMv2 nhưng nó không cho phép tải cân bằng máng DNS vì có khả năng chống tấn công Man-In-The-Middle. Trong trường hợp này, IP mục tiêu có thể thay đổi. NTLMv2 an toàn, chúng tôi không cần Kerberos. Tôi đã thử nghiệm một số ngăn xếp WS (Axis2, IBM JAX-WS, Spring WS) với chiến lược Authenticator và tất cả chúng đều tránh được nó. Nhưng tài liệu Authenticator nói rằng bất kỳ truy cập mạng nào cũng nên tìm kiếm thông tin đăng nhập trong đó. –
Giới thiệu về Authenticator. Tôi đã tạo ra một chương trình nhỏ đặt một Authenticator và gọi một WS. Nếu tôi chạy chương trình này bên trong RAD nó không thành công, nếu bạn chạy nó từ dòng lệnh, nó sẽ gọi Authenticator để nhận các thông tin xác thực và hoạt động tốt. Tôi không biết tại sao. –