Các dịch vụ Web Java: Sử dụng độ chi tiết của WS-Security Áp dụng WS-Security ở mức hoạt động hoặc mức thông báo pptx

19 245 0
Các dịch vụ Web Java: Sử dụng độ chi tiết của WS-Security Áp dụng WS-Security ở mức hoạt động hoặc mức thông báo pptx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Các dịch vụ Web Java: Sử dụng độ chi tiết WS-Security Áp dụng WS-Security mức hoạt động mức thông báo Dennis Sosnoski, Nhà tư vấn, Sosnoski Software Solutions, Inc Tóm tắt: WS-Security (An ninh dịch vụ Web) cho dịch vụ Web SOAP không thiết phải đề xuất tất khơng Bằng cách cấu hình WS-Security mức hoạt động mức thơng diệp, bạn áp dụng mức độ bảo vệ thích hợp cho trao đổi, giảm loại bỏ chi phí WS-Security cho hoạt động không cần bảo vệ đầy đủ Dennis Sosnoski tiếp tục loạt dịch vụ Web Java việc xem xét WS-Security chi tiết mịn Web Services Description Language (WSDL-Ngôn ngữ mô tả dịch vụ Web) sử dụng Axis2 Rampart Apache Trong môi trường dịch vụ Web đơn giản, máy khách kết nối trực tiếp đến máy chủ máy chủ trực tiếp thực tất xử lý cần thiết cho yêu cầu Như bạn tìm hiểu viết trước loạt này, kết nối an ninh SSL cung cấp an ninh tuyệt vời cho hầu hết mục đích kiểu môi trường Tuy nhiên, môi trường phức tạp ngày phổ biến, nhiều tầng máy chủ tham gia vào việc xử lý yêu cầu Toàn ý tưởng cách dàn dựng (orchestration) dịch vụ ngày phổ biến nhiều môi trường doanh nghiệp, dựa vào cách tiếp cận này, khái niệm kiến trúc hướng dịch vụ (SOA) Trong kiểu môi trường này, lựa chọn WS-Security mạnh cần thiết Về loạt Các dịch vụ Web phần chủ yếu vai trị cơng nghệ Java điện toán doanh nghiệp Trong loạt viết này, nhà tư vấn XML dịch vụ Web Dennis Sosnoski trình bày khung cơng tác cơng nghệ quan trọng với nhà phát triển Java sử dụng dịch vụ Web Hãy theo dõi loạt để cập nhật phát triển lĩnh vực hiểu bạn sử dụng chúng để hỗ trợ cho dự án lập trình bạn WS-Security địi hỏi chi phí hiệu lớn, thảo luận viết trước Một cách để giảm chi phí thiết lập WS-SecurityPolicy (Chính sách an ninh dịch vụ Web) thích hợp cho hoạt động riêng lẻ chí thơng điệp dịch vụ xác định, áp dụng WS-SecurityPolicy với toàn dịch vụ Sử dụng độ chi tiết mịn WS-Security đòi hỏi phải xem xét nhiều so với cách tiếp cận một-kích-cỡ-vừa-với-tất-cả, áp dụng cách làm giảm chi phí hiệu cho hoạt động thường sử dụng mà không làm suy yếu việc bảo đảm an ninh hoạt động cần đến Định nghĩa sách Ứng dụng ví dụ sử dụng cho viết ứng dụng sử dụng "Axis2 WS-Security basics" (Những điều An ninh dịch vụ Web Axis2) "Axis2 WS-Security signing and encryption" (Ký mã hoá An ninh dịch vụ Web Axis2) — dịch vụ quản lý thư viện đơn giản - (Xem Tải để nhận mã nguồn đầy đủ cho này) Dịch vụ định nghĩa ba hoạt động:  getBook để lấy chi tiết sách cụ thể nhận diện mã số sách tiêu chuẩn quốc tế (ISBN - International Standard Book Number)  getBooksByType để lấy chi tiết cho tất sách thuộc kiểu cụ thể  addBook để thêm sách vào thư viện Để đưa số tính đa dạng thú vị việc bảo đảm an ninh, viết giả định rằng:  Hoạt động getBook trưng cách an tồn cho (khơng có bảo mật)  getBooksByType cần cấp phép (vì địi hỏi UsernameToken)  Hoạt động addBook cần lịch sử hoạt động để lần theo vết gửi sách (được thực cách ký thông báo yêu cầu) Trong viết trước, bạn thấy cách cấu hình Axis2/Rampart cách gắn tài liệu WS-SecurityPolicy vào cá thể org.apache.axis2.client.ServiceClient (ở phía máy khách) cách nhúng tài liệu sách tệp cấu hình dịch vụ services.xml (ở phía máy chủ) Cách tiếp cận làm việc có ích việc thử nghiệm, việc chạy sản xuất, tốt kết hợp trực tiếp WS-SecurityPolicy với định nghĩa dịch vụ cách nhúng tài liệu WSDL WS-Policy WS-SecurityPolicy thiết kế để hỗ trợ kiểu nhúng này, với tham chiếu từ định nghĩa , /, // sử dụng để nhận biết sách thích hợp áp dụng cho liên kết, hoạt động thơng báo Axis2 1.4.1 triển khai thực xử lý sơ cho sách nhúng WSDL khai thực cải thiện mã phát hành Axis2 1.5 Để giải thích việc sử dụng sách WSDL, viết sử dụng mã phát hành Axis2 1.5 kết hợp với mã Rampart chưa phát hành (mà cuối phải phát hành Rampart 1.5) Liệt kê cho thấy WSDL dành cho ứng dụng ví dụ có sách thêm vào tham chiếu từ vị trí thích hợp (Liệt kê chỉnh sửa để vừa chiều dài chiều rộng; WSDL đầy đủ có sẵn tệp library.wsdl phần tải mã.) Mỗi sách định nghĩa giá trị Id (mã nhận dạng) mà sau giá trị tham khảo từ hoạt động thích hợp (trong trường hợp sách UsernameToken) thơng báo (trong trường hợp sách ký), tất in đậm Liệt kê WSDL với sách an ninh chi tiết Các sách WSDL Liệt kê tất lấy từ viết trước, trước khơng hịa trộn theo cách Mặc dù vậy, bạn nhận khác biệt đáng kể sách: tất phiên trước bao gồm thơng tin cấu hình Rampart, đặc thù cho máy khách máy chủ Bây sách nhúng vào WSDL, bao gồm trực tiếp cấu hình Rampart khơng phải cách làm tốt (Bạn cần phải chỉnh sửa WSDL để bao gồm thơng tin cấu hình Rampart máy khách bạn tạo lại mã lần thơng tin cấu hình thay đổi máy chủ, thơng tin cấu hình Rampart bạn trưng với truy cập vào WSDL) Vì vậy, thay vào mã ví dụ thiết lập thơng tin cấu hình riêng rẽ Để làm điều này, sử dụng biến thể kỹ thuật sử dụng trước cho sách có bao gồm cấu hình Rampart Cách sử dụng phía máy khách Việc tạo mã từ WSDL làm việc cũ theo quan điểm người dùng cho dù có bao gồm WS-Policy hay khơng Nếu bạn nhìn bên gốc máy khách tạo từ WSDL có chứa WS-Policy, bạn thấy sách gắn trực tiếp với thành phần mô tả dịch vụ xây dựng, điều ẩn dấu bên việc triển khai thực không làm ảnh hưởng đến phương thức giao diện mà mã máy khách bạn sử dụng Để tiến hành sử dụng cấu hình WS-SecurityPolicy máy khách, bạn cần phải thực vài hành động mã máy khách bạn Ít nhất, bạn phải gài mô đun Rampart org.apache.axis2.client.ServiceClient kết hợp với cá thể bạn Bước cần thiết chí bạn bao gồm thơng tin cấu hình Rampart bạn WSDL Thật không may, dường khơng có cách làm để gài Rampart mức hoạt động hay mức thông báo mã tại, phần ích lợi WS-Security mức chi tiết mịn bị vào lúc sử dụng với máy khách Axis2 Nếu bạn trì cấu hình Rampart bạn tách biệt khỏi WSDL khuyến cáo, bạn cần phải áp dụng cấu hình cho mơ tả dịch vụ Liệt kê cho thấy mã máy khách sử dụng cho mục đích ứng dụng ví dụ Nó gọi phương thức applyPolicy() để thêm sách có chứa cấu hình Rampart vào định nghĩa dịch vụ Liệt kê Cấu hình hoạt động phía máy khách // create the client stub String target = args[0] + "://" + args[1] + ":" + args[2] + args[3]; System.out.println("Connecting to " + target); LibraryGranularStub stub = new LibraryGranularStub(target); // configure and engage rampart module ServiceClient client = stub._getServiceClient(); client.getAxisService().applyPolicy(loadPolicy("rampart-client-policy.xml")); client.engageModule("rampart"); // set the username and password for requests which use them Options options = client.getOptions(); options.setUserName("libuser"); options.setPassword("books"); Mã Liệt kê thiết lập tên người dùng mật cho tùy chọn ServiceClient có nghĩa chúng định nghĩa cho tất hoạt động sử dụng dịch vụ chúng sử dụng hoạt động Không giống việc gài mô đun Rampart cho tất hoạt động, việc thiết lập tên người dùng mật theo cách không gây thiệt hại — giá trị sử dụng cần có Rampart để xây dựng UsernameToken không cần bỏ qua Tài liệu sách có chứa cấu hình Rampart hiển thị Liệt kê Đây sách sử dụng "Ký mã hóa WS-Security Axis2," trích xuất thành tài liệu sách riêng biệt Liệt kê Chính sách cấu hình máy khách Rampart clientkey com.sosnoski.ws.library.adb.PWCBHandler JKS client.keystore nosecret Tệp build.xml Ant có phần mã tải xử lý việc sinh mã máy khách mã máy chủ từ WSDL, biên dịch mã tạo tệp AAR dịch vụ Nó chép sách cấu hình Rampart (được cung cấp phần tải dạng tệp rampart-client-policy.xml, thư mục gốc) vào đường dẫn lớp (classpath) máy khách, với thực số việc xử lý sách phía máy chủ thảo luận phần Cách sử dụng phía máy chủ Nếu bạn muốn giữ cấu hình Rampart phía máy chủ bạn bên ngồi WSDL (nói chung ý tưởng tốt) bạn cần phải bao gồm tệp services.xml để thay thế! Trong viết trước, bạn thấy điều thực với cấu hình WS- SecurityPolicy đầy đủ, bao gồm cấu hình Rampart áp dụng cho dịch vụ nói chung Lúc này, sách cấu hình Rampart phần thêm vào services.xml thực mức hoạt động Tài liệu sách chứa cấu hình Rampart hiển thị Liệt kê Cũng sách cấu hình Rampart phía máy khách, sách sử dụng "Ký mã hoá WS-Security Axis2," trích xuất thành tài liệu sách riêng biệt Liệt kê Chính sách cấu hình máy chủ Rampart serverkey com.sosnoski.ws.library.adb.PWCBHandler JKS server.keystore nosecret Tệp build.xml Ant sử dụng chương trình PolicyTool có phần tải mã để hịa nhập sách Liệt kê (được cung cấp phần tải dạng tệp rampart-server-policy.xml, thư mục gốc) vào tệp services.xml Tệp services.xml sửa đổi hiển thị Liệt kê (đã chỉnh sửa để vừa chiều dài chiều rộng): Liệt kê services.xml sau bổ sung com.sosnoski.ws.library.adb.LibraryGranularImpl true true urn:getBook /getBookResponse urn:getBooksByType /getBooksByTypeResponse serverkey urn:addBook http://ws.sosnoski.com/library/wsdl/Library/addBookResponse serverkey Thêm sách vào services.xml cách dễ dàng "Axis2 WS-Security basics" (Cơ sở WS-Security Axis2) giới thiệu công cụ để thêm tham chiếu mơ-đun sách vào tệp services.xml sinh ra, tránh yêu cầu chỉnh sửa tệp tay bạn tạo lại mã phía máy chủ bạn Bài viết sử dụng phiên cải tiến công cụ phép bạn thực bổ sung mức hoạt động cấu hình dịch vụ để thực nhiều phép bổ sung thêm lần thi hành công cụ Phiên cải tiến com.sosnoski.ws.PolicyTool; phiên mã nguồn mã nhị phân nằm thư mục policytool phần mã tải Xem tệp readme.txt thư mục để tìm hướng dẫn Trong Liệt kê 5, bạn thấy tham chiếu tới mô đun Rampart sách cấu hình máy chủ thêm vào định nghĩa hai hoạt động sử dụng WS-Security, getBooksByType addBook Những thay đổi định cấu hình dịch vụ để gài Rampart cho hai hoạt động sử dụng giá trị cài đặt cung cấp để truy cập khóa chứng Rampart Nếu bạn xây dựng triển khai tệp AAR tạo cho cài đặt máy chủ Axis2, bạn thấy hiệu ứng điều trang Administration/Available Services (Quản trị/Các dịch vụ có sẵn), mô đun gài vào cho hoạt động định nghĩa dịch vụ liệt kê Nếu bạn chạy mã máy khách theo dõi việc trao đổi thông báo (bằng cách sử dụng công cụ TCPMon, mô tả "Cơ sở WS-Security Axis2"), bạn thấy xử lý an ninh làm việc mong muốn, với:  Khơng có tiêu đề WS-Security thông báo getBook  Một tiêu đề WS-Security với UsernameToken thông báo yêu cầu getBooksByType  Một tiêu đề WS-Security với chữ ký thông báo yêu cầu addBook (nhưng đáp ứng) Các hạn chế Axis2/Rampart Axis2 Rampart (có nghĩa là, với phát hành Axis2 1.5 có việc xây dựng Rampart hàng đêm) có khả xử lý cấu hình WSSecurityPolicy nhúng WSDL, bao gồm sách chi tiết mịn định nghĩa mức hoạt động hay mức thông báo Tuy nhiên, số cấu hình thử nghiệm cho viết khơng làm việc với Axis2/Rampart Ví dụ, việc cố gắng thiết lập sách UsernameToken cho hoạt động addBook (ngồi sách ký thơng báo đầu vào) dẫn đến lỗi rõ ràng có liên quan đến mã hóa mã Rampart (mặc dù không sử dụng mã hóa) Xét đốt từ kinh nghiệm từ số báo cáo lỗi, việc xử lý WSSecurityPolicy Axis2/Rampart tốt cho cấu hình đơn giản phản ánh trường hợp sử dụng thông thường, dễ thất bại áp dụng cho tổ hợp không thông thường Một vấn đề khác chi phí việc kích hoạt Rampart máy chủ luôn xảy xử lý yêu cầu lẫn xử lý đáp ứng bạn áp dụng WSSecurity cho thông báo (như thảo luận "Chi phí cao (WS-)Security") Về phía máy khách, tình hình chí cịn tồi tệ — việc kích hoạt Rampart máy khách giải phảp tất cả-hay-khơng có gì, bạn sử dụng WS-Security hoạt động bạn phải sống chung với chi phí Rampart hoạt động Cuối cùng, việc xử lý WS-Policy Axis2/Rampart không hỗ trợ lựa chọn sách Các lựa chọn đặc tính việc thiết kế WS-Policy, cho phép dịch vụ khách hàng lựa chọn cấu hình hai hay nhiều cấu hình chấp nhận sử dụng họ truy cập vào dịch vụ Việc thực sách Axis2/Rampart khơng hỗ trợ tính này, thay vào bỏ qua tất thứ trừ lựa chọn Tiến lên Với viết ba trước đó, loạt Java Web services trình bày tất khía cạnh việc xử lý WS-Security WS-SecurityPolicy Axis2/Rampart, bao gồm vấn đề hiệu Trong viết tiếp theo, bạn thấy cách khung công tác dịch vụ Web Java khác hoạt động với WSSecurity WS-SecurityPolicy nào, trước tiên có số khía cạnh khác Axis2 cần xem xét kỹ Một vấn đề quan trọng với nhiều tổ chức hỗ trợ cho Kiến trúc Java cho phiên liên kết XML 2.X (JAXB 2.X - Java Architecture for XML Binding 2.X) JAXB 2.X tiêu chuẩn Java thức để liên kết liệu XML lựa chọn mã nguồn mở mang lại lợi ích riêng chúng, số tổ chức muốn bám chặt tiêu chuẩn Trong viết tiếp theo, bạn thấy cách bạn sử dụng liên kết liệu JAXB 2.X với Axis2 tìm hiểu so sánh với lựa chọn liên kết liệu khác Axis2 hỗ trợ Mục lục  Định nghĩa sách  Cách sử dụng phía máy khách  Cách sử dụng phía máy chủ  Các hạn chế Axis2/Rampart  Tiến lên ... tất hoạt động sử dụng dịch vụ chúng sử dụng hoạt động Không giống việc gài mô đun Rampart cho tất hoạt động, việc thiết lập tên người dùng mật theo cách không gây thiệt hại — giá trị sử dụng. ..đúng cách làm giảm chi phí hiệu cho hoạt động thường sử dụng mà không làm suy yếu việc bảo đảm an ninh hoạt động cần đến Định nghĩa sách Ứng dụng ví dụ sử dụng cho viết ứng dụng sử dụng "Axis2 WS-Security. .. trị /Các dịch vụ có sẵn), mô đun gài vào cho hoạt động định nghĩa dịch vụ liệt kê Nếu bạn chạy mã máy khách theo dõi việc trao đổi thông báo (bằng cách sử dụng công cụ TCPMon, mô tả "Cơ sở WS-Security

Ngày đăng: 07/08/2014, 10:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan