问题标签 [tyk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
58 浏览

tyk - 用于 OAuth2 流的 Tyk 通知(同步或异步)

我正在将 Tyk 用于 Java EE 应用程序。

在我的配置中,我正在实现一个 OAuth2 流程,它将通知我的系统在数据库中保存一些关于 Tyk 生成的访问令牌的信息。

我在问这个 Post 通知是同步的还是异步的?如果它是异步的,是否需要更改配置以使其同步?

在 Tyk 文档(https://tyk.io/docs/tyk-rest-api/api-definition-object-details)中,有:

通知:当 Tyk 实现 OAuth2 流程时,因为一旦授权码发出后它会代表你处理访问请求,它需要通知你的系统这些已经发生。它将 POST 关键数据到这些选项中设置的 URL,以确保您的系统与 Tyk 同步。

Notifications.shared_secret:发布到您的服务的数据将使用此共享密钥作为授权标头。这是为了确保收到的消息来自 Tyk 而不是来自另一个系统。

Notifications.oauth_on_keychange_url:将发送更新信息的 URL - 如果通信失败,该 URL 将被轮询 3 次。在 200 OK 响应时,它会停止。

0 投票
1 回答
67 浏览

api - 在 Tyk 中为 API 创建版本会在转到 URL 时保留版本名称

我正在使用 Tyk 作为我正在使用的其他几个 API 的 API 网关。其中一个 API 有一个用于暂存的 URL,另一个用于生产用途。在 Tyk 中为我的 API 创建 URL 时,我添加了一个侦听器路径,并指定我希望它从 Tyk 将重定向到的 URL 中剥离。例如

监听路径为 /test/ 的 tyk.url.com 将重定向到 api.url.com 而不是 api.url.com/test/

Tyk 还使您能够将版本添加到您的 API。从本质上讲,它们只是分叉到多个 URL 的额外侦听器路径。

带有“staging”版本的 tyk.url.com/test/ 将转到 api.staging.url.com

带有“生产”版本的 tyk.url.com/test/ 将转到 api.production.url.com

然而,问题是在 Tyk UI 中,它们不允许您指定您希望版本侦听器路径也被剥离。因此,例如,当您进入 staging 时,它将成功转到正确的 URL,但还会将您的版本名称附加到它的末尾

api.staging.url.com/staging/

一直在寻找解决这个问题的方法,但没有遇到任何解决方案。

0 投票
1 回答
355 浏览

api-gateway - 在我们的 TYK 服务器中启用 tls 后,它会耗尽文件句柄并停止工作

我们在我们的本地 TYK 仪表板和网关中启用了 tls,之后它用完了文件句柄并停止工作

重定向到 /bin/systemctl status tyk-dashboard.service tyk-dashboard.service - Tyk API 仪表板已加载:已加载(/usr/lib/systemd/system/tyk-dashboard.service;已启用;供应商预设:已禁用) 活动:活动(运行)自 2018 年 10 月 18 日星期四 11:24:32 CEST 开始;3h 57min 前 Main PID: 13062 (tyk-analytics) CGroup: /system.slice/tyk-dashboard.service └─13062 /opt/tyk-dashboard/tyk-analytics --conf /opt/tyk-dashboard/tyk_analytics.conf

10 月 18 日 15:22:00 sktudv01tyk01.ccta.dk tyk-analytics[13062]: 2018/10/18 15:22:00 http:接受错误:接受 tcp [::]:3000:accept4:打开的文件太多;在 1s Oct 18 15:22:01 重试 sktudv01tyk01.ccta.dk tyk-analytics[13062]: 2018/10/18 15:22:01 http:接受错误:接受 tcp [::]:3000:accept4:太多打开文件;1s重试

我们的 conf 文件看起来像这样

tyk.conf

我们的 tyk_analytics.conf

cat /proc/981/limits 限制软限制
硬限制单位 最大 cpu 时间无限制
无限制秒 最大文件大小无限制
无限制字节 最大数据大小无限制
无限制字节 最大堆栈大小 8388608
无限制字节 最大核心文件大小 0
无限制字节 最大驻留集无限制
无限制字节Max processes 31191
31191 processes Max open files 1024
4096 files Max locked memory 65536
65536 bytes 最大地址空间无限制
无限字节 最大文件锁 无限
无限锁 最大挂起信号 31191
31191 个信号 最大 msgqueue 大小 819200
819200 字节 最大优先级 0
0 最大实时优先级 0 0 最大实时超时

10 月 23 日 13:04:34 sktudv01tyk01 tyk-analytics: 2018/10/23 13:04:34 http: Accept error: accept tcp [::]:3000: accept4: too many open 再次失败时的文件句柄数文件;1s重试

操作系统设置(centos)

在 sysctl.conf 我添加了

当我重新启动 tyk-dashboard 时,我可以使用 https 登录,并且我的 api 在 https 上的响应正常,但是在几分钟后它会用完文件句柄

我需要在这里更改什么,单独启动仪表板时,一切都稳定且运行良好,我的日志中没有错误。但是当我启动网关时,我打开的文件数量每秒都会增加

网关启动日志

0 投票
1 回答
284 浏览

ssl - 应该如何为内部 K8s TLS 配置 Tyk 和 Kubernetes?

问题:

我正在配置基于TykTechnologies/tyk-kubernetes 存储库的 Tyk 网关和仪表板:

我现在希望使用 TLS 证书保护 Gateway 和 Dashboard K8s 服务。

我购买了一个证书来保护外部 URL (https://api.example.comhttps://dashboard.example.com),如下所示,但该证书对内部 k8s 服务端点无效,因此仪表板和网关无法再在内部说话:

到目前为止我所做的:

修改tyk.confandtyk_analytics.conf以更改监听端口并引用证书:

我正在通过 K8s TLS 机密将证书安装在 tyk pod 中(对于仪表板也是如此):

以及相应的 K8s 部署更新:

0 投票
1 回答
476 浏览

mongodb - Tyk 仪表板应用程序 - 无法与 Mongo 建立连接:没有可访问的服务器

我正在尝试为 API 网关设置一个Tyk 仪表板 Docker 容器。Tyk 使用一个配置文件,除其他外,使用 JSON 连接到 Redis 和 Mongo。我使用MongoDB Atlas建立了一个 MongoDB 集群。我获取了连接字符串,并将其放入“mongo_url”键的 Tyk 配置 JSON 中。

我可以使用 MongoDB Compass 应用程序成功连接到我的 NoSQL 集群,但是当我尝试运行 Tyk Dashboard 容器时,出现错误

time="Nov 7 20:12:09" level=info msg="connecting to MongoDB: [cluster0-shard-00-00-to2hv.mongodb.net:27017 cluster0-shard-00-01-to2hv.mongodb.net :27017 cluster0-shard-00-02-to2hv.mongodb.net:27017]"

time="Nov 7 20:12:21" level=fatal msg="无法与 Mongo 建立连接:没有可访问的服务器"

有没有人遇到过这个问题?

0 投票
1 回答
149 浏览

api - Tyk 仪表板设置仪表板 URL

大家好,我有一个用于管理 api 的 tyk api 网关和专业仪表板。这些生活在不同的机器上。

当我在 tyk 网关检查脚本时,我在更改 DASHBOARD_URL 的行上看到了注释符号,如下所示。如何更改我的 tyk 网关应用程序的仪表板 URL。

我的启动脚本如下所示。

公共 Ip 的仪表板:aaaa.bbbb.cccc.dddd:3000

0 投票
1 回答
207 浏览

linux - TYK 仪表板和网关环境变量用法

我正在使用 TYK Dashboard 的许可版本。所以我需要更改 TYK Configs 的配置。

因此,在此处https://tyk.io/docs/configure/dashboard-env-variables/的此链接上, 我想在 VM 启动时使用环境变量。

但这些不适用于我的机器(本地)。我在我的方法中找不到错误。请帮助。

我的脚本如下所示。

至少我可以处理 mongo url,但 LICENSE KEY 参数在任何地方都没有标志。

请帮我 !

0 投票
0 回答
140 浏览

linux - TYK 仪表板和网关有效负载

大家好,我正在为创建连接 TYK Gateway 和 TYK Dashboard 工作,并使用 bootstrap.sh 脚本创建用户。

因此,当我运行脚本后,它返回 Python JSON Error 。

我的仪表板环境变量

我的网关环境变量

这是 tyk 网关日志:

我如何解决这个 bootstrap.sh 错误以及 Dashboard 和 Gateway 之间的连接问题。

请帮忙 !

0 投票
1 回答
49 浏览

python - 授权通过 tyk 网关制作的应用程序 api 的 Python 请求

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

现在我面临的问题是:

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

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

我尝试过的事情:

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

请提出解决方案。

谢谢

提前

0 投票
1 回答
2634 浏览

firebase - 以 rfc7517 格式获取适用于 Firebase 的 JWKS

我正在使用 Firebase 对我的应用中的用户进行身份验证。Firebase 生成一个 JWT 令牌,我需要在我的服务器上进行身份验证。我使用 tyk.io 来做这件事。Tyk 支持这些令牌,但要求公钥的数据源采用https://www.rfc-editor.org/rfc/rfc7517格式。

有没有一种简单的方法可以直接从 Google/Firebase 获取?

我知道我可以从https://www.googleapis.com/service_accounts/v1/metadata/x509/securetoken@system.gserviceaccount.com获取密钥,但这不是预期的格式。

我也可以从https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com获取 jwk,这是正确的格式,但不包含密钥(我需要 X5c 字段中的密钥, 所以 X.509 证书链)