目录:

  1. OpenID 与 OAuth2 基础知识
  2. Blazor wasm Gitee 码云登录
  3. Blazor wasm GitHub 登录
  4. Blazor wasm Google 登录
  5. Blazor wasm Facebook 登录
  6. Blazor IdentityServer 部署到服务器
  7. Blazor wasm IdentityServer 单点登录

相关基础知识

OpenID 与 OAuth2

参考阅读 https://auth0.com/docs/authenticate/protocols/openid-connect-protocol#what-is-openid-connect-oidc-

OpenID 连接协议

什么是 OpenID Connect (OIDC)?

OpenID Connect (OIDC) 是构建在OAuth 2.0框架之上的身份层。它允许第三方应用程序验证最终用户的身份并获取基本的用户配置文件信息。OIDC 使用JSON Web 令牌(JWT),您可以使用符合 OAuth 2.0 规范的流获取该令牌。看看我们的

OIDC 手册

更多细节。

OpenID 与 OAuth2

OAuth 2.0 涉及资源访问和共享,而 OIDC 涉及用户身份验证。其目的是让您一次登录多个站点。每次您需要使用 OIDC 登录网站时,您都会被重定向到您登录的 OpenID 站点,然后返回到该网站。例如,如果您选择使用 Google 帐户登录 Auth0,则您使用的是 OIDC。一旦您成功通过 Google 进行身份验证并授权 Auth0 访问您的信息,Google 就会将有关用户和所执行的身份验证的信息发送回 Auth0。此信息以 JWT 返回。您将收到一个访问令牌,如果需要,还会收到一个ID 令牌。

OpenID 和 JWT

JWT 包含索赔,它们是有关实体(通常是用户)和其他元数据的语句(例如姓名或电子邮件地址)。这

OpenID 连接规范定义了一组标准声明。该组标准声明包括姓名、电子邮件、性别、出生日期等。但是,如果您想要捕获有关用户的信息,并且当前没有最能反映此信息的标准声明,您可以创建自定义声明并将其添加到您的令牌中。

使用 OIDC 和 OAuth2 配置应用程序

您可以自动使用 OIDC 发现配置您的应用程序。

Auth0 中的应用程序

Auth0 中的术语“应用程序”或“app”并不暗示任何特定的实现特征。例如,它可以是在移动设备上执行的本机应用程序、在浏览器上执行的单页应用程序或在服务器上执行的常规 Web 应用程序。

Auth0 根据以下特征对应用程序进行分类:

应用程序类型:要向您的应用程序添加身份验证,您必须在Auth0 仪表板中注册它并从以下应用程序类型之一中进行选择:

  • 常规 Web 应用程序:在服务器上执行大部分应用程序逻辑的传统 Web 应用程序(例如 Express.js 或 ASP.NET)。

  • 单页 Web 应用程序 (SPA):在 Web 浏览器中执行大部分用户界面逻辑的 JavaScript 应用程序,主要使用 API(例如 AngularJS + Node.js 或 React)与 Web 服务器通信。

  • 本机应用程序:在设备(例如 iOS 或 Android)上本机运行的移动或桌面应用程序。

  • 机器对机器 (M2M) 应用程序:非交互式应用程序,例如命令行工具、守护程序、物联网设备或在后端运行的服务。通常,如果您有需要访问 API 的服务,则可以使用此选项。

凭证安全:根据OAuth 2.0 规范,应用程序可以分为公共或机密;机密应用程序可以安全地保存凭据,而公共应用程序则不能。

所有权:应用程序是否被归类为第一方或第三方取决于应用程序的所有权和控制权。第一方应用程序由拥有 Auth0 域的同一组织或个人控制。第三方应用程序使外部各方或合作伙伴能够安全地访问 API 背后的受保护资源。

单点登录

当用户登录到一个应用程序,然后自动登录到其他应用程序时,就会发生单点登录(SSO),无论用户使用的平台、技术或域如何。用户仅登录一次,因此该功能被称为“单点登录”。

