MQCSP 的字段详细信息

应用程序使用 IBM® MQ 连接安全参数结构,在向队列管理器发出的 MQCONNX 调用中传输身份验证信息。 您还可以使用它来提供初始密钥,该密钥与 IBM MQ 密码保护系统配合使用,对敏感数据进行加密。

StrucId (MQCHAR4)

这是安全参数结构的结构标识符。 它始终是一个输入字段。 其值为 MQCSP_STRUC_ID。

值必须是
MQCSP_结构ID
安全参数结构的标识符。

对于 C 编程语言,还定义了常量 MQCSP_STRUC_ID_ARRAY。 其值与 MQCSP_STRUC_ID 相同,但它是一个字符数组,而不是字符串。

Version (MQLONG)

MQCSP 结构版本号。

值必须是
MQCSP_VERSION_1
Version-1 安全参数结构。 在版本 1 中,您可以在 MQCSP 结构中加入用户 ID 和密码,以便与队列管理器进行身份验证。
MQCSP_VERSION_2
Version-2 安全参数结构。 在第 2 版中,您可以输入用户 ID 和密码来验证队列管理器,并指定用于保护密码的初始密钥。
[MQ 9.4.06月 2024]MQCSP_VERSION_3
Version-3 安全参数结构。 在第 3 版中,您可以在 MQCSP 结构中加入用户 ID 和密码或验证令牌,以便与队列管理器进行验证。 您还可以指定用于保护密码的初始密钥。
以下常量指定当前版本的版本号:
mqcsp_current_version
安全参数结构的当前版本。

这始终是一个输入字段。 此字段的初始值为 MQCSP_VERSION_3。

AuthenticationType (MQLONG)

AuthenticationType 是一个输入字段。 其初始值为 MQCSP_AUTH_NONE。

这就是要执行的验证类型。 有效值包括:
mqcsp_auth_none
请勿使用用户 ID 和密码 或身份验证令牌字段。
mqcsp_auth_user_id_and_pwd
使用 MQCSP 结构中的用户 ID 和密码进行验证。
[MQ 9.4.06月 2024]mqcsp_auth_id_token
使用 MQCSP 结构中的验证令牌进行验证。

默认值为 MQCSP_AUTH_NONE。 默认设置下,不提供密码保护。

如果需要验证,则必须设置 MQCSPAuthenticationType 到 MQCSP_AUTH_USER_ID_AND_PWD 或 MQCSP_AUTH_ID_TOKEN

有关更多信息,请参阅
[IBM i]

Reserved1 (MQBYTE4)

保留字段,IBM i的指针对齐所需的字段。

该字段的初始值全部为空。

CSPUserIdPtr (MQPTR)

用于身份验证的用户 ID 地址。

这是一个输入字段。 在支持指针的编程语言中,该字段的初始值为空指针,否则为全空字节字符串。 如果 Version 小于 MQCNO_VERSION_5,则该字段将被忽略。

当队列管理器的 CONNAUTH 字段中命名了 AUTHTYPEIDPWOS 时,该字段可以包含操作系统用户 ID。

Windows 上,这可以是一个完全限定域用户 ID。

当队列管理器的 CONNAUTH 字段中命名了 AUTHTYPEIDPWLDAP 时,此字段可以包含 LDAP 用户 ID。

CSPUserIdOffset (MQLONG)

用于身份验证的用户 ID 偏移量(以字节为单位)。 偏移量可以是正值或负值。

这是一个输入字段。 该字段的初始值为 0。

CSPUserIdLength (MQLONG)

用于身份验证的用户 ID 长度。

用户 ID 的最大长度取决于平台,请参阅 用户 ID如果用户 ID 的长度大于允许的最大长度,则身份验证请求失败,显示 MQRC_CSP_ERROR。 在 IBM MQ 的早期版本中,返回的错误信息是 MQRC_NOT_AUTHORIZED。

该字段为输入字段。 该字段的初始值为 0。

[IBM i]

Reserved2 (MQBYTE8)

保留字段,IBM i的指针对齐所需的字段。

该字段的初始值全部为空。

CSPPasswordPtr (MQPTR)

用于身份验证的密码地址。

这是一个输入字段。 在支持指针的编程语言中,该字段的初始值为空指针,否则为全空字节字符串。 如果 Version 小于 MQCNO_VERSION_5,则该字段将被忽略。

该字段可以包含空密码,操作系统或 LDAP 密码检查(取决于设置)会拒绝该密码,但 IBM MQ 在将其传递给身份验证方法之前不会拒绝该密码。

