我为我们的团队建立了Slack App。
我能够创建Slack Button并使用它来oauth.access
授权应用My Slack App为Slack中的频道添加Slash Command
到目前为止一切顺利。
Slash命令需要Request URL
,它只是接收斜杠命令有效负载的页面,并且可选地将响应发送回Slack通道。
在这里,托管我需要用于Request URL
的网页的服务器位于我们的内部网络上,只有我们VPN上的用户才能访问。< / p>
我认为我可以向example.com
添加一个php页面,该页面可以作为代理接收来自slack.com
的邮件,并将其传递给slack.example.com
然后获取来自slack.example.com
的回复并将该回复发送回slack.com
。
这是可能的,如果可以的话,我该怎么做呢?我也可以使用其他解决方案,可能使用Apache进行代理吗?
答案 0 :(得分:2)
我会在您的DMZ中的单独服务器上运行请求页面,作为内部应用程序服务器的代理。以下是简要说明:
请求网址(=请求页面)的php脚本需要可供公共互联网访问,以便Slack可以调用它。我会把它放在一个单独的服务器上,我会将该服务器放在你公司的DMZ中。这通常是需要从外部访问的服务器的最佳位置,但也需要访问公司内部的服务器。请务必使用SSL和验证令牌来保护您来自Slack的电话。
请求页面可以在小型服务器上运行,需要有一个web服务器(例如apache)和php。如果您计划拥有更复杂的请求,则可能还需要一个数据库。它还需要运行SSL,因此您需要一个证书。如果符合这些要求,您也可以将现有的网络服务器用于外部(example.com)。
请求页面需要有权访问您的应用程序服务器,例如:通过VPN。它需要作为代理运行:从Slack接收请求,根据slash命令的细节向应用服务器发出请求,然后将信息返回给Slack。
另一个重点是用户身份验证。我从您的问题中读到,Slack团队中的所有用户都不应该访问应用程序服务器,因此您的请求脚本需要有一种方法来区分哪些用户可以访问,哪些不允许访问。如果这些用户可以通过特定Slack组的成员身份来识别,那将是最简单的。在任何情况下,您可能都需要一个额外的机器人来确保Slack用户映射到VPN用户。