MQZIC-身份上下文

MQZIC 结构用于 IdentityContext 参数的 MQZ_AUTHENTICATE_USER 调用。

MQZIC 结构包含身份上下文信息,用于标识首先将消息放入队列的应用程序的用户:
  • 队列管理器使用标识用户的名称填充 UserIdentifier 字段,队列管理器执行此操作的方式取决于运行应用程序的环境。
  • 队列管理器在 AccountingToken 字段中填充从放置消息的应用程序中确定的令牌或数字。
  • 应用程序可将 ApplIdentityData 字段用于包含任何有关用户的额外信息(例如加密密码)。
经过适当授权的应用程序可以使用 MQZ_AUTHENTICATE_USER 函数来设置身份上下文。

IBM® MQ for Windows下创建消息时, Windows 系统安全标识 (SID) 存储在 AccountingToken 字段中。 SID 可用于补充 UserIdentifier 字段和建立用户的凭证。

表 1. 汇总结构中的字段。
表 1. MQZIC 中的字段
字段 描述
StrucId 结构标识
版本 版本
UserIdentifier 用户标识
AccountingToken 记帐标记
ApplIdentityData 应用程序标识数据

字段

StrucId
类型: MQCHAR4 -输入
结构标识。 值如下所示:
MQZIC_结构ID
身份上下文结构的标识。 对于 C 编程语言,还定义了常量 MQZIC_STRUC_ID_ARRAY; 此值与 MQZIC_STRUC_ID 相同,但是字符数组而不是字符串。
版本
类型 :MQLONG-输入
结构版本号。 值如下所示:
MQZIC_VERSION_1
Version-1 身份上下文结构。
以下常量指定当前版本的版本号:
mqzic_current_version
当前版本的身份上下文结构。
UserIdentifier
类型: MQCHAR12 -输入

用户标识。 这是消息的身份上下文的一部分。 UserIdentifier 指定发出消息的应用程序的用户标识。 队列管理器将此信息视为字符数据,但不定义其格式。 有关 UserIdentifier 字段的更多信息,请参阅 UserIdentifier (MQCHAR12)

AccountingToken
类型: MQBYTE32 -输入

记帐标记。 这是消息的身份上下文的一部分。 AccountingToken 允许应用程序将由于消息而完成的工作相应地收费。 队列管理器将此信息视为位字符串,并且不检查其内容。 有关 AccountingToken 字段的更多信息,请参阅 AccountingToken (MQBYTE32)

ApplIdentityData
类型: MQCHAR32 -输入

与身份相关的应用程序数据。 这是消息的身份上下文的一部分。 ApplIdentityData 是由应用程序套件定义的信息,可用于提供有关信息来源的附加信息。 例如,它可以由使用适当用户权限运行的应用程序设置,以指示身份数据是否可信。 有关 ApplIdentityData 字段的更多信息,请参阅 ApplIdentityData (MQCHAR32)

C 声明

typedef struct tagMQZED MQZED;
struct tagMQZED {
  MQCHAR4   StrucId;          /* Structure identifier */
  MQLONG    Version;          /* Structure version number */
  MQCHAR12  UserIdentifier;   /* User identifier */
  MQBYTE32  AccountingToken;  /* Accounting token */
  MQCHAR32  ApplIdentityData; /* Application data relating to identity */
};