CSPPasswordOffset (MQLONG)

这是用于身份验证的密码偏移量(以字节为单位)。 偏移量可以是正值或负值。

这是一个输入字段。 该字段的初始值为 0。

CSPPasswordLength (MQLONG)

用于身份验证的密码长度。

密码的最大长度为 MQ_CSP_PASSWORD_LENGTH,即 256 个字符。 如果密码长度大于允许的最大长度,则身份验证请求失败,显示 MQRC_CSP_ERROR。 在 IBM MQ 的早期版本中,返回的错误信息是 MQRC_NOT_AUTHORIZED。

该字段为输入字段。 该字段的初始值为 0。

[IBM i]

Reserved3 (MQBYTE8)

保留字段,IBM i的指针对齐所需的字段。

该字段的初始值全部为空。

[UNIX、Linux、Windows、IBM i]

InitialKeyPtr (MQPTR)

密码保护系统初始密钥的地址。

这是一个输入字段。 在支持指针的编程语言中,该字段的初始值为空指针,否则为全空字节字符串。 如果 Version 小于 MQCSP_VERSION_2,则该字段将被忽略。

此字段仅适用于IBM MQ在多平台上运行的 MQI 客户端。

IBM MQMQI 客户端可使用 IBM MQ 密码保护系统为某些字段提供加密值。 如果使用初始密钥对 MQSCO 结构中指定的密钥存储库的密码进行加密,请确保在同一客户端应用程序的 MQCSP 结构中包含初始密钥字段。

加密算法使用初始密钥对这些值进行加密和解密。 如果在使用 runmqicred 实用程序加密这些字段的值时提供了初始密钥,那么客户端在连接队列管理器时必须指定相同的初始密钥。

使用此字段指定的初始密钥将覆盖使用 MQS_MQI_KEYFILE 环境变量或客户机配置文件 Security stanza 中的 MQIInitialKeyFile 属性指定的任何初始密钥。

您可以使用 InitialKeyOffsetInitialKeyPtr 指定初始密钥,但不能同时使用这两种方法。

[UNIX、Linux、Windows、IBM i]

InitialKeyOffset (MQLONG)

从 MQCSP 结构开始的密码保护系统初始密钥偏移量(以字节为单位)。 偏移量可以是正值或负值。

您可以使用 InitialKeyOffsetInitialKeyPtr 指定初始密钥,但不能同时使用这两种方法。 有关详细信息,请参阅 InitialKeyPtr 字段的说明。

这是一个输入字段。 该字段的初始值为 0。 如果 Version 小于 MQCSP_VERSION_2,则该字段将被忽略。

[UNIX、Linux、Windows、IBM i]

InitialKeyLength (MQLONG)

密码保护系统初始密钥的长度。

这是一个输入字段。 该字段的初始值为 0。 如果 Version 小于 MQCSP_VERSION_2,则该字段将被忽略。

[IBM i]

Reserved4 (MQBYTE8)

保留字段,IBM i的指针对齐所需的字段。

该字段的初始值全部为空。

[AIX][Linux]

TokenPtr (MQPTR)

用于与队列管理器进行身份验证的身份验证令牌地址。

这是一个输入字段。 在支持指针的编程语言中,该字段的初始值为空指针,否则为全空字节字符串。 如果 Version 小于 MQCSP_VERSION_3,则该字段将被忽略。

此字段适用于 IBM MQ MQI clients 连接到在 AIXLinux 系统上运行的 IBM MQ 队列管理器。

您可以使用 TokenOffsetTokenPtr 来指定身份验证令牌,但不能同时使用两个令牌。

[AIX][Linux]

TokenOffset (MQLONG)

这是认证令牌从 MQCSP 结构开始的偏移量(以字节为单位)。 偏移量可以是正值或负值。

这是一个输入字段。 该字段的初始值为 0。 如果 Version 小于 MQCSP_VERSION_3,则该字段将被忽略。

您可以使用 TokenOffsetTokenPtr 来指定标记,但不能同时使用这两种方式。 更多信息,请参阅TokenPtr字段的说明。

[AIX][Linux]

TokenLength (MQLONG)

这是用于与队列管理器进行身份验证的身份验证令牌长度。

身份验证令牌的最大长度为 MQ_CSP_TOKEN_LENGTH,即 8192 字节。 如果 TokenLength 超过允许的最大长度,则身份验证请求会以 MQRC_CSP_ERROR 失败。

这是一个输入字段。 该字段的初始值为 0。 如果 Version 小于 MQCSP_VERSION_3,则该字段将被忽略。