Python请求授权通过tyk网关进行的应用程序api

时间:2019-03-14 11:15:23

标签: python python-requests tyk

我正在使用 python脚本(2.7.x)尝试通过tyk网关连接到第三方api 。终端 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令牌,那么请求将不会通过应用程序授权。

请提供解决方案。

谢谢

提前

1 个答案:

答案 0 :(得分:0)

来自Tyk的狮子座。

因此,基本上,您的上游受auth令牌保护,而您自己的API也受令牌保护。

如果您的第三方API具有静态api密钥,则可以将其作为全局标头嵌入到所有请求中: enter image description here

如果您有一个动态的第三方密钥,该密钥因用户而异,则可以将其嵌入到密钥元数据中,例如“ upstream_api_key”字段,并添加具有动态值的全局标头:“ $ tyk_meta.upstream_api_key” 。 enter image description here

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

希望有帮助!