Tag - TYK

TYK GateWay MicroService 微服务    2017-07-19 21:56:25    990

 

TYK中设置流量控制和访问控制有两种方式,

1、在生成key的时候设置访问权限


配置如下图:




然后点击create即可,然后访问,每小时只能访问两次

2、使用policies设置(实质是设置policie模板,然后在生成key的时候,使用模板覆盖自定义设置)


这里我对policie的设置如下


在生成key的过程中,选择Policy,会自动覆盖下面的自定义配置,下面的操作就和上面的一样了



 

by 刘迎光@萤火虫工作室 
OpenBI交流群:495266201 
MicroService 微服务交流群:217722918 
mail: liuyg#liuyingguang.cn 
博主首页(==防止爬虫==):http://blog.liuyingguang.cn


TYK GateWay MicroService 微服务    2017-07-19 21:53:40    1040

 

由于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

TYK SSL 微服务 MicroService    2017-07-19 21:47:13    884
一、nginx+tyk(tyk仍然使用http,nginx使用https+proxy_pass转发
    测试可行

二、tyk配置文件配置使用https
参考链接:https://github.com/TykTechnologies/tyk/issues/181
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的所有服务即可


 

by 刘迎光@萤火虫工作室 
OpenBI交流群:495266201 
MicroService 微服务交流群:217722918 
mail: liuyg#liuyingguang.cn 
博主首页(==防止爬虫==):http://blog.liuyingguang.cn

docker-compose TYK gateway MicroService 微服务    2017-07-19 21:45:28    894
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
 

 

by 刘迎光@萤火虫工作室 
OpenBI交流群:495266201 
MicroService 微服务交流群:217722918 
mail: liuyg#liuyingguang.cn 
博主首页(==防止爬虫==):http://blog.liuyingguang.cn

跨域 TYK MicroService 微服务    2017-07-19 21:39:10    901
浏览器端报错:

"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


解析:

关于跨域,我使用的是如下地址的方案:http://blog.csdn.net/gsying1474/article/details/49664883
但是在配置方面,在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即可
 
 

 

by 刘迎光@萤火虫工作室 
OpenBI交流群:495266201 
MicroService 微服务交流群:217722918 
mail: liuyg#liuyingguang.cn 
博主首页(==防止爬虫==):http://blog.liuyingguang.cn

1/2