Tiêu chuẩn Web Services Policy Framework (WS-Policy)  

Ngày nay, cùng với sự phát triển của Internet, Web Service cũng trở thành một kỹ thuật dùng để liên kết và tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua môi trường Internet...

Giới thiệu

Ngày nay, cùng với sự phát triển của Internet, Web Service cũng trở thành một kỹ thuật dùng để liên kết và tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua môi trường Internet. Ngày càng có nhiều nhà cung cấp dịch vụ muốn đưa các dịch vụ ra công cộng và vấn đề lớn nhất mà các nhà cung cấp đang phải đối mặt chính là bảo mật cho Web Service. Việc đảm bảo an toàn cho Web Service là một vấn đề đặc biệt quan trọng, nhất là đối với những dịch vụ liên quan tài chính, thị trường chứng khoán và thương mại điện tử. Vấn đề bài toán đặt ra là làm thế nào để những thông tin, dữ liệu được trao đổi một cách an toàn mà không bị tấn công. Để tạo sự an toàn thông tin trong ứng dụng cần:

- Phía máy khách: chỉ rõ những thành phần của thông điệp mà phải có chữ ký hay một dấu hiệu chứng thực nào đó. Chỉ rõ một khóa trên hệ thống tập tin mà sẽ ký lên thông điệp và chỉ những máy được cấp quyền mới có quyền sở hữu khóa này. Chỉ rõ những giải thuật sẽ được sử dụng bởi khóa để ký lên thông điệp;

- Phía máy chủ: chỉ rõ những thành phần của thông điệp cần được ký, nếu thông điệp đến không có một chữ ký hợp lệ thì yêu cầu thất bại. Chỉ rõ một khóa để duyệt chữ ký của thông điệp đến xem có hợp lệ hay không. Chỉ rõ giải thuật mà khóa sử dụng để đảm bảo toàn vẹn thông điệp gửi đến. Thông điệp phản hồi phải được ký và cung cấp thông tin chữ ký khi phản hồi.

Web Service Security là một chuẩn an toàn cho SOAP và cả những phần mở rộng của SOAP, nó được dùng khi muốn xây dựng những web service đảm bảo và tin cậy. Web Service Security đảm bảo cho tính an toàn, sự toàn vẹn thông điệp và tính tin cậy của thông điệp. Một số kỹ thuật Web Service Security như là: eXtensible Access Control Markup Language (XACML); Security Assertion Markup Language (SAML); Web Services Policy Framework (WS-Policy); eXentisble Rights Markup Language (XrML); Secure Socket Layer (SSL). Bài viết này sẽ đưa ra cách nhìn tổng quan về tiêu chuẩn kỹ thuật WS-Policy.

Khung chính sách dịch vụ Web (WS-Policy) cung cấp một mô hình mục đích chung và cú pháp tương ứng để mô tả các chính sách của một dịch vụ Web. WS-Policy định nghĩa một bộ các cấu trúc được sử dụng bởi các đặc tả dịch vụ Web (web service) khác để mô tả một loạt các yêu cầu và năng lực dịch vụ. Các đặc tả dịch vụ Web được thiết kế để kết hợp với nhau, nhằm cung cấp một bộ công cụ phong phú cho các dịch vụ Web an toàn, đáng tin cậy. Bản thân WS-Policy không cung cấp giải pháp thương lượng cho các dịch vụ Web. WS-Policy được sử dụng kết hợp với các dịch vụ Web khác và các giao thức ứng dụng cụ thể để phù hợp với nhiều mô hình trao đổi chính sách khác nhau.

Các khung chính sách dịch vụ Web cung cấp một mô hình mở rộng và ngữ nghĩa cho phép các dịch vụ web mô tả chính sách của chúng. Các tiêu chuẩn WS-Policy được hình thành để cung cấp một mô hình chung, phù hợp với tất cả các loại mô hình chính sách cụ thể, từ việc chính sách an ninh, chính sách sử dụng nguồn tài nguyên, đặc điểm chất lượng dịch vụ và quy trình nghiệp vụ. Cốt lõi của mô hình là các khái niệm về sự khẳng định chính sách, xác định hành vi.

Nội dung chính về WS-Policy

