OIDC 与 OAuth2.0学习

news2025/1/16 18:44:10

OpenID Connect (OIDC) 和 OAuth 2.0 是两种不同的协议,它们通常一起使用,但服务于不同的目的。下面是它们的

主要区别和联系:

OAuth 2.0

OAuth 2.0 是一个授权框架,它允许第三方应用代表用户获取对服务器资源的有限访问权限。它不提供身份验证,而是专注于授权。OAuth 2.0 定义了四种角色:

  1. 资源所有者(Resource Owner):通常是用户,有权授予访问其受保护资源的权限。

  2. 客户端(Client):代表资源所有者并以其名义请求受保护资源的第三方应用。

  3. 授权服务器(Authorization Server):在成功验证资源所有者并获得授权后,向客户端发放访问令牌。

  4. 资源服务器(Resource Server):托管受保护资源的服务器,能够接受并使用访问令牌来响应客户端的请求。

OAuth 2.0 定义了几种授权流程(如授权码流程、隐式流程、资源所有者密码凭据流程和客户端凭据流程),用于不同的使用场景和安全需求。

OpenID Connect (OIDC)

OpenID Connect 是在 OAuth 2.0 之上构建的简单身份层。它允许客户端根据授权服务器的协议标准验证用户身份,并获取用户的基本概要信息。OIDC 在 OAuth 2.0 的四种角色基础上增加了一个角色:

  1. 身份提供者(Identity Provider, IdP):即授权服务器,负责验证用户身份并发放身份令牌(ID Token)。

OIDC 的核心是使用 id_token 来提供用户身份信息,这是一个符合 JSON Web Token (JWT) 格式的安全令牌,包含了用户的身份信息和验证状态。

联系与区别

  • 联系:OIDC 使用 OAuth 2.0 的授权流程来实现身份验证,因此它们通常一起部署。在 OIDC 流程中,客户端不仅获取访问令牌(用于访问资源服务器上的资源),还获取 id_token(用于验证用户身份)。

  • 区别:OAuth 2.0 专注于授权,而 OIDC 专注于身份验证。OAuth 2.0 不提供用户身份信息,而 OIDC 提供了用户身份信息。

使用场景

  • OAuth 2.0:适用于需要代表用户访问受保护资源的场景,例如,一个图片编辑应用需要访问用户的云存储服务来获取图片。

  • OIDC:适用于需要验证用户身份并获取用户信息的场景,例如,一个社交网络应用需要验证用户的身份并获取其基本资料。

在实际应用中,通常会同时使用 OAuth 2.0 和 OIDC 来实现完整的身份验证和授权解决方案。例如,一个应用可能首先使用 OIDC 来验证用户身份,然后使用 OAuth 2.0 来获取访问用户资源的权限。

OIDC学习

  1. OIDC 是什么? OIDC 是一个基于 OAuth 2.0 的身份认证协议,它增加了身份认证的功能。OIDC 通过在 OAuth 2.0 的基础上增加 ID Token(身份令牌),使得客户端能够识别并认证用户的身份。ID Token 通常采用 JWT(JSON Web Token)格式,包含用户的身份信息2。

  2. OIDC 的角色定义

    • OpenID Provider (OP):相当于 OAuth 2.0 中的授权服务器,负责颁发 Access Token 和 ID Token。
    • Relying Party (RP):代指 OAuth 2.0 中的客户端,即请求 ID Token 的应用。
    • End User (EU):即用户,ID Token 的信息中会包含关于终端用户的信息2。
  3. OIDC 的特点

    • 提供了用户身份验证。
    • 使用 ID Token 传递用户身份信息。
    • 通过定义 UserInfo Endpoint 来获取更多用户信息。

OAuth 2.0学习

  1. OAuth 2.0 是什么? OAuth 2.0 是一个授权标准协议,允许用户将第三方应用安全地授权访问其在服务提供者上的数据,而无需共享用户名和密码。它主要用于资源的授权访问345。

  2. OAuth 2.0 的角色定义

    • 资源所有者(Resource Owner):拥有受保护资源的用户。
    • 客户端(Client):希望访问资源所有者受保护资源的第三方应用程序。
    • 授权服务器(Authorization Server):负责认证资源所有者并颁发访问令牌给客户端。
    • 资源服务器(Resource Server):托管受保护资源的服务器345。
  3. OAuth 2.0 的授权类型

    • 授权码授权(Authorization Code Grant)
    • 隐式授权(Implicit Grant)
    • 密码授权(Resource Owner Password Credentials Grant)
    • 客户端凭证授权(Client Credentials Grant)



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

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