例如,如果您登录 Gmail 等 Google 服务,您将自动通过 YouTube、AdSense、Google Analytics 和其他 Google 应用程序的身份验证。同样,如果您退出 Gmail 或其他 Google 应用程序,您也会自动退出所有应用程序;这称为单点注销。

SSO 在使用您的应用程序和服务时为用户提供无缝体验。用户无需记住每个应用程序或服务的单独凭据集,只需登录一次即可访问全套应用程序。

每当用户访问需要身份验证的域时,他们都会被重定向到可能要求登录的身份验证域。如果用户已经在该身份验证域登录,则可以立即重定向到原始域,而无需登录再次。

首次登录时 SSO

对于使用 Auth0 的 SSO,中央服务是 Auth0授权服务器。

让我们看一下用户首次登录时的 SSO 流程示例:

  1. 您的应用程序将用户重定向到登录页面。

  2. Auth0 检查是否存在现有的 SSO cookie。

  3. 由于这是用户第一次访问登录页面并且不存在 SSO cookie,因此系统将要求用户使用您已配置的连接之一进行登录。

  4. 用户登录后,Auth0 将设置一个 SSO cookie 并将用户重定向到您的应用程序,返回一个包含用户身份信息的 ID 令牌。

后续登录时进行 SSO

让我们看一下用户再次访问您的网站时的 SSO 流程示例:

  1. 您的应用程序将用户重定向到登录页面。

  2. Auth0 检查是否存在现有的 SSO cookie。

  3. Auth0 找到 SSO cookie,并在必要时更新它。不显示登录屏幕。

  4. Auth0 将用户重定向到您的应用程序,返回包含用户身份信息的 ID 令牌。

OpenID 连接

OpenID Connect (OIDC) 是一种常用于面向消费者的 SSO 实现的身份验证协议。OIDC 协议通过JSON Web 令牌和中央身份提供商处理身份验证。

与 OIDC 合作:

  1. 用户请求访问应用程序。

  2. 应用程序将用户重定向到身份提供商以进行身份​​验证。

  3. 身份提供者验证用户,如果成功,则提示用户授予对应用程序的数据访问权限。

  4. 如果授予访问权限,身份提供者将生成一个 ID 令牌,其中包含应用程序可以使用的用户身份信息。

  5. 身份提供者将用户返回到应用程序。

下一篇直接开始快速通关CV大法

