2009-04-24 22 views
7

Chúng tôi đang cố gắng để WCF và Java nói chuyện với nhau bằng cách sử dụng mã thông báo SAML được phát hành từ STS. Mặc dù thực tế là cả hai bên đều tuân thủ các tiêu chuẩn, WS-Security, WS-Trust, WS-Policy, vv, dường như họ không nói chuyện với nhau và một bên khác sẽ ném các ngoại lệ khó hiểu hoặc bỏ qua các tiêu đề bảo mật .WCF Interop với Axis2 sử dụng WS-Trust

Chúng tôi đang sử dụng .NET 3.5, Liên kết WCF ràng buộc ở phía MS và Axis2/Rampart/Rahas ở phía java.

Có ai từng có thể thực hiện công việc này không?

+0

bạn có thể vui lòng đính kèm các chính sách bảo mật vào cuối lũy .. –

Trả lời

6

Axis2 là không đầy đủ về tiêu chuẩn WS tuân thủ.

Gần đây tôi (trong tháng trước) đã trải qua giai đoạn POC trong đó Axis2 không thực hiện các kiểm tra tuân thủ WS- * của mình (đặc biệt là WS-AT, WS-Coordination).

Hãy xem "Project Metro". Sun và Microsoft đã cộng tác để có được WCF và JAX-WS interop "đúng".
https://metro.dev.java.net/

+0

Axis2/Rampart có hỗ trợ đầy đủ cho WS-Trust và cũng interop thử nghiệm với WCF .. Nếu bạn có bất kỳ vấn đề xin vui lòng trả lời với các chi tiết. –

2

Tôi giả định rằng phía máy chủ là trục, nó không rõ ràng nhưng đó là phổ biến hơn.

Nếu bạn đang lập trình các dịch vụ web tương thích trong Java, bạn nên xem xét chuyển sang JAX-WS, không chỉ vì mô hình lập trình trục2 là một chút kì lạ, nhưng thường mã không hoàn chỉnh. Tôi đã chắc chắn đi qua các tính năng được thực hiện một phần trước đây, cũng là tôi thấy khó xác định những gì thử nghiệm cho khả năng tương tác đã được thực hiện với ngăn xếp của Microsoft.

Tôi cho rằng bạn có nhiều cơ hội tốt hơn trong tương lai bằng cách sử dụng ngăn xếp JAX-WS. Một lý do chính là Sun Engineers dành một chút thời gian ngồi với các kỹ sư của Microsoft để đảm bảo rằng các ngăn xếp của họ tương thích và họ sẽ giải thích các thông số kỹ thuật theo cùng một cách. Bên cạnh đó mô hình lập trình này dễ dàng hơn và có thể được điều khiển bằng chú thích. Nó cũng phần nào đơn giản hóa việc triển khai và bảo trì. Vùng chứa bổ sung để phục vụ các tệp .AAR và không quan trọng để loại bỏ trục2 khỏi điểm cuối dịch vụ chỉ có thể bỏ qua: điểm cuối có thể được coi là Servlet.

Có tài liệu hướng dẫn người dân nhận được SAML để làm việc với JAX-WS: http://www.jroller.com/gmazza/entry/using_the_opensaml_library_in

Nếu bạn không thể di chuyển xa axis2 Tôi nghĩ rằng một chiến lược tương tự cần phải được sử dụng. Nơi bạn sẽ chặn mã thông báo và thực hiện xác thực trước khi nó được gọi đến điểm cuối dịch vụ.

Xem: http://www.omg.org/news/meetings/workshops/Web_Services_USA_Manual/02-3_K_Smith.pdf

http://www.mail-archive.com/[email protected]/msg10292.html

http://www2.sys-con.com/ITSG/virtualcd/WebServices/archives/0303/secrist/index.html

3

Tôi cũng sẽ không đề xuất và tham gia Axis2 ở phía Java, nếu có thể. Sẽ dễ dàng hơn với Glassfish hoặc JAX-WS rõ ràng, althoug tôi chưa bao giờ thử nghiệm nó.

Tôi cũng gặp phải các vấn đề như vậy khi cố gắng hợp tác với WCF và Axis2. Kiểm tra phiên bản của tiêu chuẩn được sử dụng trong tệp WSDL, các phiên bản này không phù hợp trong trường hợp của chúng tôi.

+0

Axis2/Rampart có hỗ trợ đầy đủ cho WS-Trust và kiểm tra tốt interop với WCF .. Nếu bạn có bất kỳ vấn đề nào vui lòng trả lời với các chi tiết .. –

1

Chúng tôi đã thử nghiệm thành công Rampart cho các kịch bản WS-Trust với WCF ở cả máy khách và máy chủ.

BTW Rampart chưa hỗ trợ các kịch bản WS-Federation và chính sách bảo mật của bạn có thể liên quan đến nó. [FYI - WS-Federation sẽ có mặt với Rampart vào giữa năm tới].

Nếu bạn có thể xin vui lòng đính kèm các chính sách an ninh chúng ta có thể có một cái nhìn gần gũi ..

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