Tải bản đầy đủ (.pdf) (30 trang)

Xây dựng các dịch vụ web với an ninh ở mức chuyển tải bằng cách sử dụng Rational Application Developer V7, Phần 2 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (991.93 KB, 30 trang )

Xây dựng các dịch vụ web với an ninh ở mức chuyển tải bằng cách sử dụng
Rational Application Developer V7, Phần 2 : Định cấu hình cho xác thực cơ
sở HTTP
Henry Cui, Kỹ sư phần mềm, IBM
Tóm tắt: Phần 1 của loạt bài hướng dẫn này đã hướng dẫn bạn từng bước xây
dựng một dịch vụ web cho một ứng dụng máy tính cầm tay đơn giản. Bạn đã tạo
ra các dịch vụ web và kiểm thử hai loại hình trình khách dịch vụ Web khác nhau trình khách Java ™ Platform, Enterprise Edition (Java EE) và trình khách Java độc
lập - và xử lý các trường hợp ngoại lệ do người dùng định nghĩa trong các dịch vụ
web. Bài thứ hai này của loạt bài gồm ba phần chỉ cho bạn cách định cấu hình xác
thực cơ sở HTTP cho các dịch vụ web của bạn và trình khách dịch vụ web và giám
sát các thông tin xác thực cơ sở HTTP bằng cách sử dụng trình giám sát TCP/IP.
Trước khi bạn bắt đầu
Về loạt bài hướng dẫn này
Nếu bạn đã qua phần 1 của loạt bài hướng dẫn này, thì bạn đã:


Thiết lập các máy chủ.



Tạo Java bean.



Tạo các dịch vụ web.



Tạo trình khách Java EE của dịch vụ web.




Tạo trình khách Java độc lập của dịch vụ Web.


Phần 2 của hướng dẫn này được xây dựng dựa trên Phần 1, chỉ cho các bạn cách
làm thế nào để định cấu hình cho xác thực cơ sở HTTP. Tại đây bạn sẽ:


Bật cho phép bảo đảm an ninh ca WebSpheređ Application Server ca
IBMđ.

ã

nh cu hỡnh vic xỏc thc cơ sở HTTP cho các bên cung cấp dịch vụ web.



Định cấu hình việc xác thực cơ sở HTTP cho trình khách dịch vụ web bằng
cách sử dụng một bộ miêu tả triển khai.



Định cấu hình việc xác thực cơ sở HTTP cho trình khách dịch vụ web bằng
lập trình.



Giám sát các thông tin về xác thực cơ sở của HTTP bằng cách sử dụng
trình giám sát TCP/IP.


Phần 3 của hướng dẫn này cho bạn biết cách định cấu hình cho HTTPS. Trong
phần 3, bạn sẽ:


Tạo kho lưu trữ các khóa, kho ủy thác, và chứng thực bên cung cấp dịch vụ
web.



Tạo cấu hình của giao thức Secure Sockets Layer (SSL) cho bên cung cấp
dịch vụ web.



Tạo một móc xích chuyển tải các thùng chứa Web mới để sử dụng cấu hình
SSL mới cho bên cung cấp dịch vụ web.



Định cấu hình cho HTTPS cho trình khách dịch vụ Web.



Kiểm thử dịch vụ Web qua HTTPS từ trình khách Java EE.




Kiểm thử dịch vụ Web qua HTTPS từ trình khách Java độc lập.


