上一主题: SEOSROUTE_VerifyCreate 函数下一主题: 用户信息


退出 API

此部分包含以下主题:

编程指南

适用于 UNIX 的函数

authxapi_RegisterExitFunction 函数

authxapi_UnregisterExitFunction 函数

authxapi_IsThereExitFunction 函数

authxapi_GetObjectProperty 函数

authxapi_GetObjectListValue 函数

authxapi_FreeListValues

authxapi_GetUserInfo 函数

适用于 Windows 的函数

UserDefinedFunction 函数

UserDefinedPrefix_RegisterExit 函数

结构和数据类型

SEOS_EXITLOGIN

SEOS_EXITGENR

SEOS_EXITINET

SEOS_EXITPASS

SEOS_EXITRES

SEOSDB_ODF

SEOSDB_PDF

PFSeosExitFunc

SEOS_CID

SEOS_OID

SEOS_PID

编程指南

通过退出 API,您可以插入自己的函数以在 CA ControlMinder 授权请求活动前后执行。 seosd 后台进程/服务监控所有系统、程序和用户活动。 拦截每个活动并决定是否授权所请求的操作。 您可以在 CA ControlMinder 做出这些决定之前 (pre) 或之后 (post) 插入您自己的已注册函数。

例如,在 CA ControlMinder 考虑每个登录请求之前,您可以注册 pre‑exit 函数以供执行。 在 CA ControlMinder 开始授权登录请求前,exit 函数将获得控制权。 在完成其任务后,exit 函数会通过表示您函数的授权决策的返回代码将控制权还给 CA ControlMinder。 您的函数必须返回以下返回代码之一:

SEOS_EXITR_CHECK

指示 CA ControlMinder 执行其自己的标准授权检查。

SEOS_EXITR_PASS

指示 CA ControlMinder 允许请求。 CA ControlMinder 不执行其自己的标准授权检查。

SEOS_EXITR_DENY

指示 CA ControlMinder 拒绝请求。 CA ControlMinder 不执行其自己的标准授权检查。

如果决定是 SEOS_EXITR_PASS 或 SEOS_EXITR_DENY,CA ControlMinder 会立即允许或拒绝请求。 如果决定是 SEOS_EXITR_CHECK,CA ControlMinder 将继续其自己的标准授权检查。 需要 CA ControlMinder 授权的系统、程序和用户活动称为事件。 CA ControlMinder 授权五类事件:

创建新的 exit 函数

在 UNIX 中

通过编写可以编译并链接到共享库的 C 语言函数,可以将新的 exit 函数添加到 seosd 和 sepass 程序。‑ 必须更改 seos.ext 和 sepass.ext 文件以包括这个新的共享库。

退出 API 函数包含三个部分:

注册函数可以使用 CA ControlMinder 程序初始化您的退出 API 函数并进行注册。 实施函数可以将您的任务添加到标准 CA ControlMinder 处理。 在 CA ControlMinder 程序本身终止时,终止函数可以正常取消注册并关闭您的程序。

下图说明 UNIX 中退出 API 初始化、实施和终止函数的流程。

退出 API exit 函数可以利用由 CA ControlMinder 提供的函数和标头文件。 无论函数链接到 seosd 还是 sepass,您都可以对所有 exit 函数使用相同的注册、初始化和终止函数。

在退出 API 函数准备就绪时,您必须将新的 API 链接到 CA ControlMinder 后台进程。

更多信息:

编译和链接

适用于 UNIX 的函数

适用于 Windows 的函数

对于 UNIX 中的实用程序

通过编写可以编译并链接到共享库的 C 语言函数,可以将新的 exit 函数添加到 sesudosesu 程序。‑ 您必须更改 *.ext 文件以包括这个新的共享库。

退出 API 函数包含三个部分:

注册函数可以使用实用程序初始化您的退出 API 函数并进行注册。 实施函数可以将您的任务添加到标准实用程序常规活动。 在实用程序本身终止时,终止函数可以正常取消注册并关闭您的程序。

注意:实用程序退出 API 的示例位于以下目录:

ACDir/apisamples
在 Windows 中

通过编写可以编译并链接到动态链接库 (dll) 的 C 语言函数,可以将新的 exit 函数添加到 seosd 服务和 pwdchange.dll。 要安装新的 exit 函数,必须在以下注册表项下添加新的子项:

HKEY_LOCAL_MACHINE\Software\ComputerAssociates\AccessControl\Exits\Engine

退出 API 可以属于以下任一类别:

注册函数可以使用 CA ControlMinder 程序初始化您的退出 API 函数并进行注册。 实施函数可以将您的任务添加到标准 CA ControlMinder 处理。

下图说明退出 API 初始化和实施的流程。

退出 API exit 函数可以利用由 CA ControlMinder 提供的函数和标头文件。 无论函数链接到 seosd 还是 pwdchange,您都可以对所有 exit 函数使用相同的注册和实施函数。

在退出 API 函数准备就绪时,您必须将新的 API 链接到 CA ControlMinder 服务。

更多信息:

编译和链接

数据结构