Khung chính sách WS-Policy bao gồm ba tiêu chuẩn chính:

  • WS-Policy Assertion: xác định cấu trúc của một chính sách.
  • WS-Policy Attachment: định nghĩa làm thế nào để chính sách liên kết với dịch vụ web, hay bằng cách trực tiếp nhúng nó trong WSDL hoặc gián tiếp liên kết thông qua UDDI. WS-PolicyAttachment cũng xác định làm thế nào để thực hiện liên kết các chính sách cụ thể với tất cả hoặc một phần cổng WSDL khi tiếp cận.
  • WS-Security Policy: xác định một tập các khẳng định chính sách tương ứng với tiêu chuẩn bảo mật thông điệp SOAP. Đó là thông điệp khẳng định tính toàn vẹn, bảo mật. Một chính sách WS-Security tiếp cận thông qua WSDL hoặc UDDI, cho phép người gửi yêu cầu xác định xem WS-Security là tùy chọn hay bắt buộc đối với dịch vụ web bất kỳ. Nếu nó là bắt buộc, người yêu cầu có thể xác định kiểu bảo mật mã hóa mà dịch vụ web cung cấp. Người yêu cầu cũng có thể xác định xem họ cần phải ký tên vào thông điệp hay không để tiến hành đăng nhập. Cuối cùng, yêu cầu xác định có thể mã hoá các thông điệp sử dụng các thuật toán mã hóa.

Thuật ngữ được sử dụng trong WS-Policy

  • Policy - Chính sách: Là tập hợp các lựa chọn chính sách.
  • Policy Alternative - Thay thế chính sách: Là tập hợp các xác nhận chính sách.
  • Policy Assertion - Xác nhận chính sách: Một xác nhận chính sách đại diện cho một yêu cầu, khả năng, hoặc tài sản khác của một hành vi (a behavior).
  • Policy Assertion Type - Loại xác nhận chính sách: Một kiểu xác nhận chính sách đại diện cho một lớp các xác nhận chính sách và một lược đồ cho các ngữ nghĩa của các xác nhận.
  • Policy Assertion Parameter - Tham số xác nhận chính sách: Một tham số xác nhận chính sách đủ điều kiện hành vi được chỉ ra bởi một xác nhận chính sách.
  • Policy Vocabulary - Từ vựng chính sách: Từ vựng chính sách của một chính sách là tập hợp của tất cả các loại xác nhận chính sách được sử dụng trong chính sách.
  • Policy Expression - Biểu thức chính sách: Một biểu thức chính sách là một biểu diễn XML Infoset của một chính sách, hoặc ở dạng thông thường hoặc trong một biểu mẫu nén tương đương.
  • Policy Subject - Chủ thể chính sách: Chủ thể chính sách là một thực thể (ví dụ: điểm liên kết, thông báo, tài nguyên, tương tác) mà một chính sách có thể được liên kết.
  • Policy Scope - Phạm vi chính sách: Phạm vi chính sách là tập hợp các chủ đề chính sách mà chính sách có thể áp dụng.
  • Policy Attachment - Đính kèm chính sách: Đính kèm chính sách là cơ chế để liên kết chính sách với một hoặc nhiều phạm vi chính sách.

Chính sách dịch vụ Web

Các dịch vụ Web đang được sử dụng thành công cho các giải pháp liên thông giữa các hệ thống thống tin của các ngành khác nhau. Một trong những lý do chính để quan tâm và đầu tư vào các dịch vụ Web bởi vì chúng cho phép để phát triển các hệ thống hướng dịch vụ. Các công nghệ dựa trên XML như SOAP, Lược đồ XML và WSDL cung cấp nền tảng được chấp nhận rộng rãi để xây dựng các dịch vụ Web tương thích. Các đặc tả của WS-Policy và WS-PolicyAttachment mở rộng nền tảng này và cung cấp các cơ chế để biểu diễn năng lực của dịch vụ Web. 

Dữ liệu đặc tả dịch vụ là việc biểu diễn các khía cạnh hiển thị của một dịch vụ Web bao gồm rất nhiều các ngôn ngữ máy có thể đọc được thông qua các công cụ. Ví dụ: các công cụ tiêu thụ Dữ liệu đặc tả dịch vụ có thể tự động tạo mã máy khách để gọi dịch vụ. Dữ liệu đặc tả dịch vụ mô tả các phần khác nhau của một dịch vụ Web nên các công cụ hỗ trợ cũng được sử dụng ở các mức khác nhau.

Đầu tiên, dữ liệu đặc tả dịch vụ có thể mô tả định dạng của các tải trọng mà một dịch vụ Web gửi và nhận. Các công cụ có thể sử dụng dữ liệu đặc tả này để tự động tạo và xác thực dữ liệu được gửi đến và đi từ một dịch vụ Web. Ngôn ngữ lược đồ XML thường được sử dụng để mô tả định dạng trao đổi thông điệp trong cấu trúc thông điệp SOAP, tức là đại diện cho các khối con SOAP Body và khối tiêu đề SOAP.

