![[AIX]](ngaix.gif)
![[MQ 9.4.0 2024 年 6 月]](ng940.gif)
![[Linux]](nglinux.gif)
qm.ini 文件的 AuthToken 节
使用 AuthToken 节来配置队列管理器,以验证由连接应用程序提供的认证令牌。 如果您的认证服务支持 JWKS 端点进行密钥配置,那么这通常是首选选项。
有关更多信息,请参阅 配置队列管理器以使用 JWKS 端点接受认证令牌 。
AuthToken 节
- KeyStore=string
- 包含可信签发者的公用密钥证书和对称密钥的密钥库的文件路径。 您可以将密钥添加到现有密钥库或创建新的密钥库。 有关更多信息,请参阅 配置队列管理器以接受认证令牌。 队列管理器使用密钥库中的密钥来验证应用程序提供的认证令牌是否由可信签发者签名。
- KeyStorePwdFile=string
- 包含密钥库的加密密码的文件的文件路径。 该文件必须包含作为单行文本的加密密码。 不接受纯文本密码。
- CertLabel=string
- 密钥库中用于验证认证令牌的公用密钥证书或对称密钥的证书标签。 通过重复 CertLabel 属性,最多可以提供 32 个证书标签。
- UserClaim=string
- 在包含队列管理器用于授权检查的用户标识的令牌中声明。
- AllowOSGroups=NO(默认)|YES
- 缺省值为 no。 确定是否将令牌中采用的身份视为操作系统 (OS) 用户,以及在授权期间是否接受匹配操作系统用户的组成员资格。
- AllowOSGroups=NO|N
- 授权检查仅基于从令牌采用的用户的名称。
- AllowOSGroups=YES|Y
- 授权检查基于用户的名称,并且还会检查他们可能属于的组。
示例节-仅认证
此节仅包含 AllowOSGroups 属性是有效的。 但是,如果包含本地密钥库配置,那么必须至少包含以下内容:
- KeyStore 文件路径,以及
- CertLabel 名称。
AuthToken:
KeyStore=/var/mqm/qmgrs/qmgrs/qm1/tokenissuer/key.kdb
CertLabel=token
... up to 32 CertLabel fields如果仅包含两个最小参数,那么:
- 隐藏文件 key.sth 必须与加密的密钥库密码一起存在,因此密钥库密码文件不是必需的。
- 令牌不包含要传递到 IBM MQ 以进行授权的用户名。 应用程序可以连接并进行认证,但必须有不同的机制来提供授权,以便应用程序在连接后执行工作。
- 您的队列管理器将置于 UserExternal 方式,这意味着运行队列管理器的操作系统上不存在的用户可以用于认证。
- 即使未在 AuthToken qm.ini 节中包含 AllowOSGroups 选项,缺省值也设置为 No。 因此,如果包含 UserClaim 但未指定 AllowOSGroups=Yes,那么不会在运行队列管理器的操作系统上针对其可能属于的组检查用于授权的令牌用户。
示例节-认证和授权
您可以定义所有 AuthToken 参数:
- KeyStore 文件路径,
- KeyStorePwdFile 文件路径,
- CertLabel 名称,
- UserClaim 名称和
- AllowOSGroups 选项。
AuthToken:
KeyStore=/var/mqm/qmgrs/qmgrs/QMJWT/ssl/key.kdb
KeyStorePwdFile=/var/mqm/qmgrs/QMJWT/ssl/key.pw
CertLabel=token
CertLabel=rsakey
CertLabel=mark
... up to 32 CertLabel fields
UserClaim=AppUser
AllowOSGroups=Y
如果包含所有可用参数,那么:
- 使用 runqmcred 命令对密钥库的密码进行加密。 将其保存在文件中,然后在 AuthToken 节中包含文件路径。
- 认证令牌用户声明中的用户名用于认证和授权。
- 令牌用户可能作为运行队列管理器的操作系统上的用户存在。
- 您定义了用于启用用户检查的认证信息对象。
- 根据通道认证或 MCA 规则,设置通道认证记录以采用有权与 IBM MQ 对象进行交互的用户。