本教程介绍如何定义和实施用于生成 JSON Web 令牌 (JWT) 的 REST API 定义。
关于本教程
在本教程中,您将完成以下课程:
- 生成 JWT
- 测试 REST API
注意: 沙盒目录必须配置为使用
DataPower® Gateway (v5 compatible) 或
DataPower API Gateway 或两者。 请参阅
创建和配置目录。
生成 JWT
创建 REST API 以生成并返回 JSON Web 令牌 (JWT)。
要添加并定义此 REST API,请完成以下步骤:
- 登录API管理器。
- 在“欢迎”页面中,单击开发 API 和产品磁贴。

- 单击。

- 确保 OpenAPI 3.0 被选中。
- 选择 " 新建 OpenAPI ",然后单击 " 下一步 "。

- 输入相应的信息以创建 REST API 定义。
- 在标题栏中输入 JWT 。
- 名称和基本路径字段分别使用术语 jwt 和 /jwt 自动填充。
- 版本字段自动填充为 1.0.0 。

- 单击下一步。
- 在 " 安全 "部分,单击 "下一步 "。

- 您将看到新建 API 的进度。 完成后,您将看到摘要信息。 点击编辑API。

- 在“设计”页面的侧边栏中,选择路径以显示路径面板。
- 单击添加 +。

- 在路径字段中输入 /gen。
- 单击添加。

- 向下滚动。 在参数部分,单击添加 +。

- 在参数名称字段中输入 iss-claim 。
- 从 " 所在位置 "列表中选择 header 。
- 在描述字段中输入 https://myidp.ibm.com 进行匹配。
- 选择必填复选框。
- 单击添加。

- 向下滚动。 在 “架构”部分 ,点击 “创建”

- 在类型列表中选择字符串。
- 单击添加。

- 创建参数后,点击保存。
- 添加第二个参数。 完成以下步骤:
- 在“设计”页面的侧边栏中,选择新创建的/gen路径下的 “参数”。
- 单击添加 +。

- 在参数名称字段中输入 aud-claim 。
- 从 " 所在位置 "列表中选择 header 。
- 在描述字段中输入 Enter ClientID1 进行匹配。
- 选择必填复选框。
- 单击添加。

- 向下滚动。 在 “架构”部分 ,点击 “创建 ”。

- 从类型列表中选择 string 。
- 单击添加。

- 创建第二个参数后,点击保存。
- 单击组件 > 响应。
- 单击添加。

- “回复”名称字段自动填充为 200 。
- 请在描述栏中输入 200 OK 。

- 单击添加。
- 创建回复后,点击保存。
- 选择网关选项卡。
- 将鼠标悬停在现有策略节点上,然后单击垃圾桶图标将其删除。

- 在 "操作 "中单击 " 设置变量 ",将操作添加到处理流程行。 将自动打开配置面板。
- 点击 “添加操作 ”。

- 在 “设置”字段中输入 hs256-key 。
- 从类型列表中选择 string 。
- 在价值栏中输入JWK。 以下是一个示例。 {
"alg": "HS256", "kty": "oct", "use": "sig", "k":
"o5yErLaE-dbgVpSw65Rq57OA9dHyaF66Q_Et5azPa-XUjbyP0w9iRWhR4kru09aFfQLXeIODIN4uhjElYKXt8n76jt0Pjkd2pqk4t9abRF6tnL19GV4pflfL6uvVKkP4weOh39tqHt4TmkBgF2P-gFhgssZpjwq6l82fz3dUhQ2nkzoLA_CnyDGLZLd7SZ1yv73uzfE2Ot813zmig8KTMEMWVcWSDvy61F06vs_6LURcq_IEEevUiubBxG5S2akNnWigfpbhWYjMI5M22FOCpdcDBt4L7K1-yHt95Siz0QUb0MNlT_X8F76wH7_A37GpKKJGqeaiNWmHkgWdE8QWDQ",
"kid": "hs256-key" }

- 关闭属性面板。 单击保存。
- 在 " 操作 "中,单击 " 生成 JWT ",将操作添加到设置变量图标后的处理流程行中。 将自动打开配置面板。
注意: 如果 "构建装配流程 "面板不可见,请单击设置变量附近的 + 以显示该面板。

- 请在 “发行人索赔” 一栏中输入 request.headers.iss-claim 。
- 请在观众索取栏中输入 request.headers.aud-claim 。
- 在 “JWK变量名称”字段中输入 hs256-key 。
- 从加密算法列表中选择 HS256 。

- 关闭属性面板。 单击保存。
- 从操作中单击 GatewayScript 将操作添加到生成 JWT 图标后的处理流程行中。 将自动打开配置面板。
- 输入以下代码:
var apim = require('apim');
apim.setvariable('message.body',apim.getvariable('generated.jwt'));

注意: 在添加 GatewayScript 操作时,可能会看到以下警告: This gatewayscript policy should not use the
apim module which is only for migrating old APIs. 您可以忽略此警告,继续前进。
- 关闭属性面板。 单击保存。
测试 REST API
备注: 由于跨源资源共享(CORS)的限制,在 macOS Catalina平台上,Chrome或Safari浏览器无法使用装配测试工具。
要测试 REST API,请完成以下步骤:
- 单击测试。
注意: 如果没有为目录配置任何网关,则无法测试 REST API,
测试选项卡下会显示错误消息。

- 单击目标配置 ,将自动发布设置为开。
- 单击保存首选项。 在 "测试 "选项卡中,API 状态显示为 " 联机 "。
- 在对应于 iss-claim参数的 值字段中输入 https://myidp.ibm.com 。
- 在 aud-claim参数对应的值字段中输入 ClientID1 。
- 单击发送。

- 响应包含生成的 JWT。

管理 API 定义
现在,您的新 API 已正常运行,您可以管理该 API 了。 要查看即时选项,请执行以下步骤。
- 单击导航栏上的 " 开发 "图标
。
- 单击 JWT API 旁边的选项图标
。
- 选择下载。
您在本教程中执行的操作
在本教程中,您完成了以下活动:
- 创建用于生成 JSON Web 令牌 (JWT) 的新 API 定义。
- 已测试新 API。