从零搭建一个IdentityServer——初识OpenIDConnect
OpenIDConnect介绍及基本概念
至于oidc如何实现的,详情可以查看文档:https://openid.net/specs/openid-connect-core-1_0.html,从文档中可以找到这样几个关键词:ID Token、Authentication、Authentication Request、Authorization Code Flow、Implicit Flow、Hybrid Flow、Response_Type、Authorization Endpoint、Token Endpoint。



- ID Token:是一个包含特定声明(Claim)的jwt,特定的声明指的是身份验证服务器验证终端用户时候产生的供客户端使用的信息,如发行人(issuer)、最终用户标识(sub)、客户端id(aud)、过期时间(exp)、Token的发布时间(iat)、用户身份验证时间(auth_time)等,另外也可以包含其它的声明。ID Token由身份验证服务器(IdentityServer4,OP)颁发,交由客户端(RP)进行验证。
- Authentication:由IdentityServer4(OP)提供的身份验证(登录),最终用户通过IdentityServer4(OP)的身份验证(登录)后,就可以发起Authentication Request,或者说如果在发起Authentication Request时用户未进行身份验证时将重定向到身份验证界面进行身份验证。
- Authentication Request:向IdentityServer4(OP)的授权终结点发起的,用于获取ID Token、授权码(Authorization Code)甚至是访问Token(Access Token)的请求。
- Authorization Code Flow、Implicit Flow、Hybrid Flow:Authentication Request的三种不同请求流程。
- Response_Type:Authentication Request的参数之一,根据设定该参数来决定使用哪一种请求流程。
- Authorization Endpoint:授权终结点,用于接收Authentication Request。
- Token Endpoint:令牌终结点,用于接收访问令牌(Access Token)获取请求。
OIDC授权码流程及实现

确保“interactive”这个客户端的重定向地址为“应用程序地址/signin-oidc”,这里需要注意的是这个重定向地址实际上是客户端(WebApi)通过方法.AddOpenIdConnect添加的用于处理odic身份验证的身份验证处理器:

下面是登录页面url信息:





Access Token:





OIDC隐式流程及实现





小结
从零搭建一个IdentityServer——初识OpenIDConnect的更多相关文章
- 从零搭建一个IdentityServer——目录(更新中...)
从零搭建一个IdentityServer--项目搭建 从零搭建一个IdentityServer--集成Asp.net core Identity 从零搭建一个IdentityServer--初识Ope ...
- 从零搭建一个IdentityServer——聊聊Asp.net core中的身份验证与授权
OpenIDConnect是一个身份验证服务,而Oauth2.0是一个授权框架,在前面几篇文章里通过IdentityServer4实现了基于Oauth2.0的客户端证书(Client_Credenti ...
- 从零搭建一个IdentityServer——会话管理与登出
在上一篇文章中我们介绍了单页应用是如何使用IdentityServer完成身份验证的,并且在讲到静默登录以及会话监听的时候都提到会话(Session)这一概念,会话指的是用户与系统之间交互过程,反过来 ...
- 从零搭建一个IdentityServer——资源与访问控制
IdentityServer作为授权服务器它的最终目的是用于对资源进行管控,这里所说的资源有两种,其一是API资源,实际上也就是OIDC协议中客户端(RP)所需要访问的一系列受保护的资源(API),授 ...
- 从零搭建一个IdentityServer——项目搭建
本篇文章是基于ASP.NET CORE 5.0以及IdentityServer4的IdentityServer搭建,为什么要从零搭建呢?IdentityServer4本身就有很多模板可以直接生成一个可 ...
- 从零搭建一个IdentityServer——集成Asp.net core Identity
前面的文章使用Asp.net core 5.0以及IdentityServer4搭建了一个基础的验证服务器,并实现了基于客户端证书的Oauth2.0授权流程,以及通过access token访问被保护 ...
- 从零搭建一个IdentityServer——单页应用身份验证
上一篇文章我们介绍了Asp.net core中身份验证的相关内容,并通过下图描述了身份验证及授权的流程: 注:改流程图进行过修改,第三方用户名密码登陆后并不是直接获得code/id_token/acc ...
- 从零搭建一个SpringCloud项目之Feign搭建
从零搭建一个SpringCloud项目之Feign搭建 工程简述 目的:实现trade服务通过feign调用user服务的功能.因为trade服务会用到user里的一些类和接口,所以抽出了其他服务需要 ...
- 使用Vue脚手架(vue-cli)从零搭建一个vue项目(包含vue项目结构展示)
注:在搭建项目之前,请先安装一些全局的工具(如:node,vue-cli等) node安装:去node官网(https://nodejs.org/en/)下载并安装node即可,安装node以后就可以 ...
随机推荐
- Python & Matplotlib: Monte Carlos Method
Hey! 这里是Lindy:) Hope you guys are doing well! 今天想记录的概念叫做 蒙特·卡罗 方法,是今年在cs课上老师做的扩展延伸.其实我在初次接触这个概念时觉得很新 ...
- hadoop大数据组件启动
1.1.启动集群 sbin/start-dfs.sh注:这个启动脚本是通过ssh对多个节点的namenode.datanode.journalnode以及zkfc进程进行批量启动的. 1.2.启动Na ...
- DRF之访问权限控制和访问频率控制(节流)
权限控制 前言 用户验证用户权限,根据不同访问权限控制对不同内容的访问. 建议了解视图.token验证的内容. 使用流程 自定义访问权限类,继承BasePermission,重写has_permiss ...
- EasyPoi中@Excel注解中numFormat的使用
需求说明:使用EasyPoi时导出文件中折扣字段是小数,被测试同学提了一个bug,需要转成百分数导出. 个人觉得应该转百分号只要在@Excel注解里面加个属性即可,但是在网上的easypoi教程中没有 ...
- mysql错误:java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more tha ...
- Docker-Compose练习
运行一个镜像,需要添加大量的参数. 可以通过Docker-Compose编写这些参数. Docker-Compose可以帮助我们批量的管理容器. 只需要通过一个docker-compose.yml文件 ...
- Linux find 命令的初步实现(C++)
Implement a myfind command following the find command in UNIX operating system. The myfind command s ...
- 【JS学习】var let const声明变量的异同点
[JS学习]var let const声明变量的异同点 前言: 本博客系列为学习后盾人js教程过程中的记录与产出,如果对你有帮助,欢迎关注,点赞,分享.不足之处也欢迎指正,作者会积极思考与改正. 总述 ...
- Python基础语法2-数据类型
一,数字. 2. 字符串类型 3.列表 4.元组 5.集合 6.字典 7.数据类型转换: 8.序列操作
- Java-Servlet知识总结
目录 Servlet概述 为什么要学习Servlet 什么是 Servlet 工作流程 生命周期 处理请求的方法 HttpServletRequest 和 HttpServletResponse Ht ...