Thứ hai, dữ liệu đặc tả dịch vụ có thể mô tả dịch vụ Web trao đổi thư bằng cách nào và ở đâu, tức là cách thể hiện định dạng thông điệp cụ thể, tiêu đề được sử dụng, giao thức truyền, mẫu trao đổi thư và danh sách điểm liên kết có sẵn. Ngôn ngữ mô tả dịch vụ web hiện là ngôn ngữ phổ biến nhất để mô tả dịch vụ Web trao đổi thông điệp bằng cách nào và ở đâu. WSDL có các điểm mở rộng có thể được sử dụng để mở rộng trên dữ liệu đặc tả cho một dịch vụ Web.

Thứ ba, dữ liệu đặc tả dịch vụ có thể mô tả các khả năng và yêu cầu của một dịch vụ Web, tức là một thông điệp phải được bảo đảm như thế nào, cho dù tin nhắn có được phân phối một cách đáng tin cậy hay không. Dữ liệu đặc tả về khả năng và yêu cầu của dịch vụ Web cho phép các công cụ tạo các mô-đun mã để thực hiện các hành vi này. Công cụ có thể sử dụng dữ liệu đặc tả này để kiểm tra tính tương thích của người yêu cầu và nhà cung cấp. Chính sách dịch vụ Web có thể được sử dụng để thể hiện các khả năng và yêu cầu của một dịch vụ Web.

Chính sách dịch vụ Web là một ngôn ngữ có thể đọc được bằng máy để biểu diễn các khả năng và yêu cầu của một dịch vụ Web. Chúng được gọi là 'chính sách'. Chính sách dịch vụ Web cung cấp các cơ chế để thể hiện sự kết hợp nhất quán giữa các khả năng và yêu cầu. Ngoài ra, chính sách dịch vụ Web còn xác định tính tương thích của các chính sách, tên và chính sách tham chiếu và liên kết các chính sách với cấu trúc siêu dữ liệu dịch vụ web như dịch vụ, điểm cuối và hoạt động. Chính sách dịch vụ web là một ngôn ngữ đơn giản có bốn phần tử:  Policy, All, ExactlyOne and PolicyReference wsp:Optional

Biểu thức chính sách cơ bản

Lược đồ dưới đây cho đưa ra biểu thức chính sách như sau:

<wsp:Policy … >
  <wsp:ExactlyOne>
    ( <wsp:All> ( <Assertion …> … </Assertion> )* </wsp:All> )*
  </wsp:ExactlyOne>
</wsp:Policy>

            Phần sau đây mô tả các mục thông tin phần tử được định nghĩa trong lược đồ ở trên:

/wsp:Policy - Một biểu thức chính sách

/wsp:Policy/wsp:ExactlyOne - Một tập hợp các lựa chọn chính sách. Nếu không có mục Thông tin phần tử trong thuộc tính [tập con] thì không có lựa chọn chính sách nào được chấp nhận, nghĩa là không có hành vi nào được chấp nhận.

/wsp:Policy/wsp:ExactlyOne/wsp:All - Một lựa chọn chính sách là một bộ sưu tập các xác nhận chính sách. Nếu không có mục Thông tin phần tử trong thuộc tính [tập con], thì đây là tùy chọn chính sách được chấp nhận “trống”, nghĩa là không có hành vi nào được chỉ định.