所有退出 API 函数都使用由 CA ControlMinder 提供的特殊数据结构以在函数之间来回传递信息。 程序员必须知道这些结构使用的特定格式和数据类型以在其自己的程序中进行正确访问。 exit 函数使用的输入数据结构取决于函数拦截的事件。 所有函数都使用同一个输出数据结构。 下表列出了退出 API 函数使用的数据结构。

事件

数据结构

类型

登录

SEOS_EXITLOGIN

输入

常规资源检查

SEOS_EXITGENR

输入

TCP/IP 请求(仅适用于 UNIX)

SEOS_EXITINET

输入

密码质量检查
密码更改

SEOS_EXITPASS

输入

所有事件

SEOS_EXITRES

输出

如果退出 API 函数成功,它应填充 SEOS_EXITRES 结构并返回 0。 在 CA ControlMinder 接收到返回代码 0 时,CA ControlMinder 将检查 SEOS_EXITRES 结构中的结果字段。 如果 SEOS_EXITRES 值为 Pass 或 Deny,则将立即执行,且 CA ControlMinder 不会执行其自己的授权检查。 如果结果是 Check,则 CA ControlMinder 将继续执行其自己的授权检查。

如果退出 API 函数失败,它应填充 SEOS_EXITRES 结构并返回非零错误代码。 在 CA ControlMinder 接收到非零返回代码时,它将使用在 SEOS_EXITRES 结构中显示的源文件名和行号将条目添加到错误日志文件。 忽略 SEOS_EXITRES 中设置的其他值。 然后,CA ControlMinder 将继续执行其自己的授权检查。

本章提供了两个示例退出 API 函数。 这些示例可以帮助您开始使用自己的程序。 第一个示例是一个简单的计数器,它可以拦截每个 CA ControlMinder 授权调用,并保留此类调用频率的统计信息。 第二个示例为 CA ControlMinder 的密码授权算法添加新的限制。 该 exit 函数可以阻止用户选择单词 password 作为新密码。

CA ControlMinder 事件

需要 CA ControlMinder 授权的系统、程序和用户活动称为事件。 事件分组为 5 个类别:

可以将密码质量检查和密码更改事件的 Exit 函数链接到 UNIX 中的密码实用程序 sepass 和 Windows 中的密码 dll pwdchange。 登录、常规资源检查和 TCP/IP 请求事件的 Exit 函数可以链接到 seosd

链接到 seosd 的事件

以下事件使用 seosd 进行注册:

用户尝试登录到系统时,将发生登录事件。 与登录尝试相关的所有信息都将传递到 API 函数。 这些信息包括:

这些信息将传递到 SEOS_EXITLOGIN 结构中的 Exits 函数。

注意:登录授权过程中涉及是否允许用户从接收登录请求的终端登录的检查。 如果注册了常规资源 exit 函数,将在登录检查过程中调用该 exit 函数。

在 CA ControlMinder 检查除登录和 TCP/IP 请求以外的任何系统请求的授权时,会发生常规资源检查事件。 与系统请求相关的所有信息都将传递到 API 函数。 这些信息包括:

这些信息将传递到 SEOS_EXITGENR 结构中的函数。

在 UNIX 中,当远程主机尝试连接到本地主机时,会发生 TCP/IP 请求事件。 在这种情况下,没有与特定用户相关的信息。 与连接尝试相关的所有信息都将传递到 API 函数。 这些信息包括主机地址和名称、请求的访问类型、涉及的程序的名称、端口号和协议代码这些信息将传递到 SEOS_EXITINET 结构中的函数。

在 UNIX 中链接到 sepass 的事件

使用密码实用程序 sepass 注册密码质量检查密码更改事件。 退出 API 数据结构 SEOS_EXITPASS 用于在函数之间传递这些事件的信息。

用户尝试输入新的用户密码时,将发生密码质量检查事件。 CA ControlMinder 将始终调用验证 exit(pre‑ 和 post‑)。 仅当用户替换其自己的密码时,CA ControlMinder 才会使用其内置功能验证密码。‑ 与输入新密码尝试相关的所有信息都将传递到 API 函数。 这些信息包括调用密码实用程序的用户的名称、更改其密码的用户的名称、用户的旧密码(如果存在)、用户的新密码以及 CA ControlMinder 结果。 结果可能是 0(正确)或 1(错误)。 所有信息将传递到 SEOS_EXITPASS 结构中的函数。

用户尝试更新现有的用户密码时,将发生密码更改事件。 与更新尝试相关的所有信息都将传递到 API 函数。 这些信息包括调用密码实用程序的用户的名称、更改其密码的用户的名称、用户的新密码以及 CA ControlMinder 和系统结果。 这些信息将传递到 SEOS_EXITPASS 结构中的函数。

更多信息:

SEOS_EXITPASS

在 Windows 中链接到 pwdchange.dll 的事件

使用密码 dll pwdchange 注册密码质量检查密码更改事件。 在注册表中安装这些事件后,您必须重新启动以便正确注册。 退出 API 数据结构 SEOS_EXITPASS 用于在函数之间传递这些事件的信息。

更多信息:

结构和数据类型