相关文章

深度践行“IaaS on DPU”理念,中科驭数正式发布“驭云”高性能云异构算力解决方案

5月10日至14日,由国家发展改革委联合国务院国资委、市场监管总局、国家知识产权局共同主办的第八届中国品牌日活动在上海世博展览馆举行。中科驭数高级副总裁张宇在中国品牌日新品首发首秀环节正式发布驭云高性能云异构算力解决方案,为企业提供更快部署、…

AWS ECS On Fargate 监控可观测最佳实践

概述 Amazon ECS on Fargate 为用户提供了简单、高效且可靠的容器化解决方案,使用户能够专注于应用程序开发和运行,而无需担心基础设施管理的复杂性。与其同时,用户需要实时了解在该环境中应用程序运行的性能、可用性、健康状况和资源使用情…

虾皮选品:Shopee首季盈利2.4亿;TikTok美区电商权限要求降低

2024年5月14号,跨境电商日报: 1.Ozon已成功回款 2.TikTok降低美区达人开通电商权限要求 3.Shopee首季盈利2.4亿 4.6月1日起,亚马逊退货处理费收取标准更新 5.欧盟委员会对从中国台湾地区和越南进口的不锈钢冷轧产品征收反补贴和反倾销税…

[Cesium]Cesium基础学习——Primitive

Cesium开发高级篇 | 01空间数据可视化之Primitive - 知乎 Primitive由两部分组成:几何体(Geometry)和外观(Appearance)。几何体定义了几何类型、位置和颜色,例如三角形、多边形、折线、点、标签等&#xf…

最佳实践 | 用HelpLook构建一体化企业知识中台

企业知识中台是内容与数据的双向交流的重要载体,它不仅能够让企业的内容说话,也能够倾听和分析数据。 你是否因寻找建立企业内部知识库/知识中台和说明文档平台的合适工具而苦恼?HelpLook数字内容平台正是你的理想之选。该平台以其简洁且用户…

一个开箱即用的已集成全部主流前端工具、类库的vue3+nuxt3服务端渲染ssr项目

项目背景: 需实现公司国际官网项目的seo如果是react就选用next,因为我最近在用vue3,就试试使用nuxt在网上找了很多模版,发现都不理想,缺的东西比较多,没法做到开箱即用,所以自己造个模版项目采…

【Java基础】枚举类的方法及应用