Mục tiêu
Tìm hiểu cách định cấu hình cho xác thực cơ sở HTTP cho dịch vụ web và trình
khách dịch web và giám sát các thơng tin xác thực cơ sở HTTP bằng cách sử dụng
trình giám sát TCP/IP.
Một số yêu cầu
Bạn cần phải có một số hiểu biết cơ sở về công nghệ Java và các dịch vụ web để
làm theo hướng dẫn này.
Yêu cầu về hệ thống
Bạn cần phải cài đặt sản phẩm Rational Application Developer V7 của IBM, bản
mới nhất. (Bạn có thể tải về bản Rational Application Developer dùng thử tại trang
developerWorks nếu bạn chưa mua sản phẩm này.) Nếu bạn không chắc rằng bản
Rational Application Developer V7 của mình là bản mới nhất, bạn có thể vào trình
quản lý cài đặt IBM (IBM Installation Manager) và chọn mục Update Packages
để xem phần cập nhật mới nếu đã có. Vào thời điểm tơi viết hướng dẫn này, phiên
bản mới nhất của Rational Application Developer là 7.0.0.5. (Lưu ý: Cứ khoảng
ba tháng một lần IBM phát hành một gói vá lỗi. Bạn có thể thấy một phiên bản
mới hơn của Rational Application Developer tại thời điểm cài đặt. Mỗi phiên bản
mới của Rational Application Developer có chứa số lượng lớn các phần đã sửa
chữa. Chúng tôi khuyên bạn nên cài đặt các phiên bản mới nhất để tránh gặp các
vấn đề đã được sửa chữa.)


Kích hoạt bảo đảm an ninh của WebSphere Application Server
Trong các phiên bản trước của WebSphere Application Server, khi một người
dùng bật chế độ bảo đảm an ninh tổng thể, thì cả bảo đảm an ninh về quản trị và
bảo đảm an ninh ứng dụng đều được bật. Từ WebSphere Application Server phiên
bản V6.1 trở đi, khái niệm bảo đảm an ninh tổng thể được chia thành bảo đảm an
ninh về quản trị và bảo đảm an ninh ứng dụng, bạn có thể kích hoạt riêng rẽ từng
chế độ bảo đảm an ninh. Bảo đảm an ninh ứng dụng chỉ có hiệu lực khi bảo đảm
an ninh về quản trị được kích hoạt. Để kích hoạt tính năng xác thực cơ sở HTTP,

thì máy chủ WebSphere Application Server phải chạy khi cả hai loại bảo đảm an
ninh quản trị và bảo đảm an ninh ứng dụng được kích hoạt.
Trong phần này, bạn kích hoạt chế độ bảo đảm an ninh trên máy chủ. Bạn sử dụng
sổ đăng ký người sử dụng của hệ điều hành tại máy cục bộ để xác thực người dùng.
Sau khi bảo đảm an ninh được kích hoạt, bạn cần phải thơng báo các cài đặt quản
trị của bạn từ môi trường phát triển tới máy chủ đang chạy thi hành để bạn có thể
thiết lập một quan hệ tin cậy giữa bàn làm việc (workbench) phát triển và máy chủ.
Bật chế độ bảo đảm an ninh trên máy chủ
Trước tiên, bạn định cấu hình cho máy chủ chạy với chế độ bảo đảm an ninh đã
được kích hoạt:
1. Bạn phải chắc chắn rằng WAS v6.1 for Web services provider (máy chủ
ứng dụng WebSphere v6.1 cho bên cung cấp dịch vụ Web) đã khởi chạy.
2. Tại khung nhìn Servers, nhấn chuột phải vào WAS v6.1 for Web services
provider và chọn Run administrative console (chạy bàn quản trị).
3. Nhấn Log in. Bạn không cần phải nhập ID người dùng, vì mục này khơng
phải kiểm tra.


4. Trong ô bên trái, mở rộng Security > Secure administration, applications,
and infrastructure, như ở hình 1.
Hình 1. Bảo đảm an ninh quản trị, các ứng dụng và cơ sở hạ tầng

5. Nhấn Security Configuration Wizard.
6. Tại trang Specify extent of protection, nhấn chọn Enable application
security sau đó nhấn Next.
7. Tại trang Select user repository chọn Local operating system sau đó nhấn
Next.
8. Tại trang Configure user repository, nhập Primary administrative user
name. Tên người dùng phải có các quyền ưu tiên về quản trị đối với hệ
điều hành tại máy tính của bạn. Nhấn Next.

