zoukankan      html  css  js  c++  java
  • ocelot identityserver4 consul整合漫谈

    记录一些这两天学习这个内容的感受。

    也不太了解到底是文章的问题,还是一直不能抓到重点,经常被一些没有人碰到的问题阻挡,花费大量的时间。

    ocelot整合consul

    • 注意的是ocelot的GlobalConfiguration是他自己配置文件中的一个节点。需要在这个节点里,指定consul

    • 另外consul有一套KV存储功能,ocelot可以利用这个功能读取配置文件。

    • consul默认只在loopback端口监听,如果是为了外部查询consul的信息,需要指定client_addr

    ocelot整合identityserver4

    由于涉及到认证和鉴权,这里的问题遇到的比较多,

    jwtbearer token

    bearer tokenOAuth2.0中的概念,也叫access_token(我目前的理解),利用这个token,相当于被授权,可以请求资源。

    而jwt是一种数据格式

    两者之间的关系是bearer token可以用jwt这种格式表示,而jwt也是目前bearer token默认的一种表示格式,可以在[jwt网站](jwt.io)解析jwt格式内容。

    ocelot的认证

    在网上查询资料,发现有的地方,将认证功能放在ocelot后方的具体功能API上,而ocelot官方,是将认证配置在ocelot自己的服务上的。

    没有找到有地方描述这两者究竟是什么关系,这点也让我想了很久,以下是我现在整理自己的思路。
    如下内容建立在bearer token 机制上。

    client方

    client端,向ocelot发起请求时,需要携带已经认证通过的,从identityserver中获取的bearer token。

    这个过程与ocelot无关,是client与identityserver之间的交互

    ocelot部分

    ocelot可以配置API认证要求,也就是对应ocelot官网说明

    此时ocelot 会验证传入的请求中,token是否能通过identityserver的验证,也就是说ocelot会向identityserver发起验证。

    只有验证1)有效,2)满足ocelot配置的ScopeAudience等限制时,ocelot才会向下游转发,否则会报错

    当然,ocelot这里的验证可以完全不配置,而由下游API验证

    下游API

    下游API也可以配置[Authorize]属性进行验证,同样,时通过向identityserver请求,验证token的合法性和授权情况的

    补充

    关于Scope/Resource

    Identityserver定义两种资源

    1. Identity资源,包含注入Email,OpenId,自定义资源等
    2. Api资源,定义了API允许的操作

    而IdentityServer注册client中,有AllowedScope资源,这里的即包含上面两种资源中的组合。
    而对于OAuth仅授权而言,无法确定用户Identity,所以只能申请到API资源。
    当通过OpenId认证的用户,可以获得Identity资源。

    Ocelot中的ApiName限制,就代表某个请求对应一个API资源的限制,那么请求的token中,至少要包含一个该API资源的Scope才能访问。

  • 相关阅读:
    JavaScript——闭包(转自别人)
    JavaScript ——内部函数和匿名函数
    socks5代理服务器ss5配置
    TCP部首长度定义
    九个Console命令,让js调试更简单
    一位前端新手入住博客园
    动画库 Tweenmax 使用示例1
    Dijkstra算法实例
    N皇后问题
    华为精益研发外包 PDF
  • 原文地址:https://www.cnblogs.com/mosakashaka/p/12608491.html
Copyright © 2011-2022 走看看