Bảo mật ASP.NET
Bo mt vnch đề cc k phc tp và bo mt trong ASP.NET cũng
không phi ngoi l. Các lp trình vn .NET chc hn cũng đã quen
thuc vi những khó khăn gặp phi khi tìm kiếm tài liu tiếng Vit trong
lĩnh vực này. Hôm nay, Qun Tr Mng xin gii thiệu nôi dung chương 9,
chương về Bo mt ASP.NET trong cun “ASP.NET in a Nutshell” ca
hai tác gi Andrew DuthieMatthew MacDonald, nhà xut bn
O’Reilly.
Trong chương này, chúng ta sẽ đề cập đến một số phương thức giúp đảm bảo
an toàn cho các ứng dụng ASP.NET. Để nhấn mạnh vào nội dung trọng tâm
của chương, chúng ta sẽ không bàn về bảo mật mạng, bảo mật máy chủ và
bảo mật cơ sở hạ tầng ASP.NET. Nói như thế không có nghĩa là các chủ đề
đó không quan trọng. Ngược lại, nếu không cấu hình hỗ trợ bảo mật phù hợp
cho máy chủ và cơ sở hạ tầng mạng, những gì cố gắng thực hiện để đảm bảo
an toàn cho ứng dụng ASP.NET thông qua các công cụ .NET Framework
cung cấp sẽ trở nên vô ích. Tuy nhiên, nằm trong phạm vi giới hạn của một
chương nên chúng ta chỉ đi sâu vào vn đề bảo mật các chương trình ứng
dụng ASP.NET.
Sự quan trọng của bảo mật không lời nào nói hết. Nếu không đầu tư thời gian
cũng như tài nguyên thích đáng cho nhiệm vụ này có thể dẫn tới những kết
quả không mong muốn như thất thoát dữ liệu, sai hỏng trong thực thi ứng
dụng hoặc ứng dụng bị chiếm quyền điều khiển và giảm doanh thu lợi nhuận
của doanh nghiệp, làm cho doanh nghip bị mất uy tín với khách hàng. Xem
xét vấn đề bảo mật ngay từ khi bắt đầu xây dựng ứng dụng cũng điều hết
sức quan trọng.
Đảm bảo an toàn trong truy cập ứng dụng hay truy cập tài nguyên thuộc ứng
dụng tập trung vào hai quá trình: thm định (authentication) cấp phép
(authorization). Chúng ta squan tâm tới ba phương thức thẩm định mà b
thực thi ASP.NET cung cấp: Windows, FormPassport. Còn với cấp phép,
chúng ta sthảo luận chủ yếu về hai cơ chế: s dụng đường dẫn URL và s
dụng danh sách điều khiển truy cập ACL.
9.1. Các phương thức thẩm định
Thẩm định (authentication) là quá trình nhận dạng người hay chương trình
đưa ra yêu cầu. Nó không gán quyền truy cập tài nguyên (là chức năng của cơ
chế cấp phép) mà kim tra định danh đã biết để đưa ra quyết định xem liệu có
chấp nhận yêu cu này hay không. Nói một cách đơn giản, thẩm định trả lời
cho câu hỏi: “Bạn là ai?”.
Trong ng dụng ASP cổ điển, có hai phương thức thẩm định chính: một là
dựa trên IIS đthẩm định người dùng theo tài khoản Windows, sau đó sử
dụng các danh sách điu khiển truy cập (ACL) NT để hoàn tt quá trình thẩm
định; haiđưa ra kiểu thẩm định riêng, so sánh để khớp với thông tin thẩm
định người dùng lưu trữ trên máy ch (có thể nằm trong Microsoft Active
Directory). Mi phương thức đều có những điểm hạn chế riêng. Mô hình an
toàn nhất của thẩm định Windows, Intergrated Security, đòi hỏi tất cả người
dùng phi sử dụng Internet Explorer và không làm vic với quá nhiu proxy
server. Còn phương thức thẩm định riêng đòi hi phải tự xây dựng và kiểm
tra một lượng lớn công việc.
ASP.NET cung cấp ba cơ chế thẩm định:
Thẩm định Windows
Cung cấp tính năng tương tnhư thẩm định IIS trong ASP cổ điển, tuy nhiên
cũng có một số điểm khác nhau quan trọng. Thẩm định Windows làm việc
cùng với thẩm định tích hợp sẵn trong IIS dùng định danh do thẩm đnh
IIS cung cp để thực hin quá trình thẩm định.
Thẩm định Forms
Chủ yếu được dùng cho cơ chế thẩm định riêng. Thm định Form hỗ trợ
trang đăng nhập chung, cung cấp nhiều tuỳ chọn về lưu trữ thông tin thẩm
định, từ cơ sd liu với định dạng XML, file cấu hình và mt số phương
thức trợ giúp để quản lý các hoạt động thẩm định. Cơ chế thẩm định này hầu
hết được dùng cho các trường hợp liên quan đến Internet.
Thẩm định Passport
Cho phép các nhà phát triển ASP.NET sử dụng kỹ thut tiên tiến trong giải
pháp đăng nhập đơn Passport của Microsoft.
Cơ chế thẩm định ASP.NET thường được cấu hình ở mức máy, dùng file
machine.config hoặc mức ứng dụng, dùng file web.config. Chúng ta có th
cấu hìnhc thiết lập thẩm định sử dụng phần tử <authentication> cùng vi
các thuộc tính và phần tử con ca nó.
Các thiết lập thẩm định không được phép cấu hình bên dưới mức ứng dụng.
Tức là nếu muốn áp dụng quy chế thẩm định cho thư một mục con của một
ứng dụng, chúng ta cần phải cấu hình nó như một ứng dụng trong IIS.c
thiết lập cấp phép (authorization) không gặp phải hạn chế này.