9. Tại trang Summary nhấn Finish sau đó nhấn Save. Bạn sẽ thấy cả hai, bảo
đảm an ninh quản trị lẫn bảo đảm an ninh ứng dụng đã được kích hoạt.


10. Nhấn Logout để thoát khỏi bàn quản trị.
11. Ngừng hoạt động của máy chủ WebSphere Application Server V6.1 cho
các bên cung cấp dịch vụ web.

Về đầu trang
Định cấu hình bảo đảm an ninh tại bàn làm việc
Bạn cần phải biên tập cấu hình máy chủ để xác định rõ rằng chế độ bảo đảm an
ninh được kích hoạt:
1. Tại khung nhìn Servers, nhấn đúp chuột vào WAS v6.1 for Web services
provider. Trình biên tập cấu hình máy chủ mở ra.
2. Mở rộng phần Security và chọn Security is enabled on this server.
3. Nhập ID của người sử dụng và mật khẩu. ID của người dùng xác định quản
trị viên của bàn điều khiển quản trị của WebSphere. Nó phải giống như ID
mà bạn đã nhập trong hộp thoại Security Configuration Wizard của bàn
điều khiển quản trị của WebSphere. Bạn chọn Automatically trust server
certificate during SSL handshake như ở hình 2.
Hình 2. Chỉ rõ thơng tin về bảo đảm an ninh trong trình biên tập cấu


hình của máy chủ

4. Ghi lưu và đóng trình biên tập cấu hình của máy chủ lại.
5. Khởi chạy máy chủ WebSphere Application Server V6.1 cho bên cung cấp
dịch vụ web.
6. Nhấn chuột phải vào WAS v6.1 for Web service provider và chọn Run
administrative console.

7. Bạn sẽ thấy bàn điều khiển quản trị đã được bảo mật như ở hình 3. Nhập ID
người sử dụng của bạn và mật khẩu để đăng nhập.


Hình 3. Bàn điều khiển quản trị đã được bảo mật


Xác định cấu hình xác thực cơ sở HTTP cho nhà cung cấp dịch vụ web
Việc xác thực cơ sở HTTP sử dụng mơ hình xác thực hiện có của Java EE. Trình
biên tập bộ miêu tả triển khai Web được sử dụng để cấu hình thơng tin về ai là
người có quyền để truy cập vào các dịch vụ web, kiểu phương thức xác thực nào
được sử dụng, và các mẫu URL và các phương thức HTTP nào được bảo vệ. Trình
biên tập bộ miêu tả triển khai ứng dụng được sử dụng để thu thập các vai trò bảo
mật, thêm người sử dụng hoặc các nhóm vào các vai trị đó.
Định cấu hình cho bộ mơ tả triển khai Web
1. Tại khung nhìn Project Explorer, mở rộng dự án web Calculator, sau đó
nhấn đúp chuột vào Deployment Descriptor: Calculator. Bộ mô tả triển
khai Web mở ra.
2. Nhấn vào thẻ Servlets.
3. Nhấn servlet com_ibm_calculator, sau đó kiểm tra phần URL Mappings.
Bạn sẽ thấy servlet com_ibm_Calculator được ánh xạ đến địa chỉ URL
services/Calculator, bạn lưu ý địa chỉ URL này vì bạn bảo vệ nó trong các
bước sau.
4. Nhấn thẻ Pages.
5. Tại phần Login, nhấn danh sách thả xuống Authentication method và
chọn Basic.
6. Nhập HTTP basic authentication tại mục realm name như ở hình 4.


Hình 4. Cấu hình Đăng nhập


