VERIFY TOKEN

验证 Kerberos 令牌是否有效 (由外部安全性管理器确定) ,并 (可选) 允许调用者抽取与 Kerberos 令牌中的主体相关联的 RACF® 用户标识。

VERIFY TOKEN

读取语法图跳过可视语法图VERIFY TOKEN( data-area)TOKENLEN( data-value)TOKENTYPE(CVDA)KERBEROSISUSERID(data-area)BITDATATYPE(CVDA)BASE64?ENCRYPTKEY(data-area) OUTTOKEN(ptr-引用)OUTTOKENLEN(data-area)ESMRESP(data-area)ESMREASON(data-area)

条件: INVREQ , LENGERR 和 NOTAUTH

此命令是线程安全的。

描述

使用 VERIFY TOKEN 命令验证 Kerberos 令牌是否有效 (由外部安全性管理器确定)。 该命令 (可选) 返回与令牌关联的 Kerberos 主体的用户标识。 如果 Kerberos 令牌指示正在使用相互认证,那么该命令将返回 Kerberos 输出令牌。

VERIFY TOKEN 命令使用 z/OS® Security Server 来验证令牌是否是有效的 Kerberos 令牌,以及该令牌是否可由 CICS® 区域使用。 如果指定了 ISUSERID ,那么将获取令牌的 Kerberos 主体的用户标识。

VERIFY TOKEN 命令不依赖于主体设施。 因此,可以在非终端环境中发出此消息,例如,为 Web Service 提供认证。

如果外部安全性管理器是 RACF,那么运行命令的 CICS 区域必须由 RACF 授权,以便可以获取令牌的 Kerberos 主体。 有关更多信息,请参阅 为 Kerberos配置 RACF。 无论是否指定了 ISUSERID ,都需要此 RACF 授权。

如果指定了 ENCRYPTKEY ,那么 TOKEN 必须是从支持消息机密性的安全性令牌服务获取的 Kerberos 令牌。
注: 指定 ENCRYPTKEY 时,将使用 z/OS Security Server RACF Callable Services > R_GenSec 函数代码 2 GSS-API > 接受 GSS-API 安全上下文来调用 RACF 之类的外部安全管理器。 可以对特定 Kerberos 令牌调用此 R_Gensec 子函数一次。 因此,可以对特定 Kerberos 令牌调用带有 ENCRYPTKEY 选项的 VERIFY TOKEN 命令一次。

如果 TOKEN 是指示正在使用相互认证的 Kerberos 令牌,那么必须指定 OUTTOKENOUTTOKENLEN 选项。 在此情况下, OUTTOKEN 将返回从外部安全性管理器 (例如 z/OS Security Server) 获取的输出令牌, OUTTOKENLEN 将返回输出令牌的长度。 调用程序应该将输出令牌返回到提供了 Kerberos 令牌的系统,以允许对 CICS 区域进行认证。

如果 TOKEN 是未指示正在使用相互认证的 Kerberos 令牌,并且如果指定了 OUTTOKENOUTTOKENLEN ,那么这些选项中返回的值为零。

注: 指定 OUTTOKEN 时,同一长时间运行的任务不能重复使用 VERIFY TOKEN 命令。 当任务终止时,将释放用于输出令牌的存储器。

有关此命令的安全性故障的更多信息,请参阅写入目标 CSCS 的错误消息。

选项

数据类型
指定 TOKEN 和 OUTTOKEN 选项中的数据类型。 CVDA 值如下:
BIT
位数据。 这是缺省值。
BASE64

Base64 编码的字符数据。 可接受的字符为 A-Z a-z 0-9 +/=。

如果您的字符数据不是美国 EBCDIC 兼容字符 CCSID ,那么必须对其进行转换。 您可以使用 CONTAINER API 来执行转换。

ENCRYPTKEY (数据区)
这是用于对返回的 PassTicket进行加密的 4 字节令牌。
ESMREASON (data-area)
在全字二进制字段中返回 CICS 从外部安全管理器接收的原因码。

如果外部安全性管理器是 RACF,那么此字段是 RACF 原因码。

如果外部安全管理器是 RACF,并且使用了 ENCRYPTKEY ,那么可能的值为 z/OS Security Server RACF Callable Services > R_GenSec 函数代码 2 GSS-API > 接受 GSS-API 安全上下文提供的 RACF 原因码。 请参阅 z/OS Security Server RACF Callable Services 中的子功能代码。 有关原因码的说明,请参阅 R_GenSec 返回码和原因码 z/OS Security Server RACF Callable Services z/OS Integrated Security Services Network Authentication Service Administration中的状态码。

外部安全性管理器不会始终向 CICS返回响应和原因码。 确保除了检查 ESMRESP 和 ESMREASON 值外,还检查此命令返回的 EIBRESP 和 EIBRESP2 值。

ESMRESP (数据区)
在全字二进制字段中返回 CICS 从外部安全管理器接收的响应代码。

如果外部安全性管理器是 RACF,那么此字段是 RACF 返回码。

外部安全性管理器不会始终向 CICS返回响应和原因码。 确保除了检查 ESMRESP 和 ESMREASON 值外,还检查此命令返回的 EIBRESP 和 EIBRESP2 值。

ISUSERID (数据区)
返回与令牌关联的 Kerberos 主体的 8 字节用户标识。
OUTTOKEN (ptr-ref)
返回从外部安全性管理器获取的输出令牌的 31 位用户密钥存储器中的地址。
OUTTOKENLEN (数据区)
在最大值为 1024 的全字二进制字段中返回输出令牌的长度。
TOKEN (数据区)
从安全性令牌服务 (STS) 获取的令牌。
TOKENLEN (data-value)
作为全字二进制值的令牌的长度。
TOKENTYPE (cvda)
指示令牌的类型。
KERBEROS
该令牌是 Kerberos 令牌。

条件

16 INVREQ
RESP2 值如下所示:
13
外部安全管理器在 ESMRESP中发出未知返回码。
18
未初始化 CICS 外部安全性管理器接口。
29 日
外部安全管理器未响应。
31 日
TOKENTYPE指定了非 KERBEROS 的 CVDA 值。
32
DATATYPE指定了除 BASE64BIT 以外的 CVDA 值。
36
指定了数据类型 BASE64 ,但 TOKEN 不包含 BASE64 数据。
40
密钥分发中心未启动或正在终止。
41
密钥分发中心未响应。
47
外部安全性管理器没有为与令牌关联的 Kerberos 主体定义用户标识。
50
TOKEN 中指定的数据不是 Kerberos 令牌。
51
Kerberos 令牌不支持消息机密性。
52
Kerberos 令牌指示正在使用相互认证,但尚未在命令中指定 OUTTOKENOUTTOKENLEN
22 LENGERR
RESP2 值如下所示:
45
Kerberos 令牌的长度超过最大值 65535。
缺省操作: 异常终止任务。
70 NOTAUTH
RESP2 值如下所示:
20

外部安全性管理器未授权请求验证令牌。 请参阅写入目标 CSCS 的错误消息。

42
由于关联的凭单已到期,因此无法完成 Kerberos 请求。
43
认证程序已到期。

缺省操作: 异常终止任务。