3.1. Giới thiệu về cơ sở dữ liệu trong Cisco Secure ACS
Cisco Secure ACS version 3.2 hỗ trợ xác thực người dùng với nhiều hệ quản trị cơ sở dữ liệu khác nhau bao gồm cả cơ sở dữ liệu của chính nó [3]. Ta có thể cấu hình Cisco Secure ACS để xác thực người dùng với nhiều hơn một loại cơ sở dữ liệu. Đặc tính mềm dẻo này cho phép ta có thể sử dụng dữ liệu tài khoản người dùng từ nhiều vị trí khác nhau mà không cần phải import người dùng tường minh từ nhiều cơ sở dữ liệu người dùng bên ngoài vào cơ sở dữ liệu Cisco Secure. Nó cũng cho phép ta áp đặt nhiều cơ sở dữ liệu khác nhau cho nhiều nhóm người dùng khác nhau, phụ thuộc vào yêu cầu bảo mật kết hợp với việc cấp quyền người dùng trên mạng. Ví dụ, cấu hình phổ biến là sử dụng cơ sở dữ liệu người dùng trong Windows để chuẩn hóa người dùng mạng và token server cho nhà quản trị mạng.
Các phần chính sẽ đề cập trong mục này:
1.Cơ sở dữ liệu người dùng của Cisco Secure
2.Cơ sở dữ liệu người dùng từ bên ngoài.
3.Cơ sở dữ liệu người dùng của Windows
4.Cơ sở dữ liệu người dùng thông qua ODBC
3.1.1.Cơ sở dữ liệu người dùng CiscoSecure
Cơ sở dữ liệu người dùng CiscoSecure là cơ sở dữ liệu của chính bên trong Cisco Secure ACS. Nó hỗ trợ xác thực bằng việc sử dụng các phương pháp xác thực ASCII, PAP, CHAP, MS-CHAP, ARAP, LEAP, EAP-MD5, EAP-TLS, PEAP(EAP-GTC), và PEAP(EAP-MSCHAPv2).
Cơ sở dữ liệu người dùng CiscoSecure chủ yếu dùng cho tiến trình cấp quyền. Bất kể người dùng được xác thực bởi cơ sở dữ liệu bên trong hay bên ngoài, Cisco Secure ACS đều cấp quyền cho người dùng dựa trên mối quan hệ trong nhóm và các thiết lập người dùng tìm thấy trong cơ sở dữ liệu CiscoSecure. Vì thế, tất cả người dùng xác thực bởi Cisco Secure ACS, và kể cả xác thực từ bên ngoài đi chăng nữa, thì đều có tài khoản trong cơ sở dữ liệu CiscoSecure.
Cơ sở dữ liệu CiscoSecure lấy thông tin từ nhiều nguồn dữ liệu khác nhau, bao gồm cả việc ánh xạ bộ nhớ thông qua một file lưu theo kiểu băm “VarDB.mdb”, và cả Windows Registry. File “VarsDB.mdb” sử dụng cấu trúc chỉ số và cây, vì thế thời gian tìm kiếm có thể tiến hành tỉ lệ với hàm số logarith, nhanh hơn nhiều so với tìm kiếm tuyến tính. Điều này cho phép cơ sở dữ liệu CiscoSecure xác thực người dùng rất nhanh.
Nếu ta không cấu hình cho Cisco Secure ACS xác thực người dùng với cơ sở dữ liệu bên ngoài, thì Cisco Secure ACS sẽ sử dụng tên truy cập và mật khẩu trong cơ sở dữ liệu CiscoSecure để xác thực.
Có 5 cách để tạo tài khoản người dùng vào cơ sở dữ liệu CiscoSecure trong Cisco Secure ACS (tất nhiên là cả cơ chế đồng bộ hóa hệ quản trị cơ sở dữ liệu quan hệ và chức năng CSUtil.exe hỗ trợ việc nhập tài khoản người dùng từ nguồn dữ liệu bên ngoài):
1.Giao diện Cisco Secure ACS: Giao diện HTML cho phép tạo người dùng thủ công với khả năng chỉ tạo được một người trong một lần. Bất kể cách thức người dùng đó được tạo ra, ta đều có thể xem và cập nhật thông tin người dùng bằng việc sử dụng giao diện HTML.
2.Chính sách với người dùng chưa biết: Điều này cho phép CiscoSecure ACS thêm người dùng một cách tự động khi người dùng đó không lưu trong cơ sở dữ liệu CiscoSecure nhưng lại tìm thấy từ một cơ sở dữ liệu ở bên ngoài. Việc tạo ra một người dùng mới trong cơ sở dữ liệu CiscoSecure chỉ xảy ra khi người dùng thử truy cập vào mạng và xác thực thành công bởi cơ sở dữ liệu bên ngoài.
Nếu ta sử dụng “Chính sách với người dùng chưa biết”, ta cũng có thể cấu hình ánh xạ theo nhóm, cốt để mỗi khi một người dùng được thêm vào cơ sở dữ liệu CiscoSecure nhờ “Chính sách với người dùng chưa biết” được xác thực thì việc gán nhóm người dùng sẽ được tạo ra một cách tự động. Với các loại cơ sở dữ liệu khác, tất cả người dùng được xác thực bởi cơ sở dữ liệu đó thì được gán vào một nhóm người dùng đơn lẻ trong Cisco Secure ACS.
3.Đồng bộ hóa RDBMS: cho phép tạo một lượng lớn người dùng và cấu hình nhiều thiết lập cho tài khoản người dùng. Cách này chỉ nên sử dụng khi nào ta cần nhập người dùng với số lượng lớn; tuy nhiên, việc thiết lập đồng bộ hóa RDBMS trong lần đầu yêu cầu nhiều quyết định quan trọng và thời gian để cài đặt.
4.CSUtil.exe: Chương trình chạy trên chế độ dòng lệnh “CSUtil.exe” đưa ra một cách tạo người dùng rất đơn giản. Khi so sánh cách này với “Đồng bộ hóa RDBMS”, chức năng này là rất giới hạn; tuy nhiên nó vượt trội so với việc nhập người dùng theo cách thủ công đơn giản.
5.Nhân bản cơ sở dữ liệu: cho phép tạo người dùng trên một Cisco Secure ACS thứ hai bằng cách ghi đè lên tất cả tài khoản người dùng hiện có trên Cisco Secure ACS thứ hai bởi tài khoản người dùng từ Cisco Secure thứ nhất. Bất kì tài khoản người dùng nào có trong Cisco Secure ACS thứ hai sẽ đều mất khi tiến hành nhân bản.
3.1.2.Cơ sở dữ liệu người dùng bên ngoài
Ta có thể cấu hình Cisco Secure ACS chuyển tiếp việc xác thực người dùng từ một hoặc nhiều cơ sở dữ liệu bên ngoài [6]. Việc hỗ trợ cho cơ sở dữ liệu người dùng bên ngoài có nghĩa là Cisco Secure ACS không yêu cầu ta phải tạo trùng người dùng bên trong cơ sở dữ liệu CiscoSecure. Trong các tổ chức với các cơ sở dữ liệu người dùng quan trọng đã tồn tại, Cisco Secure ACS có thể ảnh hưởng đến những gì đã tồn tại trong cơ sở dữ liệu mà không cần thêm bất cứ yêu cầu nào. Về phần xác thực, Cisco Secure ACS hỗ trợ xác thực TACACS+ sử dụng cơ sở dữ liệu từ bên ngoài.
Người dùng có thể xác thực bằng cách sử dụng các dạng cơ sở dữ liệu sau:
1.Cơ sở dữ liệu Windows
2.LDAP
3.Novell Netware Directory Services(NDS)
4.ODBC
5.LEAP Proxy RADIUS servers
6.RSA SecurID token servers
7.RADIUS-based token servers, including:
a.ActivCard token servers
b.CRYPTOCard token servers
c.Vasco token servers
d.PassGo token servers
e.SafeWord token servers
f.Generic RADIUS token servers
Để Cisco Secure ACS tiếp xúc với cơ sở dữ liệu bên ngoài, Cisco Secure ACS yêu cầu một API cho nguồn xác thực thứ ba. Cisco Secure ACS giao tiếp với cơ sở dữ liệu bên ngoài bằng cách sử dụng API. Với cơ sở dữ liệu Windows và LDAP, giao tiếp lập trình cho xác thực bên ngoài là cục bộ đối với Cisco Secure ACS. Trong các trường hợp này, không một thành phần nào khác được yêu cầu.
Đối với việc xác thực dùng Novell NDS, Novell Requestor phải được cài đặt trên cùng một Windows server như Cisco Secure ACS.
Đối với việc xác thực dùng ODBC, thêm vào giao diện Windows ODBC, thì thành phần thứ ba là ODBC driver phải cài trên Cisco Secure ACS Windows server.
Để giao tiếp với RSA token server, ta phải cài đặt các thành phần phần mềm được đưa ra bởi RSA.
Với RADIUS-based token server, chẳng hạn như ActivCard, CRYPTOCard, PassGo, SafeWord, và Vasco, giao diện RADIUS chuẩn được xem như là thành phần API thứ ba.
3.1.2.1.Xác thực bằng cách sử dụng cơ sở dữ liệu từ bên ngoài
Việc xác thực người dùng nhờ cơ sở dữ liệu từ bên ngoài yêu cầu cấu hình nhiều hơn cho Cisco Secure ACS để giao tiếp với cơ sở dữ liệu bên ngoài. Thiết lập một hoặc nhiều thủ tục cấu hình cho cơ sở dữ liệu bên ngoài được giới thiệu trong phần này không thật sự chỉ dẫn cho Cisco Secure ACS giao tiếp với bất kì người dùng nào với cơ sở dữ liệu đó.
Sau khi ta cấu hình Cisco Secure ACS giao tiếp với cơ sở dữ liệu người dùng bên ngoài, ta có thể cấu hình Cisco Secure ACS xác thực người dùng theo một trong hai cách sau:
·Gán người dùng xác định: Ta có thể cấu hình Cisco Secure ACS xác thực người dùng với cơ sở dữ liệu bên ngoài. Để làm điều này, người dùng phải tồn tại trong CiscoSecure database và danh sách “Xác thực mật khẩu” của mục “User Setup” phải được thiết lập trong cơ sở dữ liệu bên ngoài mà Cisco Secure ACS sử dụng để xác thực.
·“Chính sách người dùng chưa biết”: ta có thể cấu hình Cisco Secure ACS để xác thực những người muốn đăng nhập hệ thống nhưng lại không tìm thấy trong cơ sở dữ liệu CiscoSecure bằng cách sử dụng cơ sở dữ liệu bên ngoài. Người dùng không cần phải tồn tại trong CiscoSecure database theo cách này.
Ta có thể cấu hình Cisco Secure ACS sử dụng đồng thời theo hai cách trên mà không sợ bị chúng loại trừ lẫn nhau.
3.1.2.2.Tiến trình xác thực sử dụng cơ sở dữ liệu bên ngoài
Khi Cisco Secure ACS thử xác thực người dùng với cơ sở dữ liệu bên ngoài, nó sẽ chuyển tiếp ủy nhiệm người dùng cho cơ sở dữ liệu bên ngoài. Cơ sở dữ liệu bên ngoài có thể xác thực thành công hay thất bại từ Cisco Secure ACS. Dựa trên việc tiếp nhận câu trả lời từ cơ sở dữ liệu bên ngoài, Cisco Secure ACS sẽ yêu cầu AAA client tiếp nhận hoặc từ chối người dùng truy cập vào. Hình dưới đây sẽ cho thấy việc cấu hình AAA với cơ sở dữ liệu bên ngoài.
Việc xác định cách thức giao tiếp với cơ sở dữ liệu bên ngoài thay đổi tùy theo kiểu cơ sở dữ liệu. Với LDAP và Novell NDS, Cisco Secure ACS sử dụng kết nối TCP. Với Windows database, Cisco Secure ACS sử dụng xác thực API của hệ điều hành Windows. Với RSA token server, Cisco Secure ACS đóng vai trò là RSA client để sử dụng giao tiếp RSA riêng.
Cisco Secure ACS version 3.2 hỗ trợ xác thực người dùng với nhiều hệ quản trị cơ sở dữ liệu khác nhau bao gồm cả cơ sở dữ liệu của chính nó [3]. Ta có thể cấu hình Cisco Secure ACS để xác thực người dùng với nhiều hơn một loại cơ sở dữ liệu. Đặc tính mềm dẻo này cho phép ta có thể sử dụng dữ liệu tài khoản người dùng từ nhiều vị trí khác nhau mà không cần phải import người dùng tường minh từ nhiều cơ sở dữ liệu người dùng bên ngoài vào cơ sở dữ liệu Cisco Secure. Nó cũng cho phép ta áp đặt nhiều cơ sở dữ liệu khác nhau cho nhiều nhóm người dùng khác nhau, phụ thuộc vào yêu cầu bảo mật kết hợp với việc cấp quyền người dùng trên mạng. Ví dụ, cấu hình phổ biến là sử dụng cơ sở dữ liệu người dùng trong Windows để chuẩn hóa người dùng mạng và token server cho nhà quản trị mạng.
Các phần chính sẽ đề cập trong mục này:
1.Cơ sở dữ liệu người dùng của Cisco Secure
2.Cơ sở dữ liệu người dùng từ bên ngoài.
3.Cơ sở dữ liệu người dùng của Windows
4.Cơ sở dữ liệu người dùng thông qua ODBC
3.1.1.Cơ sở dữ liệu người dùng CiscoSecure
Cơ sở dữ liệu người dùng CiscoSecure là cơ sở dữ liệu của chính bên trong Cisco Secure ACS. Nó hỗ trợ xác thực bằng việc sử dụng các phương pháp xác thực ASCII, PAP, CHAP, MS-CHAP, ARAP, LEAP, EAP-MD5, EAP-TLS, PEAP(EAP-GTC), và PEAP(EAP-MSCHAPv2).
Cơ sở dữ liệu người dùng CiscoSecure chủ yếu dùng cho tiến trình cấp quyền. Bất kể người dùng được xác thực bởi cơ sở dữ liệu bên trong hay bên ngoài, Cisco Secure ACS đều cấp quyền cho người dùng dựa trên mối quan hệ trong nhóm và các thiết lập người dùng tìm thấy trong cơ sở dữ liệu CiscoSecure. Vì thế, tất cả người dùng xác thực bởi Cisco Secure ACS, và kể cả xác thực từ bên ngoài đi chăng nữa, thì đều có tài khoản trong cơ sở dữ liệu CiscoSecure.
Cơ sở dữ liệu CiscoSecure lấy thông tin từ nhiều nguồn dữ liệu khác nhau, bao gồm cả việc ánh xạ bộ nhớ thông qua một file lưu theo kiểu băm “VarDB.mdb”, và cả Windows Registry. File “VarsDB.mdb” sử dụng cấu trúc chỉ số và cây, vì thế thời gian tìm kiếm có thể tiến hành tỉ lệ với hàm số logarith, nhanh hơn nhiều so với tìm kiếm tuyến tính. Điều này cho phép cơ sở dữ liệu CiscoSecure xác thực người dùng rất nhanh.
Nếu ta không cấu hình cho Cisco Secure ACS xác thực người dùng với cơ sở dữ liệu bên ngoài, thì Cisco Secure ACS sẽ sử dụng tên truy cập và mật khẩu trong cơ sở dữ liệu CiscoSecure để xác thực.
Có 5 cách để tạo tài khoản người dùng vào cơ sở dữ liệu CiscoSecure trong Cisco Secure ACS (tất nhiên là cả cơ chế đồng bộ hóa hệ quản trị cơ sở dữ liệu quan hệ và chức năng CSUtil.exe hỗ trợ việc nhập tài khoản người dùng từ nguồn dữ liệu bên ngoài):
1.Giao diện Cisco Secure ACS: Giao diện HTML cho phép tạo người dùng thủ công với khả năng chỉ tạo được một người trong một lần. Bất kể cách thức người dùng đó được tạo ra, ta đều có thể xem và cập nhật thông tin người dùng bằng việc sử dụng giao diện HTML.
2.Chính sách với người dùng chưa biết: Điều này cho phép CiscoSecure ACS thêm người dùng một cách tự động khi người dùng đó không lưu trong cơ sở dữ liệu CiscoSecure nhưng lại tìm thấy từ một cơ sở dữ liệu ở bên ngoài. Việc tạo ra một người dùng mới trong cơ sở dữ liệu CiscoSecure chỉ xảy ra khi người dùng thử truy cập vào mạng và xác thực thành công bởi cơ sở dữ liệu bên ngoài.
Nếu ta sử dụng “Chính sách với người dùng chưa biết”, ta cũng có thể cấu hình ánh xạ theo nhóm, cốt để mỗi khi một người dùng được thêm vào cơ sở dữ liệu CiscoSecure nhờ “Chính sách với người dùng chưa biết” được xác thực thì việc gán nhóm người dùng sẽ được tạo ra một cách tự động. Với các loại cơ sở dữ liệu khác, tất cả người dùng được xác thực bởi cơ sở dữ liệu đó thì được gán vào một nhóm người dùng đơn lẻ trong Cisco Secure ACS.
3.Đồng bộ hóa RDBMS: cho phép tạo một lượng lớn người dùng và cấu hình nhiều thiết lập cho tài khoản người dùng. Cách này chỉ nên sử dụng khi nào ta cần nhập người dùng với số lượng lớn; tuy nhiên, việc thiết lập đồng bộ hóa RDBMS trong lần đầu yêu cầu nhiều quyết định quan trọng và thời gian để cài đặt.
4.CSUtil.exe: Chương trình chạy trên chế độ dòng lệnh “CSUtil.exe” đưa ra một cách tạo người dùng rất đơn giản. Khi so sánh cách này với “Đồng bộ hóa RDBMS”, chức năng này là rất giới hạn; tuy nhiên nó vượt trội so với việc nhập người dùng theo cách thủ công đơn giản.
5.Nhân bản cơ sở dữ liệu: cho phép tạo người dùng trên một Cisco Secure ACS thứ hai bằng cách ghi đè lên tất cả tài khoản người dùng hiện có trên Cisco Secure ACS thứ hai bởi tài khoản người dùng từ Cisco Secure thứ nhất. Bất kì tài khoản người dùng nào có trong Cisco Secure ACS thứ hai sẽ đều mất khi tiến hành nhân bản.
3.1.2.Cơ sở dữ liệu người dùng bên ngoài
Ta có thể cấu hình Cisco Secure ACS chuyển tiếp việc xác thực người dùng từ một hoặc nhiều cơ sở dữ liệu bên ngoài [6]. Việc hỗ trợ cho cơ sở dữ liệu người dùng bên ngoài có nghĩa là Cisco Secure ACS không yêu cầu ta phải tạo trùng người dùng bên trong cơ sở dữ liệu CiscoSecure. Trong các tổ chức với các cơ sở dữ liệu người dùng quan trọng đã tồn tại, Cisco Secure ACS có thể ảnh hưởng đến những gì đã tồn tại trong cơ sở dữ liệu mà không cần thêm bất cứ yêu cầu nào. Về phần xác thực, Cisco Secure ACS hỗ trợ xác thực TACACS+ sử dụng cơ sở dữ liệu từ bên ngoài.
Người dùng có thể xác thực bằng cách sử dụng các dạng cơ sở dữ liệu sau:
1.Cơ sở dữ liệu Windows
2.LDAP
3.Novell Netware Directory Services(NDS)
4.ODBC
5.LEAP Proxy RADIUS servers
6.RSA SecurID token servers
7.RADIUS-based token servers, including:
a.ActivCard token servers
b.CRYPTOCard token servers
c.Vasco token servers
d.PassGo token servers
e.SafeWord token servers
f.Generic RADIUS token servers
Để Cisco Secure ACS tiếp xúc với cơ sở dữ liệu bên ngoài, Cisco Secure ACS yêu cầu một API cho nguồn xác thực thứ ba. Cisco Secure ACS giao tiếp với cơ sở dữ liệu bên ngoài bằng cách sử dụng API. Với cơ sở dữ liệu Windows và LDAP, giao tiếp lập trình cho xác thực bên ngoài là cục bộ đối với Cisco Secure ACS. Trong các trường hợp này, không một thành phần nào khác được yêu cầu.
Đối với việc xác thực dùng Novell NDS, Novell Requestor phải được cài đặt trên cùng một Windows server như Cisco Secure ACS.
Đối với việc xác thực dùng ODBC, thêm vào giao diện Windows ODBC, thì thành phần thứ ba là ODBC driver phải cài trên Cisco Secure ACS Windows server.
Để giao tiếp với RSA token server, ta phải cài đặt các thành phần phần mềm được đưa ra bởi RSA.
Với RADIUS-based token server, chẳng hạn như ActivCard, CRYPTOCard, PassGo, SafeWord, và Vasco, giao diện RADIUS chuẩn được xem như là thành phần API thứ ba.
3.1.2.1.Xác thực bằng cách sử dụng cơ sở dữ liệu từ bên ngoài
Việc xác thực người dùng nhờ cơ sở dữ liệu từ bên ngoài yêu cầu cấu hình nhiều hơn cho Cisco Secure ACS để giao tiếp với cơ sở dữ liệu bên ngoài. Thiết lập một hoặc nhiều thủ tục cấu hình cho cơ sở dữ liệu bên ngoài được giới thiệu trong phần này không thật sự chỉ dẫn cho Cisco Secure ACS giao tiếp với bất kì người dùng nào với cơ sở dữ liệu đó.
Sau khi ta cấu hình Cisco Secure ACS giao tiếp với cơ sở dữ liệu người dùng bên ngoài, ta có thể cấu hình Cisco Secure ACS xác thực người dùng theo một trong hai cách sau:
·Gán người dùng xác định: Ta có thể cấu hình Cisco Secure ACS xác thực người dùng với cơ sở dữ liệu bên ngoài. Để làm điều này, người dùng phải tồn tại trong CiscoSecure database và danh sách “Xác thực mật khẩu” của mục “User Setup” phải được thiết lập trong cơ sở dữ liệu bên ngoài mà Cisco Secure ACS sử dụng để xác thực.
·“Chính sách người dùng chưa biết”: ta có thể cấu hình Cisco Secure ACS để xác thực những người muốn đăng nhập hệ thống nhưng lại không tìm thấy trong cơ sở dữ liệu CiscoSecure bằng cách sử dụng cơ sở dữ liệu bên ngoài. Người dùng không cần phải tồn tại trong CiscoSecure database theo cách này.
Ta có thể cấu hình Cisco Secure ACS sử dụng đồng thời theo hai cách trên mà không sợ bị chúng loại trừ lẫn nhau.
3.1.2.2.Tiến trình xác thực sử dụng cơ sở dữ liệu bên ngoài
Khi Cisco Secure ACS thử xác thực người dùng với cơ sở dữ liệu bên ngoài, nó sẽ chuyển tiếp ủy nhiệm người dùng cho cơ sở dữ liệu bên ngoài. Cơ sở dữ liệu bên ngoài có thể xác thực thành công hay thất bại từ Cisco Secure ACS. Dựa trên việc tiếp nhận câu trả lời từ cơ sở dữ liệu bên ngoài, Cisco Secure ACS sẽ yêu cầu AAA client tiếp nhận hoặc từ chối người dùng truy cập vào. Hình dưới đây sẽ cho thấy việc cấu hình AAA với cơ sở dữ liệu bên ngoài.
Hình 3.9: Xác thực với cơ sở dữ liệu bên ngoài.
Việc xác định cách thức giao tiếp với cơ sở dữ liệu bên ngoài thay đổi tùy theo kiểu cơ sở dữ liệu. Với LDAP và Novell NDS, Cisco Secure ACS sử dụng kết nối TCP. Với Windows database, Cisco Secure ACS sử dụng xác thực API của hệ điều hành Windows. Với RSA token server, Cisco Secure ACS đóng vai trò là RSA client để sử dụng giao tiếp RSA riêng.
Comment