代理内部网络上的php页面以与Slack应用程序一起使用

代理内部网络上的php页面以与Slack应用程序一起使用,php,apache,proxy,slack-api,slack,Php,Apache,Proxy,Slack Api,Slack,我为我们的团队建立了一个团队 我能够创建一个应用程序,并使用它来授权应用程序 我的Slack应用程序在Slack中为频道添加 到目前为止还不错 Slash命令需要一个请求URL,该URL就是将接收Slash命令有效负载并可选地将响应发送回Slack通道的页面 这是rub,承载我需要用于请求URL的页面的服务器位于我们的内部网络上,并且只能通过我们的VPN访问 我们的主要网站可在 承载此页面的服务器位于,只有VPN上的用户才能访问该服务器(两者都是apache 2.4服务器) 任何不在VPN上请

我为我们的团队建立了一个团队

我能够创建一个应用程序,并使用它来授权应用程序

我的Slack应用程序在Slack中为频道添加

到目前为止还不错

Slash命令需要一个
请求URL
,该URL就是将接收Slash命令有效负载并可选地将响应发送回Slack通道的页面

这是rub,承载我需要用于
请求URL
的页面的服务器位于我们的内部网络上,并且只能通过我们的VPN访问

  • 我们的主要网站可在
  • 承载此页面的服务器位于,只有VPN上的用户才能访问该服务器(两者都是apache 2.4服务器)
  • 任何不在VPN上请求slack.example.com的人都会得到服务
  • 我不可能将php页面移动到可以在VPN之外访问的服务器上(它是无法移动的大型应用程序的一部分),但我可以添加一个php页面来为其提供服务
我在想,我可能可以在
example.com
中添加一个php页面,作为代理从
slack.com
接收消息,将消息传递到
slack.example.com
,然后从
slack.example.com
获取响应,并将该响应发送回
slack.com


这可能吗?如果可能的话,我会怎么做?我也对其他解决方案持开放态度,可能使用Apache进行代理?

我会在DMZ中的单独服务器上运行请求页面,作为内部应用程序服务器的代理。以下是简要说明:

  • 请求url(=请求页面)的php脚本需要可以被公共internet访问,以便Slack可以调用它。我会把它放在一个单独的服务器上,我会把那个服务器放在你们公司的非军事区。这通常是需要从外部访问的服务器的最佳位置,但也需要访问公司内部的服务器。请确保使用SSL和验证令牌来保护您的呼叫

  • 请求页面可以在小型服务器上运行,并且需要有一个Web服务器(例如apache)和php。如果您计划有更复杂的请求,您可能还需要一个数据库。它还需要运行SSL,因此您需要一个证书。如果is满足这些要求,您还可以将现有的Web服务器用于外部(example.com)

  • 请求页面需要访问您的应用程序服务器,例如通过VPN。它需要充当代理:从Slack接收请求,根据slash命令的细节向应用服务器发出请求,然后将信息返回Slack

  • 另一个要点是用户身份验证。我从您的问题中了解到,不是Slack团队中的所有用户都应该有权访问应用程序服务器,因此您的请求脚本需要有一种方法来区分哪些用户被允许访问,哪些用户不被允许访问。如果这些用户可以通过特定Slack组的成员身份来识别,这将是最简单的。在任何情况下,您都可能需要一个额外的bot,以确保将空闲用户映射到VPN用户


  • 我将在DMZ中的单独服务器上运行请求页面,作为内部应用程序服务器的代理。以下是简要说明:

  • 请求url(=请求页面)的php脚本需要可以被公共internet访问,以便Slack可以调用它。我会把它放在一个单独的服务器上,我会把那个服务器放在你们公司的非军事区。这通常是需要从外部访问的服务器的最佳位置,但也需要访问公司内部的服务器。请确保使用SSL和验证令牌来保护您的呼叫

  • 请求页面可以在小型服务器上运行,并且需要有一个Web服务器(例如apache)和php。如果您计划有更复杂的请求,您可能还需要一个数据库。它还需要运行SSL,因此您需要一个证书。如果is满足这些要求,您还可以将现有的Web服务器用于外部(example.com)

  • 请求页面需要访问您的应用程序服务器,例如通过VPN。它需要充当代理:从Slack接收请求,根据slash命令的细节向应用服务器发出请求,然后将信息返回Slack

  • 另一个要点是用户身份验证。我从您的问题中了解到,不是Slack团队中的所有用户都应该有权访问应用程序服务器,因此您的请求脚本需要有一种方法来区分哪些用户被允许访问,哪些用户不被允许访问。如果这些用户可以通过特定Slack组的成员身份来识别,这将是最简单的。在任何情况下,您都可能需要一个额外的bot,以确保将空闲用户映射到VPN用户

  • Apache拥有您可能能够利用的功能。Apache拥有您可能能够利用的功能。