Consent 确认

在授权请求期间,如果身份服务器需要用户同意,浏览器将被重定向到同意页面。也就是说,确认也算是IdentityServer中的一个动作。确认这个词直接翻译过来有一些古怪,既然大家都知道Consent就是确认的意思,下文都以Consent来指代确认。

Consent被用来允许终端用户将一些资源(例如identity 和 API)的访问权限授予客户端。这通常适用于一些第三方应用,并且可以在 client settings中对每个客户端进行这方面的设置。

Consent Page 确认页面

为了实现这个功能,必须在宿主程序上面提供一个确认页面, quickstart UI(identityerServer4提供的一个demo)有一个关于确认页面的基本实现。

一个确认页面通常来说会渲染如下信息:

  1. 当前用户的名称(displayname)
  2. 发出请求的客户端的名称(displayname)
  3. 客户端的logo
  4. 关于客户端更多信息的一个链接(link)
  5. 客户端想要请求的资源列表

此外,还有一些比如说允许用户点击“remembered”按钮以便相同应用下次不用重复这个步骤。

一旦用户做完了他该做的事儿(点击了同意),确认页面必须把这个确认消息通知给identityserver,然后浏览器会被跳转回authorization端点。

Authorization Context上下文

IdentityServer会将一个returnUrl参数(可通过user interaction options配置)传递到一个包含请求参数的确认页面中。这些参数为确认页面提供了上下文,并且这些上下文可以通过 interaction service进行读取。GetAuthorizationContextAsync 方法(在interaction service中定义)会返回一个AuthorizationRequest对象。

关于客户端或资源的其他详细信息可以使用IClientStore和IResourceStore接口获得。

Informing IdentityServer of the consent result通知IdentityServer确认结果

interaction service上的GrantConsentAsync API允许同意页面通知IdentitySeerver的同意结果(也可能是拒绝客户机访问)。

身份服务器将暂时保留确认的结果。这种持久性在默认情况下使用cookie,因为它需要持续足够长的时间才能将结果传递回授权端点。这种临时持久性与“记住我的确认”特性的持久性不同(它是授权端点,它为用户保留“记住我的确认”)。如果你希望在确认页面和授权重定向之间使用其他的持久性,那么你可以实现IMessageStore<ConsentResponse>,并注入DI。

Returning the user to the authorization endpoint将用户重定向到authorization端点

一旦确认页面将确认结果通知给IdentityServer,用户就能被重定向到returnUrl指定的页面上。你的确认页面应该通过检查是否有效来避免open redirected。这个工作是通过interaction service上面的IsValidReturnUrl来做的。或者,如果

GetAuthorizationContextAsync 返回一个不为空的结果,那么你也可以确定returnUrl是有效的。

IdentityServer4【Topic】之确认(Consent)的更多相关文章

  1. 【ASP.NET Core分布式项目实战】(三)整理IdentityServer4 MVC授权、Consent功能实现

    本博客根据http://video.jessetalk.cn/my/course/5视频整理(内容可能会有部分,推荐看源视频学习) 前言 由于之前的博客都是基于其他的博客进行开发,现在重新整理一下方便 ...

  2. 第28章 确认(Consent) - Identity Server 4 中文文档(v1.0.0)

    在授权请求期间,如果IdentityServer需要用户同意,则浏览器将被重定向到同意页面. 同意用于允许最终用户授予客户端对资源(身份或API)的访问权限.这通常仅对第三方客户端是必需的,并且可以在 ...

  3. [Spark][kafka]kafka 的topic 创建和删除试验

    kafka 的topic 创建和删除试验 zookeeper和kafka 的安装,参考: http://www.cnblogs.com/caoguo/p/5958608.html 参考上述URL后,在 ...

  4. Identity Server 4 中文文档(v1.0.0) 目录

    欢迎来到IdentityServer4 第一部分 简介 第1章 背景 第2章 术语 第3章 支持和规范 第4章 打包和构建 第5章 支持和咨询选项 第6章 演示服务器和测试 第7章 贡献 第二部分 快 ...

  5. Lotus分析

    一 Lotus的任务 Lotus是一个消息通知服务,topic和subscription是多对多的关系.后面我加了一个发送自定义邮件和自定义短信的功能. 产品里面有个监控报警和通知列表.监控报警里创建 ...

  6. 【运维技术】从零开始搭建开发使用的Kafka环境

    [原创]从零开始搭建开发使用的Kafka环境 入门资料 百度百科: Kafka是一种高吞吐量的分布式发布订阅消息系统,这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决. 对于像Hadoop ...

  7. Flume+Kafka收集Docker容器内分布式日志应用实践

    1 背景和问题 随着云计算.PaaS平台的普及,虚拟化.容器化等技术的应用,例如Docker等技术,越来越多的服务会部署在云端.通常,我们需要需要获取日志,来进行监控.分析.预测.统计等工作,但是云端 ...

  8. Kafka集群安裝部署(自带Zookeeper)

    kafka简介 kafka官网:http://kafka.apache.org/ kafka下载页面:http://kafka.apache.org/downloads kafka配置快速入门:htt ...

  9. kafka——集群安裝部署(自带zookeeper)

    kafka系列文章 第一章 linux单机安装kafka 第二章 kafka--集群安裝部署(自带zookeeper) 一.kafka简介 kafka官网:http://kafka.apache.or ...

随机推荐

  1. java 发邮件

    //先从oracle 下载mail.jarpackage test; import javax.mail.BodyPart; import javax.mail.Message; import jav ...

  2. node基础—函数的调用

    普通本地函数的调用 var http = require('http'); http.createServer(function(request,response){ response.writeHe ...

  3. WPF调用zxing生成二维码

    1.登录http://zxingnet.codeplex.com/,下载对应.net版本的zxing库 2.引入zxing.dll 3.新建界面控件 using System; using Syste ...

  4. SQL BETWEEN 操作符

    BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围. BETWEEN 操作符 操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围.这些值可以是数值 ...

  5. P1451 求细胞数量(广搜)

    题意:就是0把是所有细胞圈起来了.而被圈起来的是所有数字全部为一个细胞问有多少个这样的细胞.(mmp,我读半天题) 思路:广搜索.就是,0的话就不放入了,不为0的话,就进入队列,然后,再看它的4个方向 ...

  6. 第9章 Java中的线程池 第10章 Exector框架

    与新建线程池相比线程池的优点 线程池的分类 ThreadPoolExector参数.执行过程.存储方式 阻塞队列 拒绝策略 10.1 Exector框架简介 10.1.1 Executor框架的两级调 ...

  7. nginx如何安装第三方模块

    以安装pagespeed为实例 在未安装nginx的情况下安装nginx第三方模块 # ./configure --prefix=/usr/local/nginx-1.4.1 \ --with-htt ...

  8. Linux如何查看端口状态

    netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的 ...

  9. 深入理解 Object.defineProperty 及实现数据双向绑定

    Object.defineProperty() 和 Proxy 对象,都可以用来对数据的劫持操作.何为数据劫持呢?就是在我们访问或者修改某个对象的某个属性的时候,通过一段代码进行拦截行为,然后进行额外 ...

  10. H5海报制作实践

    引言 年后一直处于秣马厉兵的状态,上周接到了一个紧急需求,为38妇女节做一个活动页,主要功能是生成海报,第一次做这种需求,我也是个半桶水前端,这里将碰到的问题.踩的坑,如何解决的分享给大家,讲的不到位 ...