Skip to content

如何将审批等外发页面嵌入到飞书等外网工具

wuzhi-dev edited this page Mar 15, 2024 · 6 revisions

TIPS:暴露服务到外网请注意范围并做好安全防范措施

一、 确认Octomation所在环境

Octomation以下简称soar,这里需要确认soar部署的环境是内网还是外网,外链审批无论是通过钉钉还是邮件,都是由soar拼接的一个审批系统链接,需要确保该链接可以被外网调用到。以下以阿里云环境为例

image

这种情况下,外网无法直接访问到soar,所以需要在公有云上新建对应的流量入口,这里的流量入口可以是负载均衡(SLB),也可以是自建的nginx服务器。只要可以对外提供流量入口即可。

二、 设置转发规则

这里以阿里云SLB为例,在阿里云的CLB控制台,新建对应的SLB(创建SLB过程忽略,可以自行查找阿里云),进入slb的配置页面,找到https的配置(这里推荐使用https协议)

image

注意,由于阿里云CLB的协议转发限制,在外网协议转发的时候只能通过https协议转至内网的http协议。

image

所以即便在slb中配置后端虚拟服务器为443的https端口,也会以http协议去请求,如果遇到以下请求报错,则是这个原因

image

要解决上面问题,需要更改soar内部nginx的配置规则,在slb中转发至soar的http80端口,具体配置更改在下一节叙述。 slb转发推荐使用新增一个二级域名的转发配置,因为soar中不仅有接口还有很多静态文件,相对路径比较多,建议使用二级域名进行全端口转发,如下:

image

三、 修改Octomation中Nginx配置

soar中有nginx,在wuzhizhineng/shakespeare-static这个docker服务内部
image 通过docker exec命令进入该容器

docker exec -it shakespeare-static /bin/bash

nginx的conf路径在/etc/nginx/conf.d/

image

首先将honeyguide_80.conf改名为honeyguide_80.conf.bak,默认情况下访问80端口会自动跳转至https 443端口 进入honeyguide.conf,修改以下规则
image image

这里注释掉

proxy_cookie_path / "/; Secure";

启用

proxy_cookie_path / "/";

以下为安全规则的解释说明
image

改完之后保存,执行nginx -s reload 使之生效。

四、 配置剧本中外链审批规则

image

外链域名访问接口配置完成后,即可在soar的系统设置中配置外链域名地址
image

此时,对接钉钉、邮件,都可以在不用内网环境的时候执行外链!

本页wiki由用户@King 贡献。感谢对Octomation社区的支持。