Tyk API Gateway

Tyk API Gateway可以帮助用户配置API,让企业可以快速设计api访问方式,对于需要管理API的朋友很有帮助,你可以在软件上配置相关内容,可以配置访问方式,可以控制和限制流量,可以使用Tyk即时修改入站和出站正文数据以及标头,这可以使用可编写脚本的中间件来完成,也可以使用专用中间件来实现,可以配置加密方式,提供了许多功能来保护您的API和本身,Tyk将所有API令牌及其等效的会话对象存储在Redis数据库中,因此,默认情况下,Tyk将使用密钥哈希对Redis中的令牌进行混淆,保护您的API安全!

Tyk API Gateway软件功能

Tyk是一个开源企业API,支持REST,GraphQL,TCP和gRPC协议。

Tyk Gateway是“Bas-included”提供的,没有功能锁定。使您的组织能够控制谁访问您的API,访问它们的时间以及访问方式。

Tyk Technologies对其所有应用程序使用相同的API。为全球成千上万的组织和企业保护,保护和处理API。开放银行,在云中构建软件以及向团队,合作伙伴和消费者公开API的理想选择。

从头开始构建,使其成为地球上最快的API。它不依赖于下面的旧式代理。除了Redis之外,它没有第三方依赖关系,用于分布式速率限制和令牌存储。Tyk Gateway也可以部署为更大的Full Lifecycle API管理平台Tyk Self-Mad的一部分,该平台还包括管理控制平面,仪表板GUI和开发人员门户。

开源API功能:

使用任何协议: REST,SOAP,GraphQL,gRPC和TCP。

行业标准身份验证:OIDC,JWT,承载令牌,基本身份验证,客户端证书等。

开放的API标准:将您的Swagger和OAS2 / 3文档导入Tyk中的脚手架API。

超高能:低延迟和仅单个CPU即可实现数千rp的水平和垂直扩展。

内容中介:转换所有内容,从请求或响应标头到在SOAP和GraphQL之间转换。

可扩展的插件体系结构:通过以您选择的语言(从Python到Javascpt到Go或任何支持gRPC的语言)编写插件来定制Tyk的中间件链。

速率限制和配额:保护您的上游免受过载和/或对每个消费者施加限制。

API版本控制-可以在特定时间和期轻松设置和弃用API版本。

粒度访问控制-在每个版本和作的基上授予对一个或多个API的访问权限。

阻止列表/允许列表/被忽略的端点访问-在逐个版本的基上对访问点实施严格的安全模型。

Analytics志记录-记录有关谁在使用您的API的详细使用情况数据(仅原始数据)

CORS-为某些API启用CORS,以便用户可以进行基于浏览器的请求

Webhooks-针对诸如配额违反和身份验证失败之类的事件触发Webhooks

IP允许列表-阻止对非信任IP地址的访问,以实现更安全的交互

重载-可以动态更改Tyk配置,并重新启动服务,而不会影响任何活动请求

Tyk API Gateway软件特色

Tyk OSS集成

Tyk Technologies可与Tyk API Gateway结合使用的其他开源软件:

Tyk Pump-可插拔分析程序清除器,可将您的Tyk节点生成的Analytics(分析)移动到任何后端。

Tyk Operator-将API管理功能引入Kubernetes。使用自定义资源和Kubernetes本机原语配置入口,API,安全策略,身份验证,授权,中介等-所有这些

Tyk Identity Bker-第三方登录的Tyk身份验证代理

Tyk Sync-命令行工具和库,用于管理Tyk安装并将其与版本控制系统(VCS)同步。

Tyk Mserv-资产和gRPC主机

Tyk API Gateway使用说明

请求标题

使用API定义转换请求标头

使用Tyk,您可以在标题离开代理并传递给上游API或将响应代理回到客户端之前对其进行修改。如果您具有一个具有单个身份验证密钥的上游API,并且希望对其添加多用户访问权限而又不对其进行修改或向其添加笨拙的身份验证方法以支持新用户的情况,那么这将非常有用。

示例场景

您有一个名为WidgetsAPI的API,该API带有一个x-widgets-secret标头来允许访问,这是您的团队使用的内部API,但您想将其公开给客户并向他们收取访问费用。

您可以修改API并添加整个用户,密钥和访问管理系统,也可以使用Tyk为您注入此标头。

更新API定义对象

使用Tyk,您可以在extended_paths.tranorm_headers字段中添加以下内容来设置API定义:

现在,使用设置为此API和版本的访问定义规则创建的Tyk密钥可以应用配额,限制和访问,而无需向现有API添加任何新代码或功能。

使用仪表板转换请求标头

要使用GUI将新的标头注入请求中,必须在API定义的“端点设计器”部分中进行编辑。

步骤1:添加一个端点并选择Modify Headers Plugin

您还必须设置要匹配的方法和请求模式。这些模式可以包含任何大括号括起来的字符串形式的通配符。这些通配符是人类可读的,不会转换为变量名。在底层,通配符转换为“匹配所有”正则表达式:(.*)。

