TYK中设置流量控制和访问控制有两种方式,
配置如下图:
然后点击create即可,然后访问,每小时只能访问两次
2、使用policies设置(实质是设置policie模板,然后在生成key的时候,使用模板覆盖自定义设置)
这里我对policie的设置如下
在生成key的过程中,选择Policy,会自动覆盖下面的自定义配置,下面的操作就和上面的一样了
由于OAuth2认证方式流程暂时尚未跑通过,先以TYK中标准的认证方式"Auth Token"来做简单介绍
1、配置API网关代理认证方式
2、选择认证方式为"Auth Token","Auth Key Header Name"值是可以自定义的,这里我们使用"Authorization",然后到页面最上边,点击“update”进行保存,此过程不需要重启服务即可生效
3、获取Token,如下图,点击"Add key",添加key(在下一个页面选择key使用的API)
其中,"Rate Limiting"中的"Expires"选择key的有效期限,为了简便测试,这里我选择为"Never Expires"(永不过期)。
"Access Rights"中添加"access role",这里我选择我添加的API项目"myTest",然后点击add,然后点击最下方的"Create"
然后页面中如下图所示处,会显示新生成的token值,将其Copy出来,以便后续测试使用,这里生成的值为"56d58ee8e1382308e7000001eb4c2ee1789a47506d4dca2b32141a92"
4、使用restClient、curl等方式进行测试认证
4.1、如下图,使用Firefox的插件restClient进行测试,注意要添加header,key为"Authorization",value为上一步奏记录下的Token值
4.2、使用curl方式进行测试
命令如下:
curl --header "Authorization: 56d58ee8e1382308e7000001eb4c2ee1789a47506d4dca2b32141a92" http://192.168.10.147:8080/mytest/helloworld
结果如图所示:
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(==防止爬虫==):http://blog.liuyingguang.cn
一、nginx+tyk(tyk仍然使用http,nginx使用https+proxy_pass转发)
测试可行
二、tyk配置文件配置使用https
1、修改配置文件:/opt/tyk-gateway/tyk.conf
修改端口为443
修改hostname为:mydomain.com
添加配置:
"http_server_options": {
"use_ssl": true,
"server_name": "*.mydomain.com",
"min_version": 2,
"certificates": [
{
"domain_name": "*.mydomain.com",
"cert_file": "/opt/tyk-gateway/ssl/mydomain.crt",
"key_file": "/opt/tyk-gateway/ssl/mydomain.key"
}
]
} |
2、修改DashBoard的配置文件:/opt/tyk-dashboard/tyk_analytics.conf
修改tyk_api_config下的Host为https://mydomain.com
修改tyk_api_config下的Port为:443
然后,重启下tyk的所有服务即可
1、安装Docker(1.10)、docker-compose(1.6.2)、git
2、docker pull镜像:
2.1、如果安装了dao插件:
# dao pull tykio/tyk-gateway:v1.9.1.1
# dao pull tykio/tyk-dashboard:v0.9.7.2
# docker pull daocloud.io/library/mongo:3.2.4
# dao pull redis:3.0.7
2.2、如果没有安装dao插件
# docker pull tykio/tyk-gateway:v1.9.1.1
# docker pull tykio/tyk-dashboard:v0.9.7.2
# docker pull daocloud.io/library/mongo:3.2.4
# docker pull redis:3.0.7
3、clone git项目:
4、修改配置文件
4.1、修改tyk_analytics.conf,tyk_api_config中的Host修改为“http://yourIP”,host_config中的override_hostname修改为“yourIP”。
4.2、修改tyk.conf,hostname修改为“yourIP”,在如上的git地址中,tyk.conf中没有hostname,需要自己添加
5、运行docker-compose启动镜像
# docker-compose up -d
浏览器端报错:
"NetworkError: 403 Forbidden - http://192.168.10.147:8080/mytest/helloworld"
helloworld
已阻止跨源请求:同源策略禁止读取位于 http://192.168.10.147:8080/mytest/helloworld 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。
tomcat报错:
192.168.10.147 - - [02/Mar/2016:19:13:41 +0800] "OPTIONS /testjersey/rest/helloworld HTTP/1.1" 403 107
192.168.10.147 - - [02/Mar/2016:19:14:50 +0800] "GET /testjersey/rest/helloworld HTTP/1.1" 200 23
解析:
但是在配置方面,在web.xml中,部分配置如下
<init-param> <param-name>cors.supportedHeaders</param-name> <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> </init-param> |
而tyk中使用了Authorization在头部信息中,
解决办法:
在init-param配置中,“cors.supportedHeaders”配置添加Authorization即可