7. Phấn phiếu Security.
8. Tại phần Security Roles nhấn Add. Hộp thoại Add Security Role mở ra.
9. Nhập webservicesrole vào mục name và Authenticated Web service user
vào mục description của hộp thoại. Sau đó nhấn Finish.
10. Nhấn vào mục vai trò bảo mật webservicesrole mà bạn vừa xác định. Sau
đó tại mục Add.
11. Nhập WSConstraint làm tên của ràng buộc và nhấn Next.
12. Tại hộp thoại Add Web Resource bạn nhập ws_resource làm tên của tài
nguyên.
13. Nhập Protected Web service resource làm nội dung mô tả. Tại mục HTTP
Methods, bạn nhấn chọn GET và POST.
14. Tại phần Pattern, nhấn Add, và nhập /services/Calculator làm tên như ở
hình 5.
15. Nhấn OK.


Hình 5. Thêm tài nguyên Web

16. Nhấn Finish.
17. Tại phần Authorized Roles nhấn Add.
18. Nhập Valid role vào làm nội dung mơ tả, chọn webservicesrole (xem hình
6), sau đó nhấn Finish.


Hình 6. Thêm ràng buộc về cấp quyền

19. Ghi lưu và đóng bộ mơ tả triển khai Web.

Về đầu trang

Định cấu hình cho bộ mơ tả triển khai ứng dụng
1. Tại khung nhìn Package Explorer, mở rộng dự án ứng dụng doanh nghiệp
CalculatorEAR, và nhấn đúp chuột vào mục Deployment Descriptor:
CalculatorEAR. Trình biên tập bộ mơ tả triển khai ứng dụng mở ra.
2. Nhấn phiếu Security sau đó nhấn Gather. Thao tác này thu thập tất cả các
vai trò bảo đảm an ninh được định nghĩa trong tất cả các mơ-đun. Bạn sẽ
thấy vai trị webservicesrole đã được bổ sung.
3. Bây giờ bạn nhấn mục webservicesrole, mà bạn vừa thu thập được. Sau đó
tại mục WebSphere Bindings, bạn chọn Users/Groups.
4. Tại phần Users, bạn nhấn Add.


5. Tại hộp thoại Users, bạn nhập một tên người dùng hợp lệ. Vì máy chủ
WebSphere Application Server được cấu hình để sử dụng sổ đăng ký người
sử dụng của hệ điều hành tại máy cục bộ, bạn phải nhập một tài khoản
người dùng hợp lệ có thể được hệ điều hành của bạn xác thực. Để đơn giản,
bạn có thể chỉ cần sử dụng tên người quản trị chính mà bạn đã sử dụng
trong thủ thuật định cấu hình bảo đảm an ninh vì rằng tên người sử dụng
này là có giá trị. Trình biên tập bộ mơ tả triển khai ứng dụng của bạn phải
trơng giống như hình 7.
6. Ghi lưu và đóng trình biên tập lại.
Hình 7. Trình biên tập bộ mơ tả triển khai ứng dụng

Về đầu trang
Kiểm thử dịch vụ web với xác thực cơ sở HTTP đã được bật


Vì dịch vụ Web được bật chế độ xác thực cơ sở HTTP, nên chỉ có người sử dụng
được xác thực mới có thể truy cập các dịch vụ web của bạn. Bạn đã khơng định
cấu hình trình khách dịch vụ Web phía với các ủy quyền cần thiết, do đó bạn hẳn

sẽ nhận được một thơng báo lỗi khơng có quyền nếu bạn cố gắng gọi thực hiện các
hoạt động trong dịch vụ web. Chúng ta hãy kiểm thử các trình khách JavaServer
Pages (JSP) để xem xác thực cơ sở HTTP có hiệu lực hay khơng.
1. Bạn đảm bảo rằng WAS v6.1 for Web services provider (máy chủ ứng
dụng WebSphere cho bên cung cấp dịch vụ Web) đã được khởi động.
2. Bạn đảm bảo rằng máy chủ WAS v6.1 for Web services consumer (máy
chủ ứng dụng WebSphere cho bên tiêu dùng dịch vụ Web) đã được khởi
động.
3. Tại khung nhìn Project Explorer, mở rộng CalculatorWebClient,
WebContent và sampleCalculatorProxy. Nhấn chuột phải vào
TestClient.jsp > Run As > Run on server.
4. Tại hộp thoại Define new server, chọn mục WAS v6.1 for Web services
consumer, và nhấn chọn Set server as project default (do not ask again),
như tại hình 8.
5. Nhấn Finish. Trình khách JSP mẫu xuất hiện


