Do WS-security chỉ là một lớp trong nhiều lớp của một giải pháp an toàn web service đầy đủ, nên cần một mô hình an toàn chung lớn hơn để có thể bao phủ tất cả các khía cạnh an toàn khác như đăng ký và không từ chối.
Hình 2.3 - Mô hình an toàn đẩy đủ cho Web service
Trong mô hình này các thành phần quan trọng bao gồm:
• WS-SecureConversation Describes: quản lý và xác nhận thông điệp trao đổi giữa các phần bao gồm: ngữ cảnh an toàn, thiết lập, dẫn xuất ra các phiên làm việc.
• WS-Authentication Describes: quản lý những dữ liệu cần chứng thực và chính sách chứng thực.
• WS-Policy Describes: quản lý những ràng buộc của những chính sách an toàn ở các điểm trung gian và đầu cuối.
• WS-Trust Describes: khung cho phép những web service an toàn trao đổi , tương tác với nhau.
43
Chương 3. XÂY DỰNG ỨNG DỤNG ĐĂNG KÝ THUẾ
THU NHẬP CÁ NHÂN
3.1. Giới thiệu bài toán:
Bài toán: Mỗi người công dân khi đi làm việc đều có nghĩa vụ phải đóng thuế thu nhập cá nhân cho các tổ chức thuế. Việc đăng ký thuế lấy mã số thuế cá nhân của người lao động do các tổ chức, đơn vị chủ quản tiến hành. Ứng dụng đăng ký thuế hỗ trợ cho các doanh nghiệp, tổ chức đăng ký thuế thu nhập cá nhân một cách đơn giản,nhanh chóng và chính xác. Yêu cầu của hệ thống:
Xác thực người dùng đăng nhập vào hệ thống. Nếu người dùng đăng nhập thành công thì cho phép sử dụng các chức năng của hệ thống theo đúng quyền hạn người dùng. Các thông tin về tài khoản được lưu trong biến session. Khi người dùng thoát ra khỏi hệ thống thì phải xóa hết những thông tin bảo mật như: đăng nhập và mật khẩu.
Có hai loại người dùng: Administrator dành cho các cơ quan thuế và User dành cho các các tổ chức muốn kê khai đăng ký thuế thu nhập cá nhân. Mỗi cơ quan, doanh nghiệp có một mã số thuế riêng, họ được cấp một tài khoản để sử dụng các chức năng của ứng dụng hoặc đăng ký một tài khoản và sau khi được cơ quan thuế xác nhận thì có thể đăng nhập xem thông tin va sử dụng các chức năng.
Sau khi đăng nhập, Administrator có thể xem các thông tin của mình và có thể cập nhật lại thông tin đã cũ, không còn phù hợp. Có chức năng xem các thông tin về các cơ quan thuế trên địa bàn quản lý của mình bao gồm: thông tin của đơn vị đăng ký thuế, các hồ sơ của các nhân viên đã được đăng ký thuế hoặc đang chờ đăng ký thuế của mỗi đơn vị. Cơ quan thuế sẽ xem xét, xác nhận tính chính xác các thông tin nhận được, nếu có sai sót có thể xóa thông tin nhân viên đăng ký khỏi cơ sở dữ liệu và báo cho đơn vị được biết để gửi lại thông tin mới.
User đã được cơ quan thuế xác nhận có thể xem thông tin về đơn vị của mình, bao gồm: thông tin của đơn vị, thông tin của nhân viên đã được đăng ký thuế hoặc đang chờ đăng ký thuế. Nếu nhân viên nào chưa được cơ quan thuế đánh dấu xử lý thì User có quyền cập nhật lại. Gửi các thông tin đăng ký thuế mới cho cơ quan thuế xem xét. Các user chưa được cơ quan thuế xác nhận sẽ không được cung cấp nội dung
44
3.2. Thiết kế hệ thống:
3.2.1.Sơ đồ phân rã chức năng:
Hệ thống ứng dụng thuế cung cấp các chức năng chính sau:
• Chức năng đăng nhập: xác thực người dùng đã được cấp tài khoản và quyền hạn người dùng để sử dụng các thông tin của hệ thống.
• Chức năng thông tin người dùng: hiển thị các thông tin về người dùng và sửa các thông tin.
• Chức năng quản lý: xem thông tin cần quản lý, cập nhật lại thông tin, gửi các thông tin mới
• Chức năng đăng xuất: người dúng thoát khỏi hệ thống, các thông tin của người dùng được xóa khỏi biến session.
Hình 3.1 - Sơ đồ phân rã chức năng
3.2.2.Thiết kế cơ sở dữ liệu:
Hệ thống sẽ sử dụng ứng dụng login control trong Visual Studio 2008, xây dựng trên cơ sở dữ liệu: ASPNETDB gồm các bảng chứa các thông tin đăng nhập của người dùng để thực hiên việc truy cập vào ứng dụng Web.
Ngoài các bảng mặc định trong cơ sở dữ liệu ASPNETDB, bao gồm: Tạo thêm các bảng sau:
45
- Bảng aspnet_info_donvi: lưu các thông tin thực tế của tổ chức đã có tài khoản gồm: mã số thuế của tổ chức, địa chỉ, số điện thoại, tên đơn vị, cơ quan quản lý thuế của đơn vị, ngày đăng ký, tên người dùng dạng int.
Tên trường Kiểu dữ liệu Ràng buộc
UserId uniqueidentifier Khóa ngoài
Mst_Donvi nvarchar(14) Khóa chính
Address_Donvi nvarchar(255) Không rỗng
Phone_Donvi int
Name_Donvi nvarchar(255) Không rỗng
Cqt_Quanly nvarchar(50) Không rỗng
city nvarchar(50) Không rỗng
- Bảng aspnet_info_nv: lưu các thông tin của nhân viên: tên, năm sinh, giới tính, địa chỉ hộ khẩu, địa chỉ cư trú, số chứng minh thư nhân dân, nơi cấp CMT, thời gian cấp CMT. Email, số điện thoại, mã số thuế thu nhập cá nhân, mã số thuế đơn vị trực tiếp.
Tên trường Kiểu dữ liệu Ràng buộc
name nvarchar(256) Không rỗng
brith datetime Không rỗng
gender nvarchar(50) Không rỗng address1 nvarchar(256) Không rỗng
address2 nvarchar(256) Không rỗng
mst_donvi nvarchar(14) Khóa ngoài
cmt bigint Khóa chính
date_cmt datetime Không rỗng
46 email nvarchar(256) phone nvarchar(16) mst_tncn nvarchar(14) check Int Sơ đồ quan hệ các bảng: Hình 3.2 - Sơ đồ quan hệ các bảng 3.2.3.Hoạt động chương trình: 1. Cài đặt hệ thống:
Sử dụng bộ ngôn ngữ lập trình Visual Studio 2008 của Microsoft. Ngôn ngữ lập trình: asp và visual basic
47
2. Hoạt động:
- Quản lý người dùng trực tuyến, tạo người dùng mới và cung cấp cho các đơn vị một tài khoản để truy cập ứng dụng
- Trang chủ ứng dụng:
- Phương thức đăng nhập: LogIn, cho phép nhập các thông tin tài khoản, bao gồm: username và password để đăng nhập vào hệ thống. Phương thức trên sẽ trả về một trang thông báo kết quả đăng nhập. Nếu thông tin đăng nhập đúng và chưa có ai đang đăng nhập trên cùng thiết bị thì sẽ có thông báo trả lại là: “Bạn đã đăng nhập với tên: (Username)”. Nếu thông tin đăng nhập sai hoặc đăng nhập bằng tài khoản khác khi chưa thoát tài khoản cũ thì sẽ có thông báo trả lại là: “Bạn đã nhập sau username hoặc password”
48
- Phương thức đăng xuất: LogOut: dùng để đăng xuất khỏi hệ thống. Nếu đang sử dụng một tài khoản nào đấy thì kết quả của phương thức Logout là thông báo “Bạn đã đăng xuát khỏi hệ thống”. Nếu chưa hiện tại không ở trạng thái đăng nhập thì sẽ trả về một trang thông báo khác.
49
- Phương thức online_hay_offline: để biết trạng thái hiện tại là online hay offline, xem có ai đang đăng nhập hệ thống trên thiết bị này không. Kết quả tương ứng trả về là True hoặc False.
- Phương thức thongtin_nguoidung: cho biết tên tài khoản đang đăng nhập và loại tài khoản là Admintrator hay User.
- Phương thức: thongtin_donvi_dangnhap: cho biết các thông tin về người dùng đang đăng nhập như: tên đơn vị, địa chỉ, điện thoại, mã số thuế, doanh nghiệp, email, cơ quan quản lý.
50
Các phương thức dành cho người dùng có quyền Administrator, đây là loại tài khoản dành cho các cơ quan quản lý thuế, thông tin được quản lý là các thông tin của các đơn vị có nhiệm vụ phải đóng thuế trên địa bàn mà cơ quan thuế này quản lý. Cơ quan thuế sẽ xem danh sách các đơn vị trên địa bàn mình quản lý, nếu đơn vị nào có nhân viên cần đăng ký thuế thì cơ quan thuế sẽ xem thông tin mà đơn vị cung cấp, sau đó xác thực xem thông tin đó đúng hay sai. Sau khi xác thực thông tin là đúng và đủ điều kiện cấp mã số thuế thì cơ quan thuế sẽ cập nhập mã số thuế cho nhân viên đó hoặc nếu thông tin không chính xác thì sẽ xóa nhân viên khỏi danh sách đăng ký thuế thu nhập cá nhân. Nếu các tài khoản không có quyền Administrator sử dụng các phương thức này thì kết quả trả về là một thông báo: “Bạn không có quyền truy cập chức năng này”:
- Phương thức: admin_xem_thongtin_cac_donvi:xem thông tin của các đơn vị thuộc sự quản lý của chủ tài khoản, gồm các thông tin như: mã số thuế đơn vị, tên đơn vi, địa chỉ, điện thoại, mail
- Phương thức: admin_xem_chitiet_nhanvien_cua_mot_donvi: xem danh sách và thông tin các nhân viên của nhân viên thuộc một đơn vị nào đó bằng cách nhập mã
51
số thuế của đơn vị (mst_donvi), thông tin có thể xem bằng phương thức admin_xem_thongtin_cac_donvi. Nếu chỉ muốn xem danh sách các nhân viên chưa đăng ký thuế thì nhập số 0 vào ô mst_tncn.
- Phương thức: admin_tim_nhanvien_theo_cmt: khi cơ quan thuế xem xét một hồ sơ đăng ký mã số thuế nào đó thì sẽ so sánh nó với một số thông tin từ nguồn khác để xác thực xem thông tin đơn vị đăng ký có trùng khớp không. Khi đó để tìm hồ sơ đăng ký đó thì họ sẽ nhập số chứng mình thư trong hồ sơ xác thực vào ô cmt. Nếu trong cơ sở dữ liệu đã có thông tin đăng ký của số chứng mình thư này thì kết quả trả về là thông tin của người có số chứng minh thư trùng khớp, nếu sai thì trả về kết quả lỗi.
- Phương thức: admin_xoa_nhanvien_theo_cmt: xóa thông tin đăng ký nào không khớp với hồ sơ xác thực, chỉ đúng với hồ sơ chưa có mã số thuế cá nhân. Thực hiện bằng cách nhập số chứng minh thư vào ô cmt. Nếu có số chứng minh thư đó trong cơ sớ dữ liệu và chưa cấp mã số thuế cá nhân thì trả về thông bào: “Bạn đã xóa thông
52
tin về số chứng minh thư: (cmt)”. Nếu số chứng minh thư chưa có trong cơ sở dữ liệu hoặc chưa nhập thông tin vào ô cmt hoặc số chứng mình thư nhập sai thì trả về thông báo: “Số chứng minh thư không tồn tại hoặc đã có mã số thuế”.
- Phương thức: admin_cap_masothue:cập nhật mã số thuế cho một nhân viên đăng ký mà chưa có mã số thuế. Bằng cách nhập số chứng minh thư của nhân viên vào ô và nhập mã số thuế vào ô mst_tncn. Cập nhật mã thành công sẽ trả về thông báo: “Bạn đã nhập thành công mã số thuế của nhân viên có số chứng minh thư: (cmt), với mã số thuế là: (mst_tncn)”. Nếu nhân viên này đã có mã số thuế từ trước thì sẽ có thông báo:”Bạn đã đổi mã số thuế thu nhập cá nhân của nhân viên có số chứng minh thư: (cmt). Mã số thuế cũ là: (mst_tncn_cu) và mã số thuế mới là (mst_tncn)”. Nếu mã số thuế này đã tồn tại thì trả về thông báo: “Mã số thuế này đã có trong cơ sở dữ liệu”.
53
Các phương thức sau chỉ dành cho người dùng loại User, tức là các đơn vị hoạt động có nghĩa vụ nộp thuế sẽ đăng ký thuế cho nhân viên. Khi cần xem các thông tin thuế của nhân viên hoặc cập nhật hay xóa lại dữ liệu thuế sai, hoặc thêm một đăng ký mới cho nhân viên. Nếu người dùng không có quyền này khi sử dụng các phương thức sẽ nhận được thông báo “Bạn không có quyền truy cập chức năng này”:
- Phương thức: donvi_xem_danhsach_nhanvien: xem danh sách và thông tin thuế của các nhân viên. Nếu muốn xem các nhân viên chưa có mã số thuế thu nhập cá nhân thì nhập số 0 vào ô mst_tncn. Nếu chỉ xem thông tin nhân viên đã có mã số thuế thu nhập cá nhân thì nhập số 1. Nếu xem tất cả nhân viên thì không cần quan tâm đến ô này.
- Phương thức: donvi_tinhtrang_nhanvien: xem số lượng nhân viên đã có mã số thuế thu nhập cá nhận và chưa có mã số thuế thu nhập cá nhân của đơn vị.
- Phương thức: donvi_capnhat_thongtin_nhanvien: khi xem xét một hồ sơ thuế đang chờ cấp mã số thuế mà có thông tin sai (name, address1, address2, gender, address_cmt, email, phone) thì có thể cập nhật lại thông tin bị sai đó bằng cách nhập:
54
số chứng mình thư của nhân viên cần sửa thông tin vào ô cmt, nhập trường thông tin cần sửa vào ô truong_sua, và nhập thông tin mới cần chèn vào ô noi_dung_moi. Nếu các thông tin chính xác thì trả về thông báo: “Bạn đã cập nhật thành công cho nhân viên có số chứng minh thư: (cmt), trường sửa là: (truong_sua), nội dung mới là: (noi_dung_moi), nội dung cũ là: (noi_dung_cu)”. Nếu bạn nhập thiếu hoặc sai trường nào đó hoặc số chứng minh thư không tồn tại thì chương trình sẽ trả lại kết quả: “Bạn chưa đủ hoặc nhập sai thông tin”. Nếu không muốn cập nhật hoặc nhân viên đó đã chuyển đi mà chưa có mã só thuế thì có thể sử dụng phương thức khác để xóa thông tin nhân viên khỏi cơ sở dữ liệu. Sau đó có thể thêm thông tin mới.
- Phương thức: donvi_xoa_thongtin_nhanvien: dùng để xóa thông tin của một nhân viên chưa có mã số thuế cá nhân. Bằng cách nhập số chứng minh thư của nhân viên đó vào ô cmt. Nếu thông tin nhập đúng thì kết quả trả về là: “Bạn đã xóa thành công nhân viên có số chứng minh thư: (cmt)”. Nếu không có nhân viên nào có số chứng minh thư mà chưa có mã số thuế hoặc không tồn tại trong cơ sở dữ liệu của đơn vị bàn thì trả về thông báo“Bạn đã nhập sai thông tin”.
55
- Phương thức: donvi_chuyen_nhanvien: dùng khi một nhân viên nào đó chuyển đi khỏi đơn vị đó thì sẽ gửi thông tin cập nhật lại trạng thái.
- Phương thức: donvi_dangky_nhanvien: dùng để thêm thông tin về một nhân viên chưa có mã số thuế thu nhập cá nhân vào cơ sở dữ liệu. Nếu các thông tin nhập vào các ô nhập liệu đúng quy cách thì kết quả tra về là thông báo ”Bạn đã thêm thành công thông tin đăng ký thuế của nhân viên có số chứng minh thư: (cmt)”. Nếu số chứng mình thư đã có trong cơ sở dữ liệu thì sẽ có thông báo: “Số chứng minh thư (cmt) đã có trong cơ sở dữ liệu” .Nếu thông tin nhập vào chưa đúng thì sẽ có thông báo: “Bạn chưa đủ hoặc đúng thông tin”
56
TÀI LIỆU THAM KHẢO
[1]Web Services Architecture “http://www.w3.org/TR/ws-arch/” [2]Phạm Quang Hòa - Bảo mật trong ASP.NET Web Service
“http://www.hoapq.wordpress.com/2007/03/13/b%E1%BA%A3o-m%E1%BA%ADt-
trong-aspnet-web-service/”
[3]XÂY DỰNG SEARCH ENGINE TÍCH HỢP WEB SERVICE CỦA GOOGLE
http://forums.2it.in/threads/13836-Web-Services-Ph%E1%BA%A7n-4-
%E1%BB%A8ng-d%E1%BB%A5ng-x%C3%A2y-d%E1%BB%B1ng-search-engine- t%C3%ADch-h%E1%BB%A3p-web-service-c%E1%BB%A7a-Google
[4]Dịch vụ Web (Web service) http://www.phpvn.org/index.php?topic=301.0
[5]Tim hieu ngon ngu XML - Share-Book.com
[6]Prentice Hall PTR. web services Platform Architecture: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More, Chapter 8. Universal Description, Discovery, and Integration (UDDI).
[7]Wikipedia. Web service. “http://en.wikipedia.org/wiki/Web_service” [8]W3School. “http://www.w3schools.com”.