0

我正在研究一个尝试通过 tyk gateway 连接到第三方 api 的 python 脚本(2.7.x)。最终api 需要在请求标头中有一个身份验证令牌,并且tyk 还需要在请求标头中存在自己的身份验证令牌

现在我面临的问题是:

当我尝试通过 tyk 向第三方应用程序发出请求时,应用程序无法识别标头中传递的身份验证令牌。 通过调试,我发现 tyk 没有将身份验证标头传递给应用程序。

我正在使用以下代码发出请求

request.post("https://myurl.com", 
   data={"data": data_a},
   headers={"Authorization": "Basic <TYK_TOKEN>, Bearer <APP_TOKEN> })

我尝试过的事情:

  • 尝试先传递应用令牌,然后传递 tyk 令牌,然后请求不会通过 tyk 授权。
  • 尝试在请求中单独传递应用令牌,则请求不会通过 tyk 授权。
  • 尝试在“Application-Authorization”标头下传递应用令牌,在“Authorization”标头下传递 tyk 令牌,则请求不会通过应用授权。

请提出解决方案。

谢谢

提前

4

1 回答 1

0

来自 Tyk 的 Leonid 在这里。

因此,基本上您的上游受身份验证令牌保护,您自己的 API 也受令牌保护。

如果您的第 3 方 API 具有静态 api 密钥,您可以将其作为全局标头嵌入到所有请求中: 在此处输入图像描述

如果你有一个动态的 3-rd party key,它因不同的用户而异,你可以将它嵌入到 Key 元数据中,例如,“upstream_api_key”字段,并添加具有动态值的全局头:“$tyk_meta.upstream_api_key”。 在此处输入图像描述

如果您的用户需要传递此令牌,并且您需要将其转发到上游,则 Tyk 和上游身份验证应该发生在不同的 HTTP 标头中。

希望能帮助到你!

于 2019-03-14T11:53:27.213 回答