Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
740,49 KB
Nội dung
AntoànDB2UDB,Phần2:Hiểucáctrìnhcắmthêman
toàn củaDB2choLinux,UNIXvàWindows
Các trìnhcắmthêmantoànDB2 — Bức tranh tổng thể
Các trìnhcắmthêmantoàn là các thư viện có thể tải một cách động mà DB2 gọi ra khi thực hiện
xác thực hoặc tra tìm thành viên nhóm cho người dùng. Trước phiên bản 8.2, một phương tiện
bên ngoài thay choDB2 đã quản lý các hoạt động này, ví dụ như hệ điều hành, một bộ điều
khiển miền, hoặc một hệ thống antoàn Kerberos. Hình 1 cung cấp các kịch bản minh họa cách
an toànDB2 đã làm việc trước phiên bản 8.2. Cácphần tiếp theo mô tả những gì đã thay đổi với
phiên bản 8.2.
Hình 1. Các kịch bản antoàn
Hình 1 minh họa bốn kịch bản an toàn:
1. Các cân nhắc về antoàn khi kết nối với một cơ sở dữ liệu từ một hệ thống máy
khách đến một hệ thống máy chủ
Ở phía bên trái của Hình 1, một người dùng đã ban hành câu lệnh connect to mydb
user raul using raulpsw (kết nối với người dùng mydb là raul bằng cách sử dụng
raulpsw) từ cửa sổ Bộ xử lý dòng lệnh (CLP) của một hệ thống máy khách DB2 để kết
nối với cơ sở dữ liệu mydb, lưu trú trên máy chủ DB2 Aries. Máy khách DB2 giao tiếp
với máy chủ và thỏa thuận sử dụng phương thức xác thực nào. Để đơn giản, chúng ta hãy
giả sử máy khách sử dụng phương thức xác thực do máy chủ trả về. Trong hình này,
AUTHENTICATION được thiết lập cho SERVER. Điều này có nghĩa là hệ điều hành
máy chủ (I) sẽ thực hiện xác thực bằng cách kiểm tra xem ID và mật khẩu người dùng đã
cấp có phù hợp theo các giá trị được lưu trữ trong cơ sở dữ liệuantoàncủa hệ điều hành
không. Một khi người dùng được xác thực, DB2 sẽ lấy thông tin thành viên nhóm từ hệ
điều hành. Từ thời điểm tiếp theo, DB2 sẽ không còn sử dụng ID hoặc mật khẩu người
dùng cho bất kỳ việc kiểm tra nào nữa, thay vào đó, DB2 sẽ sử dụng ID ủy quyền
(authID). Nói chung, một authID là phiên bản chữ hoa của một ID người dùng.
2. Các cân nhắc về antoàn khi thực hiện các câu lệnh SQL sau khi kết nối vào cơ sở
dữ liệu
Phần dưới cùng bên trái của Hình 1 cho thấy một câu lệnh SELECT được ban hành trong
lúc đã kết nối với cơ sở dữ liệu mydb bằng authID là RAUL. Trong trường hợp này,
phương tiện chức năng antoànDB2 bên trong thực hiện kiểm tra ủy quyền bằng cách
xem lại các bảng Catalog củaDB2 để xác nhận rằng authID RAUL đã được cấp đặc quyền
SELECT từ bảng KEVIN.TABLE1. Nếu authID RAUL và PUBLIC (công khai) vẫn chưa
được cấp đặc quyền này, DB2 sẽ kiểm tra xem người dùng này có là một phầncủa một
trong các nhóm đặc biệt như SYSADM, SYSCTRL, SYSMAINT hoặc SYSMON không.
Có các tham số (dbm cfg) cấu hình củatrình quản lý cơ sở dữ liệucho mỗi nhóm, và bạn
có thể thiết lập các tham số này tới giá trị của một nhóm hệ điều hành. Vào lúc kết nối,
thông tin nhóm về người dùng được lấy ra từ hệ điều hành và lưu trữ trong bộ nhớ nhanh.
Sau đó DB2 sẽ kiểm tra xem authID RAUL có là một phầncủa một trong các nhóm này
không bằng cách xem lại dữ liệu (II) đã lưu trong bộ nhớ nhanh này. Ví dụ, nếu authID là
một phầncủa nhóm SYSADM, câu lệnh SELECT có thể tiếp tục, ngược lại sẽ trả về một
thông báo lỗi (SQLCODE -551).
3. Các cân nhắc về antoàn khi thực hiện antoàntại máy khách
Nếu AUTHENTICATION đã được thiết lập tới CLIENT trong Hình 1, hệ điều hành ở
máy tính khách này sẽ thực hiện xác thực (III). Việc kiểm tra ủy quyền với câu lệnh
SELECT sẽ được thực hiện như trước: DB2 sẽ xác minh xem authID RAUL có đặc quyền
SELECT với bảng KEVIN.TABLE1 trong các bảng cơ sở dữ liệuDB2 Catalog không. Nếu
authID RAUL và PUBLIC không có đặc quyền này, thì thực hiện kiểm tra thành viên
nhóm. Vào lúc kết nối, thông tin thành viên nhóm từ máy khách được chuyển đến và lưu
trữ trong bộ nhớ nhanh tại máy chủ.
4. Các cân nhắc về antoàn khi ban hành các lệnh mức cá thể
Tại máy chủ trong Hình 1, chủ sở hữu cá thể DB2 là db2inst1 đưa ra lệnh db2stop. DB2
kiểm tra xem người dùng đã đăng nhập hiện tại có thuộc nhóm được định nghĩa trong
SYSADM_GROUP, SYSCTRL_GROUP, hoặc SYSMAINT_GROUP (IV) không. Nếu
ID người dùng thuộc về bất kỳ một trong các nhóm này, lệnh db2stop sẽ thực hiện thành
công. Nếu không, sẽ trả về một thông báo lỗi. Tùy thuộc vào hoạt động mức cá thể, người
dùng có thể là một phầncủacác nhóm SYSADM, SYSCTRL, SYSMAINT hoặc
SYSMON.
Trong mỗi kịch bản, hệ điều hành được gọi để thực hiện các việc kiểm tra an toàn. Bắt đầu với
phiên bản 8.2, có thể sử dụng cáctrìnhcắmthêmantoàn trong mỗi tình huống này. Thay vì luôn
gọi hệ điều hành, có thể gọi một trìnhcắmthêm máy chủ và nhóm trong kịch bản 1, có thể gọi
một trìnhcắmthêm nhóm trong kịch bản 2, và có thể gọi cáctrìnhcắmthêm máy khách và
nhóm trong kịch bản 3 và 4.
Ví dụ này giới thiệu ba thể loại trìnhcắmthêman toàn:
Trìnhcắmthêmantoàn xác thực phía máy chủ (trình cắmthêm xác thực phía máy chủ).
Trìnhcắmthêmantoàn xác thực phía máy khách (trình cắmthêm xác thực phía máy
khách).
Trìnhcắmthêmantoàn tra tìm thành viên nhóm (trình cắmthêm nhóm).
Trình cắmthêm xác thực máy chủ thực hiện xác thực trên máy chủ cơ sở dữ liệu. Nó cũng được
sử dụng để kiểm tra xem trìnhcắmthêm có biết authID không. Ví dụ, hãy xem xét câu lệnh SQL
grant select on table user1.t1 to FOO, (cấp chọn trên bảng user1.t1 cho FOO), ở đây
DB2 không biết liệu FOO có là một người dùng hoặc nhóm không. Trong trường hợp này, DB2
tra cứu tất cả cáctrìnhcắmthêm phía máy chủ vàcáctrìnhcắmthêm thành viên nhóm để kiểm
tra xem FOO có là một người dùng, một nhóm, không rõ, hoặc cả hai không, để nó có thể đáp
ứng cho phù hợp với câu lệnh SQL.
Trình cắmthêm xác thực máy khách thực hiện xác thực trên máy khách. Nó cũng được dùng để
thực hiện xác thực cục bộ mức cá thể trên máy chủ cơ sở dữ liệu khi thực hiện các lệnh mức cá
thể (chẳng hạn như db2start, db2stop, db2trc, update dbm cfg, và v.v ) Vì vậy, phổ biến là
xem cả hai trìnhcắmthêm xác thực máy khách vàtrìnhcắmthêm xác thực máy chủ được chỉ rõ
trên một máy chủ cơ sở dữ liệu.
Trình cắmthêm nhóm thực hiện tra tìm thành viên nhóm trên cả máy khách lẫn máy chủ cơ sở
dữ liệu. Nó cũng được dùng để kiểm tra xem trìnhcắmthêm có biết authID không.
Mỗi trìnhcắmthêmantoàn có chứa một tập các API mà bạn cần thực hiện. DB2 cung cấp cơ sở
hạ tầng củatrìnhcắmthêmantoànvà một số trìnhcắmthêmantoàn mặc định. Để dành việc
thực hiện trìnhcắmthêmantoàn tùy chỉnh cho bạn tự quyết định.
Về đầu trang
Các ưu điểm của việc sử dụng trìnhcắmthêmantoàn
Các ưu điểm chính của việc sử dụng cơ chế antoàn mới củaDB2 là tính linh hoạt và tính mở
rộng mà cáctrìnhcắmthêmantoàn có thể cung cấp. Bạn có thể tùy chỉnh các cơ chế antoàn để
đáp ứng các nhu cầu cá nhân của bạn, thay vì dựa vào một phương tiện chức năng tiêu chuẩn như
hệ điều hành. Ví dụ, trước phiên bản 8.2, bất kỳ người dùng hệ điều hành nào đã đăng nhập vào
hệ thống đều có thể ban hành một câu lệnh kết nối mà không cần vượt qua kiểm tra ID và mật
khẩu người dùng (được gọi là một kết nối ngầm định), và giả sử ID người dùng có đặc quyền
CONNECT của DB2, thì anh ta có thể kết nối thành công. Với cáctrìnhcắm thêm, bạn có thể
thay đổi hành vi này sao cho không cho phép kết nối ngầm định.
LDAP là một ví dụ khác. LDAP hiện không được hỗ trợ như là một phương thức xác thực trong
DB2; tuy nhiên, bạn luôn có thể thực hiện nó bằng cách sử dụng một trìnhcắmthêman toàn.
Một ví dụ đơn giản được trình bày sau trong bài viết này, khi sử dụng Microsoft Active
Directory (Thư mục tích cực của Microsoft) để thực hiện xác thực dựa trên LDAP.
Các trìnhcắmthêmantoàn được thực hiện cho mỗi cá thể, do đó bạn có thể tạo ra các cá thể
khác nhau, và có các công cụ trìnhcắmthêmantoàn khác nhau. Hình 2 cho thấy tính linh hoạt
và tính mở rộng được cung cấp bằng cách sử dụng cáctrìnhcắmthêman toàn.
Hình 2. Cáctrìnhcắmthêmantoàn DB2: Tính linh hoạt và tính mở rộng
Về đầu trang
Các trìnhcắmthêmantoàn mặc định
Sau khi cài đặt hoặc chuyển đổi sang phiên bản 8.2 của DB2, bạn không cần viết mã củatrình
cắm thêmantoàn riêng của bạn hoặc thực hiện bất kỳ thiết lập nào. Theo mặc định, DB2 được
cấu hình để sử dụng cáctrìnhcắmthêmantoàn mặc định kèm theo. Cáctrìnhcắmthêmantoàn
mặc định này gọi các API antoàncủa hệ điều hành, do đó, hoạt động antoàn mặc định giống hệt
như trong các phiên bản DB2 trước đó.
Hình 3 cho thấy cáctrìnhcắmthêm mặc định đi kèm với DB2, và vị trí của chúng trên hệ thống
Windows.
Hình 3. Cấu trúc thư mục với các thư viện củatrìnhcắmthêmantoàn mặc định trên
Windows
Ô bên phải trong mỗi cửa sổ của Hình 3 cho thấy cáctrìnhcắmthêm mặc định khác nhau. Bảng
1 dưới đây mô tả từng trìnhcắmthêm này.
Bảng 1. Cáctrìnhcắmthêm mặc định IBM DB2
Tên trìnhcắm
thêm
Mô tả
1IBMOSauthclient Đây là trìnhcắmthêm xác thực dựa vào hệ điều hành phía máy khách.
2IBMOSauthserver Đây là trìnhcắmthêm xác thực dựa vào hệ điều hành phía máy chủ.
3IBMOSgroup Đây là trìnhcắmthêm thành viên nhóm dựa vào hệ điều hành.
4IBMkrb5
Đây là trìnhcắmthêmantoàn Kerberos (có cả hai mã phía máy khách và
mã phía máy chủ trong cùng một thư viện).
Bất kỳ trìnhcắmthêm nào trong Hình 3 có hậu tố "TwoPart" đều thực hiện cùng một phương
thức xác thực như một trìnhcắmthêm không có hậu tố đó, nhưng nó đã thêm khả năng xử lý các
authID hai phần. Các authID hai phầncho phép sử dụng các vùng tên [c1], vì vậy, nhiều tài
khoản có thể sử dụng cùng authID miễn là chúng đang ở trong các vùng tên khác nhau. Ví dụ, cả
hai DOMAIN1\SUSHMA và DOMAIN2\SUSHMA là các authID hợp lệ cho một trìnhcắm
thêm xử lý các authID hai phần. Trong các ví dụ này, DOMAIN1 và DOMAIN2 là các vùng tên
(theo Windows, gọi chung là các miền của Windows).
Nếu bạn không muốn sử dụng cáctrìnhcắmthêm mặc định, bạn có thể hoặc viết cáctrìnhcắm
thêm antoàn riêng của bạn, hoặc mua chúng từ một nhà cung cấp thứ ba. Bất kể bạn chọn cách
nào, bạn cần tuân thủ các quy tắc cơ bản do DB2 đưa ra để viết trìnhcáccắmthêman toàn. Điều
này được thảo luận chi tiết hơn trong phần sau.
Về đầu trang
Các trìnhcắmthêm ID/mật khẩu người dùng so với cáctrìnhcắmthêm GSS-API
Trước khi bạn bắt đầu phát triển cáctrìnhcắmthêm riêng của mình, bạn cần hiểu rằng khi sử
dụng trìnhcắmthêm có thể thực hiện việc xác thực theo hai cách:
Sử dụng một trìnhcắmthêm dựa vào ID/mật khẩu người dùng — Điều này ngụ ý
rằng một ID và mật khẩu người dùng được chuyển chocáctrìnhcắmthêm để kiểm tra.
Đây là một cách thực hiện đơn giản dễ hiểu hơn; tuy nhiên, chỉ có thể gửi ID và mật khẩu
người dùng đến máy chủ, và chỉ có một trìnhcắmthêm máy chủ hoặc trìnhcắmthêm
máy khách có thể được hỗ trợ.
Sử dụng một trìnhcắmthêm dựa vào GSS-API — Điều này có nghĩa là việc xác thực
sử dụng Phiên bản 2 của tiêu chuẩn GSS-API (Generic Security Service Application
Programming Interface – Giao diện lập trình ứng dụng của dịch vụ antoàn chung), như
được ghi lại trong RFC 2743 và 2744. GSS-API là một API tổng quát để thực hiện xác
thực máy khách-máy chủ. GSS-API là một tiêu chuẩn để giải quyết vấn đề về sự tồn tại
của các dịch vụ antoàn tương tự nhưng không tương thích đang sử dụng hiện nay. Ưu
điểm chính của việc sử dụng GSS-API là nhờ việc viết API tổng quát này, nên công cụ
của bạn có thể cùng làm việc tin cậy với các hệ thống antoàn khác nhau. Kerberos và
PKI đã hỗ trợ GSS-API, và trên thực tế, việc xác thực Kerberos trong DB2 được thực
hiện bằng cách sử dụng mô hình GSS-API.
Một ưu điểm khác của việc sử dụng kiểu xác thực củatrìnhcắmthêm này là có thể
truyền bất kỳ dữ liệu xác thực nào (bao gồm cả dữ liệu nhị phân) giữa máy khách và máy
chủ. Việc xác thực được thực hiện ở cả máy khách và máy chủ; do đó bạn nên cấu hình
máy khách và máy chủ để sử dụng trìnhcắmthêm GSS-API giống nhau. Để cấu hình
máy khách, chỉ cần sao chép trìnhcắmthêm GSS-API vào thư mục trìnhcắmthêmcủa
máy khách. Tại máy chủ, một danh sách cáctrìnhcắmthêm GSS-API theo thứ tự được
chỉ rõ trong tham số cấu hình trình quản lý cơ sở dữ liệu SRVCON_GSSPLUGIN_LIST.
Nếu một máy khách đã sao chép nhiều hơn một trìnhcắmthêm GSS-API, máy chủ sẽ
xác định sử dụng một bản sao nào, dựa vào danh sách thứ tự đó. Hình 4 minh họa khái
niệm này.
Hình 4. Chỉ rõ cáctrìnhcắmthêm GSS-API tạicác hệ thống máy khách và máy chủ.
Hình này cho thấy ba máy khách DB2 đang sử dụng cáctrìnhcắmthêm GSS-API khác nhau, và
một máy chủ DB2 có một danh sách cáccáctrìnhcắmthêm GSS-API mà nó hỗ trợ. Khi máy
khách #1 kết nối đến máy chủ, máy chủ sẽ duyệt qua danh sách cáctrìnhcắmthêmcủa mình
theo thứ tự từ trái sang phải cho đến khi nó tìm thấy một trìnhcắmthêm phù hợp với trìnhcắm
thêm của máy khách, và sau đó sử dụng trìnhcắmthêm này. Vì vậy, đối với máy khách này máy
chủ thấy rằng trìnhcắmthêm đầu tiên được nó hỗ trợ là ABC, và phù hợp với ABC.dll, do đó,
máy chủ chọn trìnhcắmthêm này. Không cần tiếp tục duyệt danh sách xuống nữa, mặc dù trình
cắm thêm DEF cũng được cả hai máy khách và máy chủ hỗ trợ. Đối với máy khách #3, một lỗi
(mã lý do SQLCODE -30082 số 15) được trả về, do không có một trìnhcắmthêm GSS-API nào
phù hợp giữa máy khách và máy chủ.
Một cá thể máy chủ DB2 sẽ chỉ có thể hỗ trợ một mô đun xác thực ID/mật khẩu người dùng,
nhưng sẽ có thể hỗ trợ một danh sách cáctrìnhcắmthêm GSS-API. Tuy nhiên, chỉ có một trình
cắm thêm trong danh sách có thể là một trìnhcắmthêm Kerberos. Các ứng dụng khách DB2 sẽ
chỉ có thể hỗ trợ một mô đun ID/mật khẩu người dùng, nhưng sẽ thỏa thuận với máy chủ về một
trình cắmthêm GSS-API cụ thể.
Các trìnhcắmthêm GSS-API phức tạp hơn, và cần có một sự hiểu biết rõ về khái niệm GSS-API
quan trọng.
Về đầu trang
Các tính năng mới có sẵn trong cáctrìnhcắmthêmantoàn tùy chỉnh
Với kết quả của mô hình trìnhcắmthêmantoàn mới được giới thiệu trong Phiên bản 8.2, bạn có
thể:
Thực hiện ánh xạ lại userID, mật khẩu, và vùng tên trên máy khách. Điều này chỉ có thể
áp dụng chocáctrìnhcắmthêm dựa trên ID/mật khẩu người dùng. Tính năng này có
công dụng đặc biệt trong một hệ thống ba tầng ở đó máy chủ Web và máy khách DB2 tạo
nên tầng giữa. Một ví dụ về ánh xạ lại userID, mật khẩu, và vùng tên được minh họa
trong ví dụ 1 củaphầnCác ví dụ, ở đây người dùng sugsc1ch và mật khẩu của anh ta
được trìnhcắmthêm máy khách ánh xạ tới người dùng Newton và mật khẩu của anh ta
trước khi gửi yêu cầu kết nối đến máy chủ.
Thực hiện ánh xạ lại authID trên máy chủ. Tính năng này cho phép các ID người dùng
khác nhau chia sẻ cùng ID ủy quyền trên máy chủ cơ sở dữ liệu một khi được xác thực.
Tính năng này được biểu thị trong các thử nghiệm với ví dụ 1 củaphầnCác ví dụ. Ví dụ,
tính năng này rất có ích, khi có các nhân viên trong một phòng có các ca làm việc luân
phiên và thực hiện các nhiệm vụ tương tự hàng ngày đòi hỏi phải có cùng các đặc quyền.
Nhờ sử dụng tính năng này, bạn có thể xác thực tất cả nhân viên này một cách độc lập và
sử dụng các đặc quyền liên quan với authID chung để thực hiện các nhiệm vụ của họ. Để
tìm ra nhân viên nào thực hiện nhiệm vụ nào và khi nào, DB2cho phép trìnhcắmthêm
phía máy chủ trả về tên thật, rồi kiểm định sau. Để biết thêm thông tin, hãy tham khảo tài
liệu API db2secGetAuthid.
Sử dụng các vùng tên người dùng (ví dụ, DOMAIN\user). Điều này đã được thảo luận ở
trên trong phầnCáctrìnhcắmthêmantoàn mặc định.
Từ chối các kết nối dựa trên thông tin truyền thông. Có thể sử dụng tính năng này khi bạn
muốn cho phép chỉ một vài địa chỉ IP được đăng nhập vào cơ sở dữ liệutại một thời điểm
cụ thể. Ví dụ 2 trong phầnCác ví dụ minh họa cách bạn có thể thực hiện điều này.
Về đầu trang
Các bước để tạo một trìnhcắmthêmantoànDB2
Có sáu bước để tạo một trìnhcắmthêmantoàn DB2. Mỗi bước được giải thích chi tiết hơn trong
các phần sau:
1. Bao gồm các tệp tiêu đề củatrìnhcắmthêmantoàn trong trìnhcắmthêmcủa bạn:
o sqllib/include/db2secPlugin.h
o sqllib/include/gssapiDB2.h
Lưu ý: Bạn chỉ cần gssapiDB2.h nếu bạn đang thực hiện trìnhcắmthêmantoàn
dựa trên GSS-API.
2. Viết các API cấu thành trìnhcắmthêmcủa bạn. Bạn cần viết một API khởi tạo thích hợp
và tập các API còn lại cần thiết chotrìnhcắmthêm máy chủ, máy khách, hoặc nhóm của
bạn.
3. Điền vào cấu trúc con trỏ hàm trước khi trả về cho DB2.
o Cho biết phiên bản API củatrìnhcắmthêm được trìnhcắmthêm sử dụng.
o Cho biết kiểu trìnhcắm thêm, ví dụ như ID/mật khẩu người dùng, GSS-API,
Kerberos.
4. Biên dịch mã nguồn trìnhcắmthêmvà tạo một thư viện chia sẻ. Biên dịch là 32-bit hoặc
64-bit tương ứng với cá thể ứng dụng/máy chủ.
5. Đặt thư viện này trong thư mục thích hợp.
6. Chạy cáctrìnhcắmthêm bằng cách cập nhật các tham số củatrình quản lý cơ sở dữ liệu.
Bước 1: Bao gồm các tệp tiêu đề củatrìnhcắmthêmantoàn trong trong trìnhcắmthêmcủa bạn
db2secPlugin.h và gssapiDB2.h hai tệp tiêu đề cần thiết để thực hiện cáctrìnhcắmthêmantoàn
tùy chỉnh. Tệp tiêu đề gssapiDB2.h chỉ cần thiết nếu bạn đang xây dựng một trìnhcắmthêm
GSS-API. Hình 5 cho thấy vị trí của hai tệp tiêu đề cần thiết để thực hiện trìnhcắmthêmantoàn
trên một hệ thống Windows.
Hình 5. Vị trí các tệp tiêu đề củatrìnhcắmthêm trên một hệ thống Windows
Bước 2: Viết các API cấu thành trìnhcắmthêmcủa bạn
Tùy thuộc vào liệu bạn có đang làm việc trên một trìnhcắmthêm máy chủ, trìnhcắmthêm máy
khách, hoặc trìnhcắmthêm nhóm hay không, bạn sẽ cần mã hóa các API tương ứng sau đây để
khởi tạo trìnhcắm thêm:
db2secServerAuthPluginInit
db2secClientAuthPluginInit
db2secGroupPluginInit
Ví dụ, API db2secServerAuthPluginInit có thể được mã hóa theo cách sau:
Liệt kê 1. db2secServerAuthPluginInit
SQL_API_RC SQL_API_FN db2secServerAuthPluginInit(
db2int32 version,
void* server_fns,
db2secGetConDetails* getConDetails_fn,
db2secLogMessage* logMessage_fn,
char** errormsg,
db2int32* errormsglen)
{
struct userid_password_server_auth_functions_1
*fns = (struct userid_password_server_auth_functions_1*) server_fns;
condetails_fn = getConDetails_fn;
logMessage_Fn = logMessage_fn;
fns->version = DB2SEC_API_VERSION;
fns->plugintype = DB2SEC_PLUGIN_TYPE_USERID_PASSWORD;
fns->db2secDoesAuthIDExist = &is_user;
fns->db2secFreeErrormsg = &free_error_message;
fns->db2secFreeToken = &free_token;
fns->db2secGetAuthIDs = &getauthids;
fns->db2secServerAuthPluginTerm = &terminate_plugin;
fns->db2secValidatePassword = &validatePassword;
/* Example on how to use logMessage_fn */
/* Will log the init successful information into db2diag.log at DIAGLEVEL
3 */
(logMessage_Fn)(DB2SEC_LOG_WARNING,
"db2secServerAuthPluginInit successful",
strlen("db2secServerAuthPluginInit successful"));
return DB2SEC_PLUGIN_OK;
}
DB2 gọi API db2secServerAuthPluginInit để khởi tạo thư viện trìnhcắmthêm máy chủ sau khi
nó được DB2 tải. Đoạn mã trên được lấy từ tệp txtserver.c, có trong tệp ZIP đính kèm ở cuối bài
này.
[...]... về các API củatrìnhcắmthêmantoànCác chi tiết đó nằm ngoài phạm vi của bài này Phần này chỉ trình bày một tổng quan về API củatrìnhcắmthêm đơn giản Hình 6 Trìnhcắmthêm tra tìm thành viên nhóm Hình 7 Trìnhcắmthêm máy khách Hình 8 Trìnhcắmthêm máy chủ Bước 3: Điền cấu trúc con trỏ hàm trước khi trả về choDB2 Con trỏ hàm trả về các con trỏ tới tất cả các API cần thiết cho thư viện trình cắm. .. danh sách các tham số cấu hình trình quản lý cơ sở dữ liệu áp dụng chocáctrìnhcắm thêm, và giải thích về cách chúng áp dụng chocáctrìnhcắmthêmantoàn Bảng 2 Mô tả các tham số cấu hình củatrình quản lý cơ sở dữ liệucủatrìnhcắmthêmantoàn Tên tham số Mô tả Nếu giá trị này được thiết lập tại máy khách, và tham số AUTHENTICATION tại máy chủ được thiết lập là CLIENT, tham số này cho biết trình. .. được để chạy cáctrìnhcắmthêm xác thực Kerberos bằng cách sử dụng các tham số cấu hình liệt kê ở trên Bảng 6 Các bước để chạy các trìnhcắmthêm Kerberos Các bước trên máy khách Đặt thư viện trìnhcắmthêm trong thư mục 1 trìnhcắmthêm máy khách Cập nhật CLNT_KRB_PLUGIN với tên củatrìnhcắmthêm Kerberos 2 Các bước trên máy chủ Đặt thư viện trìnhcắmthêm trong thư mục trìnhcắmthêm máy chủ...Ngoài các hàm khởi tạo, có một số các API củatrìnhcắmthêm mà bạn cần để thực hiện với các trìnhcắmthêm máy chủ, máy khách, và nhóm Ngoài ra, còn có các API cụ thể cho việc xác thực ID/mật khẩu người dùng vàcho việc xác thực GSS-API Hình 6, 7, và 8 mô tả những gì các hàm này thực hiện Lưu ý: Các hướng dẫn sử dụng DB2 có một phần mô tả chi tiết cách phát triển các trìnhcắmthêm an toàn, cũng như các. .. các trìnhcắmthêm an toàn nào Chúng cũng không hỗ trợ phương thức xác thực củatrìnhcắmthêm GSS-API, trừ Kerberos Sao chép (replicate) Q không làm việc với cáctrìnhcắmthêmantoànCáctrìnhcắmthêm mặc định đi kèm với DB2 không hỗ trợ xác thực LDAP Vì vậy, để có thể sử dụng xác thực LDAP, bạn cần phải viết trìnhcắmthêm riêng của bạn và chạy nó với DB2 để sử dụng nó Về đầu trang Các kịch bản... IBMOSgroups, trìnhcắmthêm do mặc định là IBMOSgroups, trìnhcắmthêm do IBM cung cấp IBM cung cấp Bảng 5 cho thấy các bước bạn sẽ nhận được để chạy cáctrìnhcắmthêm xác thực GSS-API bằng cách sử dụng các tham số cấu hình được liệt kê ở trên Bảng 5 Các bước để chạy các trìnhcắmthêm xác thực GSS-API Các bước trên máy khách Các bước trên máy chủ Đặt thư viện trìnhcắmthêm trong thư mục Đặt thư viện trình cắm. .. (trình cắmthêm Kerberos do IBM cung cấp) hoặc là tên củatrìnhcắmthêm Kerberos của ban Bạn cũng cần đảm bảo cài đặt trìnhcắmthêm này trong thư mục trìnhcắmthêm máy khách trên máy chủ cơ sở dữ liệu Nếu không, các hoạt động mức cá thể như db2start sẽ không chạy Một khi bạn đã thiết lập trìnhcắmthêm trên cả máy khách và máy chủ cơ sở dữ liệu, hãy ban hành một câu lệnh kết nối để thử nghiệm trình. .. Java củatrìnhcắmthêm GSS-API Tuy nhiên, trình điều khiển kiểu 4 hỗ trợ Kerberos với các phiên bản trước Phiên bản V8 FP11 Lưu ý rằng máy khách JCC không hỗ trợ cáctrìnhcắmthêmantoàn dựa vào ID/mật khẩu người dùng tùy chỉnh với cáctrìnhcắmthêmantoàn xác thực hoặc tra tìm nhóm tùy chỉnh Các sản phẩm DB2 khác (ví dụ như DB2 trên Z-series, I-series, hoặc VM/VSE) không hỗ trợ bất kỳ dạng các trình. .. lấy tên chính của nó và xử lý chứng nhận lúc khởi tạo trìnhcắmthêm (db2secServerAuthPluginInit) Lưu ý rằng trên máy chủ này, cáctrìnhcắmthêm được nạp và khởi tạo như là một phầncủa hoạt động củatrình quản lý cơ sở dữ liệu khởi động (db2start) Bảng 8 Các dòng chảy máy chủ-máy khách khi DB2 được tham gia vào quá trình xác thực GSS-API Máy khách Máy chủ 1 Lấy các chứng nhận ban đầu của máy khách... thư mục Đặt thư viện trìnhcắmthêm trong thư mục trình 1 trìnhcắmthêm máy khách cắmthêm máy chủ Cập nhật SRVCON_GSSPLUGIN_LIST với một danh sách theo thứ tự các tên củatrìnhcắmthêm có hỗ trợ Để chạy trìnhcắmthêm GSS-API, bạn có thể hoặc: Tùy chọn: Tạo danh mục một cơ sở dữ liệucho biết rằng máy khách sẽ chỉ sử dụng một trìnhcắmthêm GSS-API để xác thực Ví dụ: db2 catalog db testdb at node . An toàn DB2 UDB, Phần 2: Hiểu các trình cắm thêm an
toàn của DB2 cho Linux, UNIX và Windows
Các trình cắm thêm an toàn DB2 — Bức tranh tổng thể
Các. hiện. DB2 cung cấp cơ sở
hạ tầng của trình cắm thêm an toàn và một số trình cắm thêm an toàn mặc định. Để dành việc
thực hiện trình cắm thêm an toàn tùy