第2步:选择“请求”标签

这样可以确保仅将其应用于入站请求。

步骤3:修改安装标题

使用提供的字段选择设置要删除和插入的标题。请注意,您添加的所有标头都将大写。即,如果您x-request-id在UI或API定义中添加,则调用者将在响应中获得X-Request-Id。

步骤4:保存API

保存API后,如果请求路径和方法与您的模式匹配,则将对命中您端点的请求进行相关修改。

全局修改请求头

全局注入和删除标题

在某些情况下,您可能希望向所有出站请求添加安全标头(例如,验证流量是否来自),为此,请将其添加到API定义中的版本块中:

使用该global_headers_remove字段,可以在所有入站请求中将标头删除,再将其传递给您的服务。

通过仪表板添加全局注入

您还可以通过“ API端点设计器”,通过“仪表板”选择“全局版本设置”来实现此目的:

将自定义动态数据注入标头

也可以将用户会话对象中携带的也注入标头空间。每个令牌或密钥都有一个附加的会话对象meta_data,该对象包含一个字段,这是一个密钥/值映,它允许动态中间件和其他组件智能地对来自入站请求的身份进行作,而无需暴露它。

要在标头转换中使用此数据,只需访问特殊的$tyk_meta名称空间,这是一个有效的示例。

说在会话对象中,您已包含以下元数据:

要在标头转换中使用它,您的API定义路径应为:

仪表板中的元数据

变量名称($tyk_meta)在“仪表板”字段中也可用,并且将以相同的方式工作。

将上下文变量注入标头

从2.2版开始,Tyk允许使用$tyk_context.名称空间将上下文变量注入标头中。有关更多,请参见上下文变量。

示例global_headers部分

相互TLS

使它工作的主要要求是SSL流量应由Tyk自己终止。如果使用负载平衡器,则应将其配置为以TCP模式工作。

Tyk如何支持双向TLS

Tyk在以下方面支持双向TLS:

客户端mTLS

上游mTLS

云用户的mTLS:

云用户可以使用mTLS来保护其上游服务,但是暂时无法在客户端(API的调用者)和Tyk的之间完成mTLS。

多云用户-由于您拥有并管理,因此可以将mTLS用于上游<–>和客户端<–>连接。

客户端mTLS

有两种方法可以在Tyk中设置客户端mTLS:static和dynamic。它们因您的用例而异。

动态客户端mTLS

可以将Tyk配置为根据提供的客户端证书猜测用户身份验证密钥。换句话说,除了证书,用户不需要提供任何密钥,并且Tyk将能够识别用户,应用策略并进行监视-与常规密钥相同。

这里的基本思想是,您可以基于提供的证书创建密钥。,您可以为一个或多个用户使用此密钥或证书。

快速开始

1、要进行设置,请先通过在API设计器中设置“身份验证类型”来保护API,从“目标详细”>“身份验证”模式中选择“身份验证令牌”。选择启用客户端证书,如下所示:

2、让我们生成一个自签名密钥对,以在下面使用。如果您已经拥有自己的证书,请跳过此步骤。

openssl req -x509 -newkey rsa:40 -keyout key.pem -out cert.pem -days 365 -nodes

3、通过仪表板添加密钥,从“访问权限”的第1步中选择API

您为此密钥上载的证书只能是公共密钥。

4、现在,我们可以使用cert +私钥为该API创建一个cL。

开发人员门户-自我服务证书信托

我们可以通过开发人员门户公开上面的API,而不是手动创建密钥,在开发人员门户中,开发人员可以添加自己的证书来访问API。

1、为我们上面设置的API创建一个策略

2、为此策略创建目录条目

3、作为门户网站上的开发人员,请请求此API的密钥。这将带我们到此屏幕:

在此处添加您的公共证书(上面的cert.pem),单击“请求密钥”。

现在,我们只需使用pub +私钥即可发出API请求:

静态mTLS

静态mTLS只是意味着将API级别的客户端证书列入白名单。

要进行设置,请在API身份验证设置中,选择mTLS和另一种身份验证类型。如果您不想使用其他身份验证类型,即仅使用客户端证书,则选择“无密钥”作为其他。

基本身份可以是任何值,因为唯一配置的是客户端证书。

它应该是这样的:

请求方法转换

从Tyk Gateway v2.2开始,现在可以更改请求的方法。要启用,请添加到您的扩展路径:

笔记

此功能目前非常简单,仅更改方法的类型,它不处理请求正文的消息数据。但是,可以将方法转换,上下文变量和主体转换结合使用以实现类似的效果。

使用仪表板

要从仪表板执行此作,请从API端点设计器中选择要转换的端点上的插件下拉列表中的方法tranorm。

选择您想要更改的路径。

上一篇 2022-11-28

相关推荐

  • Tyk API Gateway

    Tyk API Gateway可以帮助用户配置API,让企业可以快速设计api访问方式,对于需要管理API的朋友很有帮助,你可以在软件上配置相关内容,可以配置访问方式,可以控制...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)