Hình 8. Xác định một máy chủ mới

6. Nhấn phương thức add(int,int) và nhập các giá trị để kiểm tra. Kết quả sẽ
hiển thị ngoại lệ: ( 401 ) Unauthorized.
7. Hãy xem bàn điều khiển của máy chủ WebSphere Application Server. Bạn
sẽ thấy lỗi như trong liệt kê 1.

Liệt kê 1. Lỗi không được cấp phép

WebServicesFault


faultCode: HTTP

faultString: ( 401 ) Unauthorized
faultActor: http://localhost:9080
faultDetail:
null: WSWS3192E: Error: return code:
( 401 ) Unauthorized
.

( 401 ) Unauthorized

Xin chúc mừng! Dịch vụ Web đã được bật chế độ xác thực cơ sở HTTP và chỉ
người sử dụng được phép mới có thể truy cập các dịch vụ web.
Xác định cấu hình xác thực cơ sở HTTP cho trình khách dịch vụ Web bằng cách
sử dụng bộ mơ tả triển khai
Bạn có thể định cấu hình xác thực cơ sở HTTP hoặc bằng cách sử dụng trình biên
tập bộ mơ tả triển khai hoặc thiết lập nó bằng mã lệnh trong chương trình. Trong
phần này, bạn định cấu hình xác thực cơ sở HTTP bằng cách sử dụng trình biên
tập bộ mơ tả triển khai Web.


1. Tại khung nhìn Package Explorer, mở rộng dự án web
CalculatorWebClient, và nhấn đúp chuột vào Deployment Descriptor:
CalculatorWebClient. Bộ mô tả triển khai Web mở ra.
2. Nhấn phiếu WS Binding Tại phần Port Qualified Name Binding Details,
tìm đến mục xác thực cơ sở HTTP. Nhập ID người sử dụng hợp lệ và mật
khẩu, như tại hình 9.
Hình 9. Định rõ xác thực cơ sở HTTP

3. Ghi lưu bộ mô tả triển khai.
4. Tại khung nhìn Project Explorer, mở rộng CalculatorWebClient,
WebContent và sampleCalculatorProxy. Sau đó, nhấn chuột phải vào

TestClient.jsp và chọn Run As > Run on server.


5. Thử nghiệm trình khách JSP mẫu. Lần này bạn sẽ có thể sử dụng thành
cơng các dịch vụ web.


Xác định cấu hình xác thực cơ sở HTTP cho trình khách dịch vụ web bằng chương
trình
Bạn cũng có thể định cấu hình xác thực cơ sở HTTP cho trình khách dịch vụ web
bằng mã lệnh trong chương trình.
Nếu bạn định cấu hình xác thực cơ sở HTTP bằng cả hai cách: sử dụng bộ mô tả
triển khai và bằng mã lệnh trong chương trình, thì các giá trị được thiết lập theo
chương trình sẽ có mức ưu tiên cao hơn so với các giá trị được định nghĩa tại phần
kết buộc của bộ mô tả triển khai.
1. Bạn hủy bỏ các thông tin xác thực cơ sở HTTP mà bạn thiết lập ở phiếu
WS Binding của bộ mô tả triển khai Web và ghi lưu nó.
2. Tại khung nhìn Project Explorer, mở rộng CalculatorWebClient, Java
Resources: src và com.ibm. Sau đó, mở tệp CalculatorProxy.java.
3. Thêm câu lệnh nhập khẩu này ở phía trên cùng của tệp
CalculatorProxy.java: :
import javax.xml.rpc.Stub;
4. Xác định vị trí các dịng lệnh trong tệp CalculatorProxy.java như tại liệt kê
2.
Liệt kê 2. Mã lệnh cần được thay đổi

