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

自包含令牌(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. js限制输入数字能输入小数点,js定义数组,js往数组中添加数据,js将字符型转为数字型,除法结果保留两位小数——js小测:计算比赛得分

    一个朋友跟我说要去给某个比赛算分: 规则:去掉最低分最高分求平均分: 最近在学习大数据可视化——图谱,用到js一些东西,所以今天就用js练练 用到知识点: js限制输入数字能输入小数点,js定义数组, ...

  2. 作业:IEEE754浮点数

    人工转换: 5.75转换成二进制:101.11右移2位,补0:1.0111000000000000000000000000000000000000000000000000.10000000001 16 ...

  3. php 面试必备:各种缓存技术详解

    这门课程以电商网站为例,通过具体场景模块实战,让你更系统的掌握缓存原理.使用场景等相关知识,帮助你构建完整的缓存知识体系,胜任实际开发中缓存的处理,提升代码性能!    从原理到场景 系统讲解PHP缓 ...

  4. ffmpeg fails with error "max delay reached. need to consume packet"

    rtsp服务默认使用udp协议,容易丢包,报这个错误.改为tcp,则解决. ffmpeg-设置rtsp推流/拉流使用的协议类型(TCP/UDP)(转) 拉流(设置TCP/UDP) //设置参数 AVD ...

  5. rabbitmq在linux下单节点部署和基本使用

    RabbitMQ是基于erlang开发的消息服务,官网为:https://www.rabbitmq.com,RabbitMQ要依赖erlang运行,所以要先安装erlang环境,rabbitmq可以用 ...

  6. MLflow系列2:MLflow追踪

    英文链接:https://mlflow.org/docs/latest/tracking.html 本文链接:https://www.cnblogs.com/CheeseZH/p/11945089.h ...

  7. Data truncation: Out of range value for column 'quanity' at row 问题解决方案

    由于之前在自己电脑上搭建了mysql 5.6的数据库,但是在服务器上搭建的是mysql 5.7的环境,在运行过程中出现了如下错误: Data truncation: Out of range valu ...

  8. SVN 从主干合并到分支库

    主干库:平时开发用的库, 分支库:中途需要进行上生产环境的库 分支库的版本从主干库拉过去就行 红色的为分支库. 创建的速度很快. 1.创建好后,在主干库添加一个文件. 2.然后分支库进行合并,这里用e ...

  9. 全文搜索引擎Elasticsearch详细介绍

    我们生活中的数据总体分为两种:结构化数据 和 非结构化数据. 结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理.指具有固 ...

  10. CentOS / RHEL 内核升级

    1. 查看当前内核版本 [root@192.168.118.11 ~]#cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) [ro ...