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

自包含令牌(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 判断操作系统

    #!/bin/sh a=`uname -a` b="Darwin" c="centos" d="ubuntu" if [[ $a =~ $b ...

  2. Note_3.31

    2019/4/1 奇奇怪怪的笔记 整理了一些之前没有写过的东西,把它们拼在一起,并没有什么逻辑可言qwq FWT快速沃尔什变换 \[ FWT(A)=merge(FWT(A0),FWT(A0+A1)) ...

  3. nginx php-fpm 配置问题(1)

    nginx php-fpm 配置问题(1) 1.问题    Nginx/FPM/PHP all php files say 'File not found.' nginx error日志: [erro ...

  4. Swagger-BootStrap-UI生成的接口文档如何加Basic校验

    首先我们来看看swagger-bootstrap-ui的效果,如图所示: 看起来是不是比Swagger要大气的多. 回到重点上,为什么要给接口文档加密呢? 只对内开放,不对外开放,防止被第三方非公司人 ...

  5. 责任链模式(chainOfResponsibility)

    参考文章:http://wiki.jikexueyuan.com/project/design-pattern-behavior/chain-four.html 定义: 使多个对象都有机会处理请求,从 ...

  6. [web] react一些些

    作者:水落斜阳链接:https://www.jianshu.com/p/4fb47009c330来源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1.react comp ...

  7. vue-cli安装webpack项目及初始配置

    这个下载包是自己基于 webpack 搞的,可以看看https://github.com/chichengyu/webpack vue-cli安装 输入 npm install vue-cli -g ...

  8. Parquet介绍及简单使用(转)

    ==> 什么是parquet         Parquet 是列式存储的一种文件类型   ==> 官网描述: Apache Parquet is a columnar storage f ...

  9. QT自定义信号和槽

    最近项目中使用到QT,在此记录一下QT的核心,信号与槽: QObject::connect(const QObject *sender, const char *signal, const QObje ...

  10. Java12新特性 -- 增强G1,自动返回未用堆内存给操作系统

    Java 12 中增强了 G1 垃圾收集器关于混合收集集合的处理策略,这节主要介绍在 Java 12 中同时也对 G1垃圾回收器进行了改进,使其能够在空闲时自动将 Java 堆内存返还给操作系统,这也 ...