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

自包含令牌(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. JVM和ClassLoader

    JVM和ClassLoader 2019-11-08 目录 1 JVM架构整体架构 1.1 类加载器子系统 1.1.1 加载 1.1.2 链接 1.1.3 初始化 1.2 运行时数据区(Runtime ...

  2. 运行java程序的时候出现Exception in thread "main" java.lang.UnsupportedClassVersionError:

    1 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/test/inherited/In ...

  3. zabbix 自动发现 监控 硬盘读写 disk io

    直接 上配置: 1.配置文件 cat userparameter_harddisk.conf #discovery hard diskUserParameter=custom.vfs.discover ...

  4. [技术博客] 利用Vagrant+virtualbox在windows下进行linux开发

    目录 加速box安装的方法 root账户登录 换源教程 安装rvm 访问rails server RubyMine连接虚拟机上的解释器 作者:庄廓然 在windows下进行linux开发:利用Vagr ...

  5. 冰多多团队-第五次Scrum会议

    冰多多团队-第五次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 zpj 部分Action整合, 接入语音接口,整合项目解决兼容性问题 ASR bug修复 牛雅哲 跑通了科大讯飞语法识别的 ...

  6. 《微信小程序商城开发实战》笔者的新书,欢迎各位粉丝上京东购买

    作者图书京东链接,请点击------>>>    **微信小程序商城开发实战** 附京东真实评价截图: 编辑推荐 在当今移动互联网大潮中,微信应用凭借其庞大的用户基数和极强的用户黏性 ...

  7. 用Eclipse的maven方式创建JFinal项目

  8. Oracle 行转列 动态出转换的列

    本文链接:https://blog.csdn.net/Huay_Li/article/details/82924443 10月的第二天,前天写了个Oracle中行转列的pivot的基本使用方法,然后, ...

  9. 【spring源码学习】spring的事务管理源码学习

    一.抽象概念 1.事务管理器 接口:org.springframework.transaction.PlatformTransactionManager 实现类:org.springframework ...

  10. 无废话centos+TDengine+Telegraf+Grafana入门

    一.安装TDengine:1.从官网https://www.taosdata.com/cn/getting-started/下载RPM包(tdengine-1.6.2.0-3.el7.x86_64.r ...