如何实现让一个类有固定个数的对象 手动封装构造方法(private) → 创建静态对象 → final修饰静态对象,使其成为常量 class Season { //枚举类public final static Season SPRING new Season();public final static Season SUMMER new Se…

【前端】打砖块游戏:实现细节介绍

打砖块游戏:实现细节介绍 在本文中,我将详细介绍如何使用HTML、CSS和JavaScript技术构建一个简单的打砖块游戏。我们将重点讨论游戏的三个核心技术方面:碰撞检测、画图和事件监听。 完整代码我放在:github可以直接拉取代码测试。 游戏概览 打砖块游戏中,玩家通过控制底…

如何用Rust获取本机CPU、内存在Web网页中显示?

目录 一、需求描述 二、具体操作步骤 三、知识点 1、systemstat 2、Actix 一、需求描述 需求: 1、需要使用Rust进行后端开发获取本机CPU和内存信息; 2、使用WEB框架发布API; 3、然后使用HTML/CSS/JavaScript进行前端开发&#xff0…

2024 年中国大学生程序设计竞赛全国邀请赛(郑州)暨第六届CCPC河南省大学生程序 设计竞赛Problem A. Once In My Life

//构造 #include<bits/stdc.h> using namespace std; #define int long long int a,b,c ; signed main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>a;while(a--){cin>>b>>c;int mb,k0;while(m){m/10;k;}int v0;for(int i1;i<9;…

Linux之·网络编程·I/O复用·select

系列文章目录 文章目录 前言一、概述1.1 介绍IO复用的概念和作用1.1.1 I/O复用具体使用的场景1.1.2 I/O复用常用函数 二、select函数的重要性和用途2.1 基本的select函数2.2 如何使用FD_SET、FD_CLR等宏来设置和清除文件描述符集合2.3 select()函数函数整体使用框架&#xff1a…

如何将3DMax中制作的特效渲染为AVI格式视频?---模大狮模型网

在3D设计中&#xff0c;制作出精美的特效是吸引眼球的关键之一。然而&#xff0c;仅仅制作特效还不够&#xff0c;将其渲染为视频并分享给观众才能展现出其真正的魅力。本文将为您提供一份完整的指南&#xff0c;教您如何在3ds Max中将制作的特效渲染为AVI格式视频&#xff0c;…

Linux-基础命令第三天

1、命令&#xff1a;wc 作用&#xff1a;统计行数、单词数、字符数 格式&#xff1a;wc 选项 文件名 例&#xff1a; 统计文件中的行数、单词数、字符数 说明&#xff1a;59代表行数&#xff0c;111代表单词数&#xff0c;2713代表字符数&#xff0c;a.txt代表文件名 选项…

固定优先级仲裁器及RR轮询Verilog实现

一、固定优先仲裁器 所谓固定优先仲裁器&#xff0c;即其优先级是固定的&#xff0c;当有多个请求到达时&#xff0c;按照优先级得到仲裁结果&#xff0c;并且优先级一直保持不变。如当有四个请求到达时&#xff0c;如果最高优先级为0号请求&#xff0c;则对0号请求响应&#…

Steam喜加一,限时免费领取《Machinika Museum》

《Machinika Museum》限时免费领取啦&#xff01;这是一款烧脑解谜游戏&#xff0c;让你挖掘神秘外星装置的秘密。在这个非常特别的异星装置博物馆里&#xff0c;你将扮演一名研究员&#xff0c;负责解开各种机械谜题&#xff0c;探索背后的故事。 在这个未来世界&#xff0c;外…

docker 部署 prometheus + Grafana +

# prometheus安装 # 1.拉镜像 docker pull prom/prometheus:v2.43.0 # 2.创建配置文件 mkdir /opt/prometheus/data cd /opt/prometheus/ vi prometheus.yml # 3.使用root用户启动 docker run --name prometheus -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/pro…

制造业装备虚拟3D云展馆开发提升企业营销效果

随着元宇宙时代的到来&#xff0c;商城的运营模式也在发生深刻变革。在这一大背景下&#xff0c;元宇宙商城更加注重场景营造和商品的线上互动体验。3D技术的迅猛发展&#xff0c;为电商行业带来了全新的展示、体验与服务模式&#xff0c;电商3D化已成为不可阻挡的潮流。 华锐3…

【JVM】调优工具

这里简单介绍一下各种调优用到的工具 一&#xff0c;环境准备 首先我们需要准备好Java环境&#xff0c;和win上的jdk环境&#xff08;图形化界面如jconsole只有jdk中有&#xff09;。 有这样一个类Prolem&#xff0c;每个线程都会带来100个垃圾对象&#xff0c;线程new完100…

【以规划为导向的自动驾驶】Planning-oriented Autonomous Driving

ABSTRACT 研究背景&#xff1a; 现代自动驾驶系统是顺序化地排列多个任务模块, 近期的主流方法&#xff1a; ①为单个任务部署独立模型 ②设计具有分离式头部的多任务(multi-task)范式。 但是&#xff0c;这些方法会累积误差或任务间协同不足而不利于自动驾驶。 作者认为重…

HTML常用标签-列表标签

列表标签 有序列表 分条列项展示数据的标签, 其每一项前面的符号带有顺序特征 无序列表 分条列项展示数据的标签, 其每一项前面的符号不带有顺序特征 有序列表标签 ol无序列表标签 ul列表项标签 li代码 <!-- 有序列表 --><ol><li>JAVA</li><li>前…