OIDC2-OIDC_关键组成部分

1.OIDC的组成部分

         OpenID ConnectOIDC 有几个关键组成部分,它们共同协作实现身份验证和授权的功能。以下是 OIDC 的核心组件:

1.1.身份提供者(IdP, Identity Provider)

         身份提供者 是负责执行身份验证的服务,验证用户的身份并向客户端(应用程序)颁发 ID Token 和 Access Token。身份提供者通常是可信的第三方,如 Google、Facebook、Apple 等。

         身份提供者的职责:接收用户凭据(如用户名和密码),验证其身份,并生成 ID Token,确保客户端能信任用户身份。

1.2.客户端(Client)

         客户端 是请求用户身份验证的应用程序或服务。客户端通过与身份提供者的交互来获取令牌,并使用这些令牌验证用户身份和访问受保护的资源。

         客户端的职责:发起身份验证请求,处理从身份提供者返回的 ID Token,并根据 Access Token 访问受保护的资源服务器。

1.3.授权服务器(Authorization Server)

         授权服务器 是一个服务,负责处理 OAuth 2.0 授权流程。它会在用户同意授权后,颁发 授权码(Authorization Code,并基于授权码向客户端发放 ID TokenAccess Token

         授权服务器的职责:在身份提供者的协作下,处理客户端的授权请求,确保令牌安全地传递给客户端。

1.4.资源服务器(Resource Server)

         资源服务器 是存储和管理受保护资源的服务器,它通过验证客户端的 Access Token 来控制对资源的访问。资源服务器不会直接参与身份验证,而是负责授权访问资源。

         资源服务器的职责:验证 Access Token 是否有效,并根据其权限授予客户端访问用户数据的权限。

1.5.最终用户(End User)

         最终用户 是正在使用应用程序并需要进行身份验证的人。用户会向身份提供者提供其登录凭据,完成身份验证流程。

         用户的角色:用户的身份信息会通过身份提供者验证,进而让客户端确认该用户的真实身份。

1.6.ID Token

       ID Token 是 OIDC的核心,是一种用于证明用户身份的令牌,通常采用 JWTJSON Web Token 格式。ID Token 包含用户身份信息(如用户名、邮箱等)以及与身份验证相关的元数据(如签发时间、过期时间等)。

         ID Token 的职责:提供用户的身份信息,供客户端验证用户身份。

1.7.Access Token

         Access Token 是 OAuth 2.0 中的授权令牌,客户端通过它可以向资源服务器请求受保护的资源。Access Token 通常不包含用户身份信息,而是用于授予访问权限。

         Access Token 的职责:让客户端可以代表用户访问受保护的资源(如API)。

1.8.UserInfo Endpoint

         UserInfo Endpoint 是 OIDC 提供的一个API 接口,允许客户端使用 Access Token 请求更多的用户信息(如用户的详细资料、权限等)。

         UserInfo Endpoint 的职责:作为获取用户详细信息的通道,补充 ID Token 所无法覆盖的用户数据。

2. OIDC 关键组件的交互流程

    Step1用户登录用户通过客户端发起身份验证请求,重定向到身份提供者的登录页面。

    Step2身份验证身份提供者验证用户的凭据,生成 ID TokenAccess Token

    Step3令牌返回客户端接收到 ID Token 以确认用户身份,并使用 Access Token 访问资源服务器中的受保护资源。

    Step4资源访问客户端使用 Access Token 与资源服务器交互,资源服务器通过验证 Access Token 允许或拒绝访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149275.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

数据分析:主成分以及贡献变量解析

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍分析目的变量的loadings的含义加载依赖包导入数据数据预处理PCA计算PCA图主成分分布系统信息介绍 PCA分析,即主成分分析(Principal Component Analysis),是一种统计方法,用于…

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.3-2.4

目录 第四门课 卷积神经网络(Convolutional Neural Networks)第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)2.3 残差网络(ResNets)(Residual Networks (ResNets))2.4 残差网络为什么有用&am…

在虚幻引擎中实时显示帧率

引擎自带了显示帧率的功能 但是只能在编辑器中显示 , 在游戏发布后就没有了 , 所以我们要自己做一个 创建一个控件蓝图 创建画布和文本 , 修改文本 文本绑定函数 , 点击创建绑定 添加一个名为 FPS 的变量 格式化文本 用大括号把变量包起来 {FPS Int} FPS 然后转到事件图表…

RHCS认证-Linux(RHel9)-Ansible

文章目录 一、ansible 简介二 、ansible部署三、ansible服务端测试四 、ansible 清单inventory五、Ad-hot 点对点模式六、YAML语言模式七、RHCS-Ansible附:安装CentOS-Stream 9系统7.1 ansible 执行过程7.2 安装ansible,ansible-navigator7.2 部署ansibl…

一看就会!PS2024下载安装教程详解

