DB2 9部署定制的安全性插件(2)
测试功能 1
用给定的用户 ID 和密码建立连接,且验证密码或凭据。输出是 authid 和组 authid 列表。
- 如果正在使用 Kerberos 或基于 GSS-API 的身份验证插件,则 API 调用序列如下:
- 客户机插件:db2secProcessServerPrincipalName
- 客户机插件:db2secGenerateInitialCred
- 客户机插件:gss_init_sec_context
- 服务器插件:gss_accept_sec_context
在客户端 API:gss_init_sec_context 与服务器端 API:gss_accept_sec_context 之间进行循环,直到其中一端返回 GSS_S_COMPLETE 为止。如果希望从另一端得到更多令牌,则 API 应返回 GSS_S_CONTINUE_NEEDED。
- 客户机插件:gss_release_buffer、gss_release_name、gss_release_cred、db2secFreeInitInfo、gss_delete_sec_context
- 服务器插件:ss_release_buffer、db2secGetAuthIDs
- 组插件:db2secGetGroupForUser
- 客户机插件:db2secFreeToken
- 服务器插件:gss_delete_sec_context
- 组插件:db2secFreeGroupListMemory
图 1. 使用 Kerberos 或基于 GSS-API 的身份验证插件的 API 调用序列
2、如果正在使用基于用户 ID/密码的身份验证插件,则 API 调用序列如下:
- 客户机插件:db2secRemapUserid(如果它是可选实现的)
- 服务器插件:db2secValidatePassword、db2secGetAuthIDs
- 组插件:db2secGetGroupForUser
- 服务器插件:db2secFreeToken
- 组插件:db2secFreeGroupListMemory
图 2. 使用基于用户 ID/密码的身份验证插件的 API 调用序列
测试功能 2
不提供用户 ID 和密码(默认的登录上下文)而建立连接。输出是 authid 和组 authid 列表。
1、如果正在使用 Kerberos 或基于 GSS-API 的身份验证插件,则 API 调用序列如下:
- 客户机插件:db2secGetDefaultLoginContext
- 客户机插件:db2secProcessServerPrincipalName
- 客户机插件:gss_init_sec_context
- 服务器插件:gss_accept_sec_context
在客户端 API:gss_init_sec_context 和服务器端 API:gss_accept_sec_context 之间进行循环,直到其中一端返回 GSS_S_COMPLETE 为止。如果希望从另一端得到更多令牌,则 API 应返回 GSS_S_CONTINUE_NEEDED。
- 客户机插件:gss_release_buffer、gss_release_name、gss_delete_sec_context
- 服务器插件:gss_release_buffer、db2secGetAuthIDs
- 组插件:db2secGetGroupForUser
- 客户机插件:db2secFreeToken
- 服务器插件:gss_delete_sec_context
- 组插件:db2secFreeGroupListMemory
图 3. 使用 Kerberos 或基于 GSS-API 的身份验证插件的 API 调用序列
2、如果正在使用基于用户 ID/密码的身份验证插件,则 API 调用序列如下:
- 客户机插件:db2secGetDefaultLoginContext、db2secFreeToken
- 服务器插件:db2secGetAuthIDs
- 组插件:db2secGetGroupForUser
- 服务器插件:db2secFreeToken
- 组插件:db2secFreeGroupListMemory
图 4. 使用基于用户 ID/密码的身份验证插件的 API 调用序列
测试功能 3
给定用户授权 ID,输出是组 authid 列表。
API 调用序列如下:
- 组插件:db2secGetGroupsForUser
图 5. API 调用序列
测试功能 4
模拟实例级操作(没有用户 ID 和密码)的本地授权测试。输出是组 authid 列表。
API 调用序列如下:
- 客户机插件:db2secGetDefaultLoginContext
- 组插件:db2secGetGroupForUser
- 客户机插件:db2secFreeToken
- 组插件:db2secFreeGroupListMemory
图 6. API 调用序列