Blazor入门100天 : 身份验证和授权之 OpenID 与 OAuth2的更多相关文章

  1. Blazor入门100天 : 身份验证和授权 (2) - 角色/组件/特性/过程逻辑

    目录 建立默认带身份验证 Blazor 程序 `角色/组件/特性/过程逻辑 DB 改 Sqlite 将自定义字段添加到用户表 脚手架拉取IDS文件,本地化资源 freesql 生成实体类,freesq ...

  2. Blazor入门100天 : 身份验证和授权 (6) - 使用 FreeSql orm 管理ids数据

    目录 建立默认带身份验证 Blazor 程序 角色/组件/特性/过程逻辑 DB 改 Sqlite 将自定义字段添加到用户表 脚手架拉取IDS文件,本地化资源 freesql 生成实体类,freesql ...

  3. RabbitMQ身份验证、授权、访问控制

    原文:https://www.rabbitmq.com/access-control.html 概述 不同的用户只能访问特定的虚拟主机.他们在每个虚拟主机中的权限也可以被限制. RabbitMQ支持两 ...

  4. ASP.NET Web API身份验证和授权

    英语原文地址:http://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-a ...

  5. ASP.NET MVC5学习系列——身份验证、授权

    一.什么是身份验证和授权 人们有时对用户身份验证和用户授权之间的区别感到疑惑.用户身份验证是指通过某种形式的登录机制(包括用户名/密码.OpenID.OAuth等说明身份的项)来核实用户的身份.授权验 ...

  6. 使用JWT的ASP.NET CORE令牌身份验证和授权(无Cookie)——第1部分

    原文:使用JWT的ASP.NET CORE令牌身份验证和授权(无Cookie)--第1部分 原文链接:https://www.codeproject.com/Articles/5160941/ASP- ...

  7. 从零搭建一个IdentityServer——聊聊Asp.net core中的身份验证与授权

    OpenIDConnect是一个身份验证服务,而Oauth2.0是一个授权框架,在前面几篇文章里通过IdentityServer4实现了基于Oauth2.0的客户端证书(Client_Credenti ...

  8. 使用 cookie 的身份验证和授权

    前言 在上一章 学学 dotnet core 中的身份验证和授权-1-概念 中,我们大致明白了身份验证和授权两者的关系.那么在本文中,我们将使用 cookie 来做一个简单的身份验证和授权. 本文中我 ...

  9. 学学dotnet core中的身份验证和授权-1-概念

    前言 身份验证: Authentication 授权: Authorization net core 中的身份验证和授权这两个部分,是相辅相成的.当初我在学在部分的时候,是看的 net core 官网 ...

  10. ASP.NET WEBAPI 的身份验证和授权

    定义 身份验证(Authentication):确定用户是谁. 授权(Authorization):确定用户能做什么,不能做什么. 身份验证 WebApi 假定身份验证发生在宿主程序称中.对于 web ...

随机推荐

  1. Django框架——模型层单表操作、模型层多表操作、模型层常用和非常用字段和参数、模型层进阶

    文章目录 1 模型层-单表操作 一 ORM简介 二 单表操作 2.1 创建表 1 创建模型 2 更多字段 3 更多参数 4 settings配置 5 增加,删除字段 2.2 添加表纪录 2.3 查询表 ...

  2. MySQL系列之MyCat——架构图、准备、安装、配置文件、垂直分表、MyCAT核心特性——分片(水平拆分)、范围分片、枚举分片、Mycat全局表、E-R分片

    文章目录 1. MyCAT基础架构图 2. MyCAT基础架构准备 2.1 环境准备: 2.2 删除历史环境: 2.3 创建相关目录初始化数据 2.4 准备配置文件和启动脚本 2.5 修改权限,启动多 ...

  3. 0 基础晋级 Serverless 高手课 — 初识 Serverless(上)

    应用 - 无服务器 2017- 2006 函数即服务 类似 云计算 (Serverless) faas 函数服务 + 后端数据库 账号服务 弹性,按量 服务器,客户端的终结 - 弹性 - 按量 优点 ...

  4. docker入门加实战—从部署MySQL入门docker

    docker入门加实战-从部署MySQL入门docker docker部署MySQL 输入如下命令: docker run -d \ --name mysql \ -p 3306:3306 \ -e ...

  5. 若依(ruoyi)开源系统-多数据源问题踩坑实录

    内容概要 上一节内容   介绍了用开源系统若依(ruoyi)搭建页面的过程.在实际项目中,经常遇到多数据源后者主从库的情况.本节记录若依多数据源配置过程中遇到的问题排查过程. 背景描述 1.上一节在r ...

  6. 低代码平台探讨-MetaStore元数据缓存

    背景及需求 之前提到我们模型驱动的实现选择的是解释型,需要模型的元数据信息,在接到请求后动态处理逻辑. 此外,应用的通用能力中还包括:页面dsl查询,菜单查询等. 而且后期加入触发器,用户自定义api ...

  7. Lucky Array 题解

    Lucky Array 题目大意 维护一个序列,支持以下操作: 区间加一个大于 \(0\) 的数. 区间查询有多少个数位上只包含 \(4\) 或 \(7\) 的数. 思路分析 看起来很不可做,但考虑到 ...

  8. python代码签到学习同

    仅用于学习使用 import requests,json,time #填入Cookie headers={ "Cookie": "", "User-A ...

  9. upload—labs

    首先 常见黑名单绕过 $file_name = deldot($file_name);//删除文件名末尾的点上传 shell.php. $file_ext = strtolower($file_ext ...

  10. iOS程序生命周期流程

    盛年不重来,一日难再晨.及时宜自勉,岁月不待人.   iOS系统资源是有限的,合理的去配置应用程序的运行状态以及了解app的生命周期对于大多数开发者来说是很重要的一件事情!在后台进行运行时app会受到 ...