MQCSP-安全性参数

IBM® MQ 连接安全性参数结构由应用程序用于将 MQCONNX 调用上的认证信息流至队列管理器。 您还可以使用它来提供用于加密敏感数据的 IBM MQ 密码保护系统的初始密钥。

AuthenticationType 设置为 MQCSP_AUTH_USER_ID_AND_PWD 以包含 V 1 中的用户标识和密码。

在提供版本为 2 的初始密钥信息时, AuthenticationType 缺省为 MQCSP_AUTH_NONE

[MQ 9.3.4 2023 年 10 月]IBM MQ 9.3.4开始,使用 AuthenticationType 以包含认证令牌信息。

[MQ 9.3.4 2023 年 10 月]可以使用 MQCSP_AUTH_USER_ID_AND_PWDMQCSP_AUTH_ID_TOKEN,但不能同时使用两者。

警告: 在某些情况下,将通过网络以明文形式发送客户机应用程序的 MQCSP 结构中的密码 或认证令牌 。 要确保相应保护客户机应用程序密码 和认证令牌 ,请参阅 MQCSP 密码保护

可用性

MQCSP 结构在所有受支持的 IBM MQ 平台上都可用。

版本

为受支持的编程语言提供的头 COPY 和 INCLUDE 文件包含最新版本的 MQCSP ,但 Version 字段的初始值设置为 MQCSP_VERSION_1。 要使用 version-1 结构中不存在的字段,应用程序必须将 Version 字段设置为所需的版本号。

字符集和编码

MQCSP 中的数据必须采用本地队列管理器的字符集和编码,这些数据分别由 CodedCharSetId 队列管理器属性和 MQENC_NATIVE 提供。

字段

注: 在下表中,字段按用法 (而不是按字母顺序) 进行分组。 子主题遵循相同的顺序。
表 1. MQCSP 的 MQCSP 中的字段
字段名称和描述 常量的名称 常量的初始值 (如果有)
StrucId (结构标识) MQCSP_结构ID 'CSP¬'
版本 (结构版本号) MQCSP_VERSION_1 1
AuthenticationType (认证类型) None MQCSP_AUTH_NONE
Reserved1 (对于 IBM i上的指针对齐是必需的) None 空字符串或空白
CSPUserIdPtr(用户 ID 地址) None 空指针或空字节
CSPUserIdOffset(用户 ID 偏移量) None 0
CSPUserIdLength(用户 ID 长度) None 0
Reserved2 (对于 IBM i上的指针对齐是必需的) None 空字符串或空白
CSPPasswordPtr (密码的地址) None 空指针或空字节
CSPPasswordOffset (密码的偏移量) None 0
CSPPasswordLength (密码长度) None 0
注: 如果 Version 小于 MQCSP_VERSION_2,那么将忽略其余字段。
[MQ 9.3.0 2022 年 6 月][MQ 9.3.0 2022 年 6 月]Reserved3 ( IBM i上的指针对齐所必需) None 空字符串或空白
[MQ 9.3.0 2022 年 6 月][MQ 9.3.0 2022 年 6 月]InitialKeyPtr None 空指针或空白
[MQ 9.3.0 2022 年 6 月][MQ 9.3.0 2022 年 6 月]InitialKeyOffset(密码保护系统初始密钥的偏移量) None 0
[MQ 9.3.0 2022 年 6 月]'[MQ 9.3.0 2022 年 6 月]InitialKeyLength长度(密码保护系统的初始密钥长度) None 0
注: 如果 Version 小于 MQCSP_VERSION_3,那么将忽略其余字段。
[MQ 9.3.4 2023 年 10 月]Reserved4 ( IBM i上的指针对齐所必需) None 空字符串或空白
[MQ 9.3.4 2023 年 10 月]TokenPtr (认证令牌的地址) None 空指针或空白
[MQ 9.3.4 2023 年 10 月]TokenKeyOffset(验证令牌偏移量) None 0
[MQ 9.3.4 2023 年 10 月]TokenLength (认证令牌的长度) None 0
注:
  1. 符号 ¬ 表示单个空白字符。
  2. 在 C 编程语言中,宏变量 MQCSP_DEFAULT 包含表中列出的值。 它可以通过以下方式用于为结构中的字段提供初始值:
    MQCSP MyCSP = {MQCSP_DEFAULT};
    

语言声明

MQCSP 的 C 声明

[MQ 9.3.0 2022 年 6 月][MQ 9.3.0 2022 年 6 月]

