访问令牌可以有两种形式:自包含的和引用的。

自包含令牌(Self-contained tokens):
使用受保护的、有时间限制的数据结构,该结构包含元数据,并声明通过网络传递用户或客户机的身份。一种流行的格式是JSON Web令牌(JWT)。自包含令牌的接收方可以通过检查签名、预期的发布方名称和预期的受众或范围来在本地验证令牌。

引用令牌(Reference tokens):
(有时也称为不透明令牌)只是存储在令牌服务上的令牌的标识符。令牌服务将令牌的内容存储在某个数据存储中,将其与一个不可猜测的id关联起来,并将id传递回客户机。然后,接收者需要打开到令牌服务的后端通道,将令牌发送到验证端点,如果有效,则检索作为响应的内容。

引用标记的一个很好的特性是您可以对它们的生命周期进行更多的控制。如果自包含令牌在过期之前难以撤销,则引用令牌仅在其存在于STS数据存储中时有效。这允许出现以下情况:

  • 在“紧急”情况下撤销令牌(丢失电话、网络钓鱼攻击等)
  • 在用户注销时间或应用程序卸载时使令牌无效
  • 引用令牌的缺点是需要从资源服务器到STS的反向通道通信。

从网络的角度来看,这可能是不可能的,有些人还担心额外的往返和STS上的负载。使用缓存可以很容易地修复后两个问题。

我把过去几年的这个概念介绍给我的许多客户,他们喜欢的架构变得越来越像这样:

如果令牌离开了公司的基础设施(例如浏览器或移动设备),则使用引用令牌在整个生命周期内完全控制。如果令牌仅在内部使用,则自包含令牌是可以的。

翻译原文地址:

https://leastprivilege.com/2015/11/25/reference-tokens-and-introspection/

引用和自包含令牌(Reference Tokens and Introspection)的更多相关文章

  1. 【Java面试题】12 内部类可以引用它的包含类的成员吗?有没有什么限制?

    完全可以.如果不是静态内部类,那没有什么限制! 如果你把静态嵌套类当作内部类的一种特例,那在这种情况下不可以访问外部类的普通成员变量,而只能访问外部类中的静态成员,例如,下面的代码: class Ou ...

  2. Windows server 2008 R2 桌面服务器管理器打开提示:试图引用不存在的令牌

    来源:https://social.technet.microsoft.com/Forums/zh-CN/90f376a3-2b52-46c1-be34-4a2dbf4fdea2/winserver2 ...

  3. 第5章 令牌自省端点(Token Introspection Endpoint) - IdentityModel 中文文档(v1.0.0)

    OAuth 2.0令牌自省的客户端库是作为HttpClient扩展方法提供的. 以下代码将引用令牌发送到内省端点: var client = new HttpClient(); var respons ...

  4. IdentityServer4【Topic】之保护APIs

    Protecting APIs 保护api 默认情况下IdentityServer将access token发布成JWT(json web token)格式的. 现在,每个相关的平台都支持验证JWT令 ...

  5. IdentityServer4系列之中文文档及实际项目经验分享

    0.前言 原文:http://docs.identityserver.io/en/release/声明: 1.目录一至五章节根据IdentityServer英文文档翻译而来,有些内容会根据自己的理解来 ...

  6. Binders 与 Window Tokens(窗体令牌)

    原文地址:http://www.androiddesignpatterns.com/2013/07/binders-window-tokens.html 安卓的一项核心设计思想是希望能提供一个不须要依 ...

  7. Delphi XE5教程11:Tokens

    内容源自Delphi XE5 UPDATE 2官方帮助<Delphi Reference>,本人水平有限,欢迎各位高人修正相关错误!也欢迎各位加入到Delphi学习资料汉化中来,有兴趣者可 ...

  8. iOS开发--引用计数与ARC

    以下是关于内存管理的学习笔记:引用计数与ARC. iOS5以前自动引用计数(ARC)是在MacOS X 10.7与iOS 5中引入一项新技术,用于代替之前的手工引用计数MRC(Manual Refer ...

  9. JSON WEB TOKENS

    用JWT来保护我们的ASP.NET Core Web API   在上一篇博客中,自己动手写了一个Middleware来处理API的授权验证,现在就采用另外一种方式来处理这个授权验证的问题,毕竟现在也 ...

随机推荐

  1. shell 文件的包含

    使用.或者source api.sh function intadd() { let data=$+$ echo $data } test.sh #!/bin/bash . api.sh read d ...

  2. 帝国cms替换iwms幻灯图片问题

    在管理标签模板中增加一个新模板 页面模板内容为:[!--empirenews.listtemp--]<!--list.var1-->[!--empirenews.listtemp--] 列 ...

  3. SpringCache

    官方文档:https://docs.spring.io/spring/docs/4.3.13.RELEASE/spring-framework-reference/htmlsingle/#cache ...

  4. [Web] mobx 异步操作

    转载自:https://www.jianshu.com/p/66dd328726d7 异步action action只能影响正在运行的函数,而无法影响当前函数调用的异步操作 .action 包装/装饰 ...

  5. sed 变量在shell引用

    #!/bin/bashZipName=`ls -lt /data/office_services/*.zip | head -1 | awk -F"/" '{print $NF}' ...

  6. centos7.5环境下elasticserch5.6.15集群升级6.8.4

    节点的角色分片: node01 eus_mp_web01 : master,false node,false, ingest,true node02 eus_mp_es01 : master,true ...

  7. Selenium+Java完整框架搭建(2019完整版)

    一.WebDriver框架开发实战 1.框架的思想 (1)什么是框架? 框架是可以被应用开发者定制的应用骨架 (2)为什么要写框架? 提高脚本可维护性 提高编写脚本的速度 提高脚本可阅读性 (3)框架 ...

  8. 【C#】使用C# 读取Http的Post数据

    private string Post(string num) { Encoding myEncoding = Encoding.GetEncoding("gb2312"); // ...

  9. fragment原来的页面切换被重新实例化,无法继续保持上一次的内容。只让它执行一次

    最好的方法是: 定义类.静态变量的方式 保存数据,从这里取. 用网上其他人的方法,fragment切换速度太快会报错 child view 没有从parent view 中移除: 只执行一次,定义一个 ...

  10. GoldenGate 19.1 发布

    GoldenGate 19.1 新特性 For the Oracle Database ➢ Oracle Database 19c Support 支持从Oracle DB 19c抽取和投递数据,包括 ...