kong使用Oauth2

2 篇文章 0 订阅

添加插件Oauth2

本文参照 https://docs.konghq.com/hub/kong-inc/oauth2/
可以设置为全局的,也可以在单独在service里配置

$ curl -X POST http://<admin-hostname>:8001/plugins/ \
or curl -X POST http://<admin-hostname>:8001/services/<service>/plugins \
    --data "name=oauth2"  \
    --data "config.scopes=email" \
    --data "config.scopes=phone" \
    --data "config.scopes=address" \
    --data "config.mandatory_scope=true" \
    --data "config.enable_authorization_code=true" \
    --data "config.hash_secret=false"

使用一个consumer‘申请client

$ curl -X POST http://kong:8001/consumers/{consumer_id}/oauth2 \
    --data "name=Test%20Application" \
    --data "client_id=SOME-CLIENT-ID" \
    --data "client_secret=SOME-CLIENT-SECRET" \
    --data "redirect_uris=http://some-domain/endpoint/"

oauth2的端口有

endpointsdescription
/oauth2/authorize授权服务器的端点,为授权代码流提供授权代码,或在启用隐式授权流时提供访问令牌。只支持POST。
/oauth2/token提供访问令牌的授权服务器的端点。这也是用于客户端凭据和资源所有者密码凭据授权流的唯一端点。只支持POST。
/oauth2_tokens允许创建新令牌的授权服务器的端点。对迁移很有用(见下面)。
/oauth2_tokens/:token_id允许读取、修改和删除访问令牌的授权服务器的端点。

首先使用 /oauth2/authorize 获取 code令牌,这边遇到404, 必须要用post方法https请求
后端必须将provision_key和authenticated_userid参数添加到client_id、response_type和scope参数中,它将发出POST请求

在这里插入图片描述
然后用/oauth2/token端口,
我这里使用的是授权码模式,把grant_type设置为authorization_code,所以多添加一个code参数就好了,
如果是密码登录
web应用程序的后端将发送的用户名和密码进行身份验证客户端和grant_type参数最初由客户端发送的参数,并将使香港在POST请求,oauth2 /令牌端点的配置插件。如果客户端发送了授权头,也必须添加它
在这里插入图片描述
拿到token就可以愉快的玩耍了

刷新token

$ curl -X POST https://your.service.com/oauth2/token \
    --data "grant_type=refresh_token" \
    --data "client_id=XXX" \
    --data "client_secret=XXX" \
    --data "refresh_token=XXX"

上游添加请求头

当客户端被认证和授权后,插件会在请求被代理到上游服务之前附加一些头信息,这样你就可以在你的代码中识别消费者和最终用户

  • X-Consumer-ID(Consumer的Id)
  • X-Consumer-Custom-ID (Consumer自定义的id,和X-Authenticated-Userid相同)
  • X-Consumer-Username (Consumer的username)
  • X-Credential-Identifier (凭据的标识符)
  • X-Authenticated-Scope (作用域scopes字符串或数组)
  • X-Authenticated-Userid (已向客户端授予权限的登录用户ID)
  • X-Anonymous-Consumer (将在身份验证失败时设置为true,并改为设置“匿名”消费者)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值