if (_useJNDI) {


try {

javax.naming.InitialContext ctx = new
javax.naming.InitialContext();
__calculator = ((com.ibm.CalculatorService)ctx.

lookup("java:comp/env/service/CalculatorService")).getCalculator();
}

5.
6. Thực hiện các thay đổi như được tô đậm trong liệt kê 3.
Liệt kê 3. Thiết lập các thông tin xác thực cơ sở bằng mã lệnh trong
chương trình

if (_useJNDI) {
try {
javax.naming.InitialContext ctx = new
javax.naming.InitialContext();
__calculator = ((com.ibm.CalculatorService)ctx.


lookup("java:comp/env/service/CalculatorService")).getCalculator();
((javax.xml.rpc.Stub)__calculator).

_setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY,
"xxxxxxxx");
((javax.xml.rpc.Stub)__calculator).

_setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY,
"xxxxxxxx");
}


Lưu ý: Bạn cần phải thay thế các chữ "xxxxxxxx" bằng tên người dùng và
mật khẩu của riêng bạn.
7. Ghi lưu tệp tin này.
8. Thử nghiệm trình khách JSP mẫu một lần nữa. Lần này bạn sẽ có thể sử
dụng thành cơng các dịch vụ web.
9. Đối với loại hình Java client đứng độc lập, bạn có thể sao chép và dán mã
từ liệt kê 4 vào tệp TestCalculator.java của bạn trong dự án
CalculatorJavaClient. Dòng lệnh mới được thêm sẽ được tô sáng. Lưu ý:
Bạn cần phải thay các chữ "xxxxxxxx" bằng tên người dùng và mật khẩu
của riêng bạn.


10. Ghi lưu tập tin này. Kiểm thử tệp TestCalculator.java để chắc chắn rằng nó
làm việc.
Liệt kê 4. Tệp TestCalculator.java

package com.ibm;

import java.rmi.RemoteException;

public class TestCalculator {
public static void main(String[] args) {
try {
CalculatorProxy proxy = new
CalculatorProxy();
Calculator calculator =
proxy.getCalculator();
((javax.xml.rpc.Stub)calculator).

_setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY,



"xxxxxxxx");
((javax.xml.rpc.Stub)calculator).

_setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY,
"xxxxxxxx");
System.out.println("2 + 2 = " +
proxy.add(2, 2));
System.out.println("2 - 2 = " +
proxy.subtract(2, 2));
System.out.println("4 * 2 = " +
proxy.multiply(4, 2));
System.out.println("4 / 2 = " +
proxy.divide(4, 2));
System.out.print("4 / 0 = ");
System.out.print(proxy.divide(4, 0));
} catch (DivideByZeroException e) {
System.out.println("Error: can't divide
by zero!");
} catch (RemoteException e) {
e.printStackTrace();


}
}
}


Giám sát thông tin xác thực cơ sở HTTP bằng cách sử dụng trình giám sát TCP/IP

Bạn có thể giám sát tiêu đề của HTTP và lưu lượng SOAP của dịch vụ web bằng
cách sử dụng trình giám sát TCP/IP. Để thiết lập trình giám sát TCP/IP, bạn cần:
1. Chọn Window > Preferences > Run/Debug > TCP/IP Monitor, sau đó
nhấn Add. Hộp thoại New Monitor mở ra.
2. Tại trường Local monitoring port, bạn nhập một số hiệu cổng duy nhất trên
máy tính của bạn, mà chưa tiến trình nào sử dụng cổng này (ví dụ: 9089).
3. Tại trường Host name, bạn nhập localhost.
4. Đối với trường Port, bạn nhập số hiệu cổng của máy chủ WebSphere
Application Server V6.1 cho các nhà cung cấp dịch vụ web. Đó là số 9080
(xem hình 10).
Hình 10. Thiết lập trình giám sát TCP/IP


×