用ASOS建立自定义的OpenID 服务(一)-----------简介
翻译文章 原文地址
这一系列共包括9个部分,这是第一部分,下面是英文原文地址:
- Introduction
- Choosing the right flow(s)
- Registering the middleware in the ASP.NET Core pipeline
- Creating your own authorization provider
- Implementing the resource owner password credentials grant
- Implementing the authorization code and implicit flows
- Adding custom claims and granting scopes
- Testing your authorization server with Postman
- Conclusion
什么是ASOS
ASOS是AspNet.Security.OpenIdConnect.Server 的简称,是asp.net core框架下一个开源的OAuth2/OpenID连接服务的中间件。设计为支持.net 桌面框架和新的.net core平台。ASOS是 aspnet-contrib initiative 的一部分,是OAuth2社交登录的基础部分,可见连接( the OAuth2 social providers for ASP.NET Core)。
ASOS不止使用了OAuth2 authorization server同样的低层、协议优先的方法,而且还添加了新的openID 连接的特点例如( 配置发现 provider configuration discovery, 客户端发起的退出登录client-initiated logout or 用户信息支持userinfo support),另外还实现了最近Oauth2的新的规范( token撤销 token revocation or token introspection 这个需要感谢Michael Ciarlillo 的贡献)
ASOS与其他身份服务的区别
同其他身份服务不同,ASOS只提供在应用和协议细节之间的联系,不提供类似用户管理,验证页面和CORS策略的功能,这些必须自己实现。
尽管ASOS需要很多OAuth2/OpenID知识,而且需要做更多的工作相比其他交钥匙项目(比如说 IdentityServer 或者 OpenIddict),ASOS更加灵活并且易于与现有环境融合。
你的项目是否要用ASOS
若果你不熟悉OAuth2 或者 OpenID,你最好不用ASOS。相比OAuthAuthorizationServerMiddleware,ASOS设计为底层框架,而不是拿来即用的服务。必须实现自己的授权逻辑和其他功能。
当然,如果你不想成为ASOS的专家,ASOS也为你提供了一系列支持(例如请求验证、配置发现、token序列化与反序列化),你只要实现其余的具体部分即可,例如客户认证和确认页面。
OpenIddict介绍
在ASOS和ASP.net Core
Based on ASOS and ASP.NET Core Identity身份框架的基础上。OpenIddict 是一个提供大多数认证功能的交钥匙项目,OpenIddict原生的支持OAuth2/OpenID互动和非互动的流控制,并且容易实现。仅需加一个类似ASP.NET Core Identity AccountController的
AuthorizationController。
尽管Openiddict刚刚起步,它是简单项目的最好选择。如果你需要更加复杂的并且全程控制的Openid服务,ASOS是你最好的选择。关于OpenIDDict可以参考下面几篇文章:
- Setting up ASP.NET v5 (vNext) to use JWT tokens (using OpenIddict)
- Using OpenIddict to easily add token authentication to your .NET web apps
- Authorizing your .NET Core MVC6 API requests with OpenIddict and Identity
这个系列从简到繁,基本涵盖了建立ASOS 服务端的各个方面,敬请期待。
用ASOS建立自定义的OpenID 服务(一)-----------简介的更多相关文章
- 10_Jaxws使用自定义pojo发布服务
[简述] 查询三天的天气信息(天气概况.日期.温度),测试jaxws是否支持自定义pojo发布服务. [开发过程] 服务端: 1.自定义pojo(天气概况.日期.温度) 2.开发SEI接口及实现类 3 ...
- Power BI 与 Azure Analysis Services 的数据关联:1、建立 Azure Analysis Services服务
Power BI 与 Azure Analysis Services 的数据关联:1.建立 Azure Analysis Services服务
- 6-1 建立客户端与zk服务端的连接
6-1 建立客户端与zk服务端的连接 zookeeper原生java api使用 会话连接与恢复; 节点的增删改查; watch与acl的相关操作; 导入jar包;
- Ionic-wechat项目边开发边学(三):自定义样式,指令,服务
摘要 上一篇文章主要介绍了一个ionic项目的标准目录结构,header标签的使用,以及页面之间的切换.这篇文章实现的功能有: 消息数据的获取, 消息列表的展示, 消息标为已读/未读, 主要涉及的到的 ...
- linux自定义开机启动服务和chkconfig使用方法
linux自定义开机启动服务和chkconfig使用方法 1. 服务概述在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动,关闭的时候自动 ...
- (转)linux自定义开机启动服务和chkconfig使用方法
原文:https://www.cnblogs.com/jimeper/archive/2013/03/12/2955687.html linux自定义开机启动服务和chkconfig使用方法 1. 服 ...
- 163_技巧_Power BI 一键批量建立自定义字段参数
163_技巧_Power BI 一键批量建立自定义字段参数 一.背景 在 2022 年 5 月开始,Power BI 新增了一个非常有用的功能字段参数.再也不用写一串的 SWITCH 了.字段参数的效 ...
- ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介
概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要介绍了ASP.NET Core中StaticFile.Middleware ...
- ASP.NET Core 1.0 静态文件、路由、自定义中间件、身份验证简介
概述 ASP.NET Core 1.0是ASP.NET的一个重要的重新设计. 例如,在ASP.NET Core中,使用Middleware编写请求管道. ASP.NET Core中间件对HttpCon ...
随机推荐
- python递归查找文件目录
# -*- coding:utf-8 -*- import os allfile = []def get_all_file(path): allfilelist = os.listdir(path) ...
- UVAlive 3708 Graveyard(最优化问题)
题目描述: 在周长10000的圆上,初始等距的放置着n个雕塑,现在新加入m个雕塑,要使得这n+m个雕塑仍然等距,问原来n个雕塑要移动的距离总和的最小值. 原题地址: http://acm.hust.e ...
- GDOI2016游记
翘课真好……(下午返校gg…… 为了GDOI,我特地准备了一堆模板,然后,由于在考前不久发现一个挺好玩的手游……模板就这么被放在一边(只翻了几次…… Day 0 同样是坐动车,到广州后转大巴到四会市, ...
- BZOJ 1012: [JSOI2008]最大数maxnumber【线段树单点更新求最值,单调队列,多解】
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 10374 Solved: 4535[Subm ...
- oracle erp 表结构
BOM模块常用表结构 表名: bom.bom_bill_of_materials 说明: BOM清单父项目 BILL_SEQUENCE_ID NUMBER 清单序号(关键字)ASSEMBLY_ITEM ...
- JS中const、var 和let的区别
今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章.主要内容是:js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. 1 ...
- LinkedHashMap 源码详细分析(JDK1.8)
1. 概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题.除此之外,Linke ...
- 从零开始学习前端开发 — 14、CSS3变形基础
一.css3变形: transform:rotate(旋转)|scale(缩放)|skew(倾斜)|translate(位移); 注:当多种变形方式综合在一起时,用空格隔开 1.旋转 a) rotat ...
- PHPMailer发送邮件失败:SMTP connect failed
标签: PHPMailersmtp邮件服务器邮件发送失败 2015-05-22 19:29 1755人阅读 评论(0) 收藏 举报 分类: Apache php+mysql(2) 版权声明:本文为博主 ...
- Dedecms列表页标签list/pagelist使用方法及pagelist的样式
Dede的默认页面中有个list_article.htm页面,这是dede的列表页面.在列表页显示文章的列表,是通过dede的list和pagelist这两个个标签实现的.本文就这两个标签的使用及pa ...