使用Http连接器/自定义逻辑应用连接器发送Cookie

时间:2020-06-05 00:46:40

标签: azure web-services session-cookies azure-logic-apps setcookie

我正在尝试从Azure Logic应用程序调用基于会话的Web服务,该服务要求身份验证请求中的会话ID以cookie的形式发送给实际请求。我能够成功地验证和接收会话ID,但是当我尝试在下一步中将其作为Cookie发送时,它不会成功。尝试了以下选项并获得了相应的答复:

  1. 使用HTTP连接器->给了我'Unresolvablehostname'
  2. 使用自定义逻辑应用程序连接器,选中本地网关并选择'http'选项-> SOAP Fault,查看目标日志后,我们可以看到Cookie为空。我尝试过在标头和参数中发送“ Cookie”,但没有运气。
  3. 使用自定义逻辑应用连接器,选中了本地网关并选择了“ https”选项->认证错误,并且我知道未配置https,因此无法正常工作。

我从SOAP UI尝试过,当我在请求的标头中发送cookie时,它可以工作。或者如果我在SOAP UI中选中“保持相同的会话”框。但是使用Logic App失败。 您能帮我如何从Logic App发送Cookie吗?尽管我在应用程序中进行了设置,但它在哪里丢失了?

2 个答案:

答案 0 :(得分:0)

通过Add new parameter下拉菜单,您可以启用一个写有Cookie的复选框,该复选框使您可以输入HTTP cookie(如果需要,可以输入动态内容)。您无法直接在下拉菜单中输入值,因此请在选中复选框后将其关闭,然后在“验证”字段下方看到一个神奇的Cookie字段。

enter image description here

更多信息,请点击此处:How to call an API with cookie authentication from a Logic App

答案 1 :(得分:0)

答案是:您只能将HTTP连接器用于已发布的服务。如果您尝试调用内部服务,则以下是Microsoft团队的回复。简而言之-HTTP连接器不使用网关,因此您无法建立连接,并且自定义连接器不支持Cookies。我将从下面选择选项4。希望这会有所帮助:

  1. HTTP操作不支持本地数据网关,因此无法解析主机名或IP,因为HTTP操作始终与公共网络对话。
  2. 如果可以使用自定义连接器连接到本地数据网关,则不会出现unresolvedhostname问题。但是,自定义连接器不支持Cookie身份验证,因此您无法通过它。
  3. 一种解决方法是使用应用程序网关来反向代理服务,并将您的本地服务器发布给公众。它就像一个VPN,您可以在逻辑应用程序中使用HTTP操作来建立连接。
  4. 另一个解决方法是尝试使用Function App通过Cookie发出HTTP请求