2
这个楼主还没有留下简介。
当前还没有回复,欢迎成为第一个参与讨论的人。
上一篇我们安装了 Ziti Admin Console(ZAC)。这篇继续使用本地 Quickstart 网络,在控制台中创建一个客户端身份,并授权它访问上一篇创建的 echo 服务。
开始前请确认:
echo 服务仍在运行。zitiLogin。在左侧导航栏打开 Identities,点击右上角的 +,创建身份:
zac-clientDeviceOne Time Tokenzac-demo-client保存后,在身份列表中找到 zac-client,下载它的 JWT 文件,并将文件放到 Ubuntu 终端当前目录,命名为 zac-client.jwt。
JWT 是注册用的一次性令牌,创建后 24 小时过期,成功注册后不能再次使用。请勿将它发布到公开帖子或代码仓库。官方身份文档介绍了 OTT 注册流程。
在左侧打开 Ziti Policies,切换到 Service Policies,点击 + 创建策略:
zac-client-dial-echoDial@echo@zac-clientHas Any Role这里的 @ 用来引用指定名称的对象;# 用来引用一组具有相同角色属性的对象。Dial 策略允许身份使用服务。官方 Service Policy 操作说明列出了这些字段。
仍在 Ziti Policies 中,切换到 Edge Router Policies,点击 + 创建策略:
zac-client-local-router@<本地 Edge Router 名称>@zac-clientHas Any Role将 <本地 Edge Router 名称> 换成你的实际路由器名称。可以在 ZAC 的 Edge Routers 页面查看,也可以用 CLI 查看:
bash"${ZITI_BIN_DIR-}/ziti" edge list edge-routers
Edge Router Policy 控制身份可以通过哪些路由器进入网络。更多说明见官方 Edge Router Policy 文档。
服务也需要被授权使用 Edge Router。在 Ziti Policies → Service Edge Router Policies 中,检查是否已经有策略将 echo 服务关联到刚才使用的本地路由器。
上一篇如果已经创建了这条策略,可以直接沿用。如果没有,点击 + 创建:
echo-local-router@echo@<本地 Edge Router 名称>Has Any Role在 Ubuntu 终端中,用下载的 JWT 注册身份,生成客户端身份文件:
bash"${ZITI_BIN_DIR-}/ziti" edge enroll \
-j zac-client.jwt \
-o zac-client.json
检查新身份是否有访问 echo 的条件:
bash"${ZITI_BIN_DIR-}/ziti" edge policy-advisor identities -q zac-client echo
然后运行 Echo 客户端:
bash"${ZITI_BIN_DIR-}/ziti" demo ziti-echo-client \
--identity zac-client.json \
trees are tall
客户端收到 Echo 响应后,就完成了从 ZAC 创建身份、配置授权并验证访问的流程。
客户端能否访问服务,取决于三项授权是否匹配:身份对服务有 Dial 权限、身份可以使用某台 Edge Router、服务也可以通过这台路由器提供访问。ZAC 可以用来创建和查看这些对象;CLI 则可以继续用于注册身份和验证连通性。
相关操作可参考官方的 Service Policy、Edge Router Policy和 Service Edge Router Policy文档。