PS2024下载方法: PS2024安装教程: 1、右击【PS2024.zip】,选择【解压到PS2024】 2、右击【Set-up.exe】,选择【以管理员身份运行】 3、点击右下角灰色的小文件夹图标,选择【更改位置】 4、选择安装路径后,…

策略模式与工厂模式的区别

《策略模式与工厂模式的区别》 策略模式(Strategy Pattern) 和 工厂模式(Factory Pattern) 都是常见的设计模式,虽然它们在设计目标上有一些相似之处,如解耦代码、增强扩展性,但它们的应用场景和…

数字化转型中的供应链管理优化

在当今全球化和数字化的浪潮下,企业供应链管理面临着前所未有的挑战和机遇,企业在数字化转型过程中,如何优化供应链管理成为提升竞争力的关键。通过应用先进技术如RPA机器人流程自动化、大数据分析、物联网等,企业可以显著提高物流…

go解决引入私有包报错“Repository owner does not exist“的两种方式

当你写好引入的私有包,执行go mod tidy报错: Gogs: Repository owner does not exist fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 目前我的两种解决方案: 一、拉群整个…

基于WebServer的工业数据采集系统

一、项目框架及流程 二、http简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于Web Browser(浏览器)到Web Server(服务器)进行数据交互的传输协议。 HTTP是应用层协…

C/C++语言基础--C++构造函数、析构函数、深拷贝与浅拷贝等等相关知识讲解

本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 周末休息了,没有更新,请大家见谅哈;构造函数、析构函数可以说便随着C每一个程序,故学构造函数、析构函数是必要的;C语言后面也会继续更新知识点&am…

计算机的错误计算(一百零二)

摘要 探讨 的计算精度问题。 从计算机的错误计算(九十九)可知, 在IEEE 754-2019的列表中。因此,有必要分析其计算准确度。 例1. 已知 计算 若利用 Python的SciPy库中函数计算,则有: 若用Java的pow函…

通过 LabVIEW 正则表达式读取数值(整数或小数)

在LabVIEW开发中,字符串处理是一个非常常见的需求,尤其是在处理包含复杂格式的数字时。本文通过一个具体的例子来说明如何利用 Match Regular Expression Function 和 Match Pattern Function 读取并解析字符串中的数字,并重点探讨这两个函数…

毕业设计选题:基于ssm+vue+uniapp的英语学习激励系统小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…

达梦-华为鲲鹏ARM架构下性能测试最佳实践

一、测试综述 1.1 测试目的 本次测试的目的是验证达梦数据库,在鲲鹏服务器下,不同服务器参数基于sysbench性能压力测试的表现。本次参数是根据为华为鲲鹏arm服务器调优十板斧内建议值调整 成长地图-鲲鹏开发套件开发文档-鲲鹏社区 1.2 通用指标 指标…

虚幻蓝图Ai随机点移动

主要函数: AI MoveTo 想要AI移动必须要有 导航网格体边界体积 (Nav Mesh Bounds Volume) , 放到地上放大 , 然后按P键 , 可以查看范围 然后创建一个character类 这样连上 AI就会随机运动了 为了AI移动更自然 , 取消使用控制器旋转Yaw 取消角色移动组件 的 使用控制器所需的…

关于Cursor使用的小白第一视角

最近看破局感觉洋哥总是提到cursor,感觉好火,所以打算学习一下怎么用Cursor,如果可以希望能做一个我自己的网站。 之前从来没用过Cursor。所以,这是一篇小白视角的Cursor使用教程。 如果你也是一个小白,并且对Cursor…

ArcGIS Desktop使用入门(三)图层右键工具——拓扑(上篇:地图拓扑)

系列文章目录 ArcGIS Desktop使用入门(一)软件初认识 ArcGIS Desktop使用入门(二)常用工具条——标准工具 ArcGIS Desktop使用入门(二)常用工具条——编辑器 ArcGIS Desktop使用入门(二&#x…

Maven配置及使用

1. Maven简介和安装 1.1. Maven是一个依赖管理工具 问题: jar包的规模 随着使用框架越来越多,或框架的封装程度越来越高,项目中使用的jar包也越来越多。项目中,一个模块里用到上百个jar包是非常正常的jar包的来源 jar包所属技术…

LeetCode 面试经典150题 201.数字范围按位与

题目&#xff1a;给你两个整数 left 和 right &#xff0c;表示区间 [left, right] &#xff0c;返回此区间内所有数字 按位与 的结果&#xff08;包含 left 、right 端点&#xff09;。 提示&#xff1a;0 < left < right < 2^31 - 1 思路&#xff1a; 位与的特性…

《一本书讲透Elasticsearch》读书笔记(二)

Elasticsearch集群部署 Elastic Stack集群部署基础知识 Elasticsearch、Logstash、Beats、Kibana全部都支持跨平台部署 集群部署平台及操作系统的选型 可供选择的部署平台包括实体服务器、虚拟机&#xff08;VMWare、OpenStack等&#xff09;​、容器化平台&#xff08;Doc…