typedef struct tagMQCSP MQCSP;
struct tagMQCSP {
  MQCHAR4    StrucId;            /* Structure identifier */
  MQLONG     Version;            /* Structure version number */
  MQLONG     AuthenticationType; /* Type of authentication */
  MQBYTE4    Reserved1;          /* Required for IBM i pointer alignment */
  MQPTR      CSPUserIdPtr;       /* Address of user ID */
  MQLONG     CSPUserIdOffset;    /* Offset of user ID */
  MQLONG     CSPUserIdLength;    /* Length of user ID */
  MQBYTE8    Reserved2;          /* Required for IBM i pointer alignment */
  MQPTR      CSPPasswordPtr;     /* Address of password */
  MQLONG     CSPPasswordOffset;  /* Offset of password */
  MQLONG     CSPPasswordLength;  /* Length of password */
/* Ver:1 */

  MQBYTE8    Reserved3;          /* Required for IBM i pointer alignment */
  MQPTR      InitialKeyPtr;      /* Address of initial key */
  MQLONG     InitialKeyOffset;   /* Offset of initial key */
  MQLONG     InitialKeyLength;   /* Length of initial key */
/* Ver:2 */
  };
[MQ 9.3.4 2023 年 10 月]

typedef struct tagMQCSP MQCSP;
struct tagMQCSP {
  MQCHAR4    StrucId;            /* Structure identifier */
  MQLONG     Version;            /* Structure version number */
  MQLONG     AuthenticationType; /* Type of authentication */
  MQBYTE4    Reserved1;          /* Required for IBM i pointer alignment */
  MQPTR      CSPUserIdPtr;       /* Address of user ID */
  MQLONG     CSPUserIdOffset;    /* Offset of user ID */
  MQLONG     CSPUserIdLength;    /* Length of user ID */
  MQBYTE8    Reserved2;          /* Required for IBM i pointer alignment */
  MQPTR      CSPPasswordPtr;     /* Address of password */
  MQLONG     CSPPasswordOffset;  /* Offset of password */
  MQLONG     CSPPasswordLength;  /* Length of password */
/* Ver:1 */

  MQBYTE8    Reserved3;          /* Required for IBM i pointer alignment */
  MQPTR      InitialKeyPtr;      /* Address of initial key */
  MQLONG     InitialKeyOffset;   /* Offset of initial key */
  MQLONG     InitialKeyLength;   /* Length of initial key */
/* Ver:2 */

  MQBYTE8    Reserved4;          /* Required for IBM i pointer alignment */
  MQPTR      TokenPtr;           /* Address of token */
  MQLONG     TokenOffset;        /* Offset of token */
  MQLONG     TokenLength;        /* Length of token */
/* Ver:3 */
  };

COBOL MQCSP声明

[MQ 9.3.0 2022 年 6 月][MQ 9.3.0 2022 年 6 月]

**   MQCSP structure
  10 MQCSP.
**    Structure identifier
   15 MQCSP-STRUCID           PIC X(4).
**    Structure version number
   15 MQCSP-VERSION           PIC S9(9) BINARY.
**    Type of authentication
   15 MQCSP-AUTHENTICATIONTYPE PIC S9(9) BINARY.
**    Required for IBM i pointer alignment
   15 MQCSP-RESERVED1         PIC X(4).
**    Address of user ID
   15 MQCSP-CSPUSERIDPTR      POINTER.
**    Offset of user ID
   15 MQCSP-CSPUSERIDOFFSET   PIC S9(9) BINARY.
**    Length of user ID
   15 MQCSP-CSPUSERIDLENGTH   PIC S9(9) BINARY.
**    Required for IBM i pointer alignment
   15 MQCSP-RESERVED2         PIC X(4).
**    Address of password
   15 MQCSP-CSPPASSWORDPTR    POINTER.
**    Offset of password
   15 MQCSP-CSPPASSWORDOFFSET PIC S9(9) BINARY.
**    Length of password
   15 MQCSP-CSPPASSWORDLENGTH PIC S9(9) BINARY.
** Ver:1 **

**    Reserved
   15 MQCSP-RESERVED3         PIC X(8).
**    Address of initial key
   15 MQCSP-INITIALKEYPTR     POINTER.
**    Offset of initial key
   15 MQCSP-INITIALKEYOFFSET  PIC S9(9) BINARY.
**    Length of initial key
   15 MQCSP-INITIALKEYLENGTH  PIC S9(9) BINARY.
** Ver:2 **
[MQ 9.3.4 2023 年 10 月]

**   MQCSP structure
  10 MQCSP.
**    Structure identifier
   15 MQCSP-STRUCID           PIC X(4).
**    Structure version number
   15 MQCSP-VERSION           PIC S9(9) BINARY.
**    Type of authentication
   15 MQCSP-AUTHENTICATIONTYPE PIC S9(9) BINARY.
**    Required for IBM i pointer alignment
   15 MQCSP-RESERVED1         PIC X(4).
**    Address of user ID
   15 MQCSP-CSPUSERIDPTR      POINTER.
**    Offset of user ID
   15 MQCSP-CSPUSERIDOFFSET   PIC S9(9) BINARY.
**    Length of user ID
   15 MQCSP-CSPUSERIDLENGTH   PIC S9(9) BINARY.