/wsp:Policy/wsp:ExactlyOne/wsp:All/* - Biểu diễn XML Infoset của một xác nhận chính sách. Nếu một xác nhận trong biểu mẫu chính sách bình thường chứa một biểu thức chính sách lồng ghép, biểu thức chính sách lồng ghép phải chứa nhiều nhất một thay thế chính sách. Để đơn giản hóa việc xử lý và cải thiện khả năng tương tác, biểu mẫu chính sách bình thường được sử dụng trong thực tế.

Nhận dạng chính sách

Một biểu thức chính sách có thể được liên kết với một URI. Lược đồ cho các thuộc tính liên kết một URI như sau:

       <wsp:Policy ( Name="xs:anyURI" )?

( wsu:Id="xs:ID" )?

… >

</wsp:Policy>

Phần sau đây mô tả các mục thông tin thuộc tính được liệt kê và được định nghĩa trong lược đồ ở trên:

/wsp:Policy/@Name - Danh tính của biểu thức chính sách dưới dạng URI tuyệt đối. URI này được sử dụng để chỉ một chính sách từ các tài liệu XML khác bằng cách sử dụng cơ chế đính kèm chính sách như các cơ chế được định nghĩa trong [WS-PolicyAttachment].

/wsp:Policy/@wsu:Id - Danh tính của biểu thức chính sách như một ID trong tài liệu XML kèm theo. Để tham khảo biểu thức chính sách này, tham chiếu URI được hình thành bằng cách sử dụng [WS-Security].

Các biểu thức chính sách cơ bản được sử dụng thường xuyên

1. Biểu thức chính sách yêu cầu sử dụng địa chỉ:

<Policy>
  <wsap:UsingAddressing />
</Policy>

Biểu thức chính sách trong ví dụ trên bao gồm phần tử chính Policy và phần tử con wsap: UsingAddressing. Các phần tử con của phần tử Policy là các xác nhận chính sách. Các yếu tố wsap: UsingAddressing là một xác nhận chính sách. (Tiền tố wsap được sử dụng ở đây để biểu thị Địa chỉ Dịch vụ Web - Không gian tên XML ràng buộc WSDL). Xác nhận này xác định việc sử dụng các tiêu đề thông tin Địa chỉ Dịch vụ Web. Một khách hàng nhận biết chính sách có thể nhận ra xác nhận chính sách này, tham gia tự động giải quyết và sử dụng các tiêu đề như wsa: To và wsa: Action trong SOAP Envelopes.

2. Biểu thức chính sách bảo mật và địa chỉ

<Policy>
  <wsap:UsingAddressing />
  <sp:TransportBinding>...</sp:TransportBinding>
</Policy>

Phần tử sp: TransportBinding là xác nhận chính sách. (Tiền tố sp: được sử dụng ở đây để biểu thị Không gian tên XML của Chính sách bảo mật dịch vụ web.) Xác nhận này thể hiện bảo mật mức truyền vận như HTTPS được sử dụng để bảo vệ thông điệp. Khách hàng nhận biết chính sách có thể nhận ra xác nhận chính sách này, tham gia bảo mật mức vận tải để bảo vệ thông điệp và bao gồm dấu thời gian bảo mật trong giao thức SOAP.

Ứng dụng

WS-Policy định nghĩa các điều kiện theo một yêu cầu có thể đáp ứng, tương ứng, khẳng định chính sách của các web service đó, giải pháp thay thế chính sách và cuối cùng là toàn bộ các chính sách. Một sự khẳng định chính sách được hỗ trợ bằng cách yêu cầu khi và chỉ khi người yêu cầu đáp ứng được các yêu cầu tương ứng để khẳng định. Một chính sách được hỗ trợ bằng cách yêu cầu khi và chỉ khi có yêu cầu hỗ trợ ít nhất là một trong những lựa chọn thay thế trong chính sách. Như đã thấy, Web Services Policy là một ngôn ngữ đơn giản có bốn phần tử - Policy, All, ExactlyOne và PolicyReference - và một thuộc tính - wsp: Optional. Trong thực tế, các nhà cung cấp dịch vụ, sử dụng các biểu thức chính sách để thể hiện sự kết hợp các khả năng và các yêu cầu.

WS-Policy được thiết kế để làm việc với Khung cộng tác dịch vụ Web chung, bao gồm các mô tả dịch vụ WSDL [WSDL 1.1] và các đăng ký dịch vụ UDDI [UDDI API 2.0, Cấu trúc dữ liệu UDDI 2.0, UDDI 3.0].

Trong Thông tư số 39/2017/TT-BTTTT ngày 15/12/2017 của Bộ trưởng Bộ Thông tin và Truyền thông Công bố Danh mục tiêu chuẩn kỹ thuật về ứng dụng công nghệ thông tin trong cơ quan nhà nước quy định Khuyến nghị áp dụng tiêu chuẩn Web Services Policy v1.2, thuộc mục 1.16 Dịch vụ đặc tả Web và được xếp vào nhóm Tiêu chuẩn về kết nối.  

 

Nguyễn Thị Thu Trang

Tài liệu tham khảo

[1] S.Bajaj, et al,  Web Services Policy Framework (WS-Policy), Mark 2006.

[2] Daniel Roth, Microsoft Corporation, Understanding Web Service Policy, July 2006.

117 Go top

Ý kiến về Trang thông tin điện tử Cục Tin học hóa?



THÔNG KÊ TRUY CẬP
  • Người trực tuyến Người trực tuyến
    • Khách Khách 48
    • Thành viên Thành viên 0
    • Tổng Tổng 48
    • Tổng lượt truy cập: Tổng lượt truy cập: 10403676