**    Required for IBM i pointer alignment
   15 MQCSP-RESERVED2         PIC X(4).
**    Address of password
   15 MQCSP-CSPPASSWORDPTR    POINTER.
**    Offset of password
   15 MQCSP-CSPPASSWORDOFFSET PIC S9(9) BINARY.
**    Length of password
   15 MQCSP-CSPPASSWORDLENGTH PIC S9(9) BINARY.
** Ver:1 **

**    Reserved
   15 MQCSP-RESERVED3         PIC X(8).
**    Address of initial key
   15 MQCSP-INITIALKEYPTR     POINTER.
**    Offset of initial key
   15 MQCSP-INITIALKEYOFFSET  PIC S9(9) BINARY.
**    Length of initial key
   15 MQCSP-INITIALKEYLENGTH  PIC S9(9) BINARY.
** Ver:2 **

**    Reserved
   15 MQCSP-RESERVED4         PIC X(8).
**    Address of token
   15 MQCSP-TOKENPTR     POINTER.
**    Offset of token
   15 MQCSP-TOKENOFFSET  PIC S9(9) BINARY.
**    Length of token
   15 MQCSP-TOKENLENGTH  PIC S9(9) BINARY.
** Ver:3 **

PL/I MQCSP声明

[MQ 9.3.0 2022 年 6 月][MQ 9.3.0 2022 年 6 月]

dcl
 1 MQCSP based,
  3 StrucId           char(4),       /* Structure identifier */
  3 Version           fixed bin(31), /* Structure version number */
  3 AuthenticationType fixed bin(31),  /* Type of authentication */
  3 Reserved1         char(4),       /* Required for IBM i pointer
                                        alignment */
  3 CSPUserIdPtr      pointer,       /* Address of user ID */
  3 CSPUserIdOffset   fixed bin(31), /* Offset of user ID */
  3 CSPUserIdLength   fixed bin(31), /* Length of user ID */
  3 Reserved2         char(8),       /* Required for IBM i pointer
                                        alignment */
  3 CSPPasswordPtr    pointer,       /* Address of password */
  3 CSPPasswordOffset fixed bin(31), /* Offset of user ID */
  3 CSPPasswordLength fixed bin(31), /* Length of user ID */
/* Version 1 */                                                     

  3 Reserved3         char(8),       /* Reserved */              
  3 InitialKeyPtr     pointer,       /* Address of initial key */
  3 InitialKeyOffset  fixed bin(31), /* Offset of initial key */ 
  3 InitialKeyLength  fixed bin(31); /* Length of initial key */ 
/* Version 2 */
[MQ 9.3.4 2023 年 10 月]

dcl
 1 MQCSP based,
  3 StrucId           char(4),       /* Structure identifier */
  3 Version           fixed bin(31), /* Structure version number */
  3 AuthenticationType fixed bin(31),  /* Type of authentication */
  3 Reserved1         char(4),       /* Required for IBM i pointer
                                        alignment */
  3 CSPUserIdPtr      pointer,       /* Address of user ID */
  3 CSPUserIdOffset   fixed bin(31), /* Offset of user ID */
  3 CSPUserIdLength   fixed bin(31), /* Length of user ID */
  3 Reserved2         char(8),       /* Required for IBM i pointer
                                        alignment */
  3 CSPPasswordPtr    pointer,       /* Address of password */
  3 CSPPasswordOffset fixed bin(31), /* Offset of user ID */
  3 CSPPasswordLength fixed bin(31), /* Length of user ID */
/* Version 1 */                                                     

  3 Reserved3         char(8),       /* Reserved */              
  3 InitialKeyPtr     pointer,       /* Address of initial key */
  3 InitialKeyOffset  fixed bin(31), /* Offset of initial key */ 
  3 InitialKeyLength  fixed bin(31); /* Length of initial key */ 
/* Version 2 */

  3 Reserved4         char(8),       /* Reserved */              
  3 TokenPtr          pointer,       /* Address of Token */
  3 TokenOffset       fixed bin(31), /* Offset of Token */ 
  3 TokenLength       fixed bin(31); /* Length of Token */ 
/* Version 3 */

MQCSP 的 Visual Basic 声明

Type MQCSP
  StrucId           As String*4   'Structure identifier'
  Version           As Long       'Structure version number'
  AuthenticationType As Long      'Type of authentication'
  Reserved1         As MQBYTE4    'Required for IBM i pointer'
                                  'alignment'
  CSPUserIdPtr      As MQPTR      'Address of user ID'
  CSPUserIdOffset   As Long       'Offset of user ID'
  CSPUserIdLength   As Long       'Length of user ID'
  Reserved2         As MQBYTE8    'Required for IBM i pointer'
                                  'alignment'
  CSPPasswordPtr    As MQPTR      'Address of password'
  CSPPasswordOffset As Long       'Offset of password'
  CSPPasswordLength As Long       'Length of password'
End Type