分类:
IdentityServer4教程
◆
标签:
#Asp.Net core基础
#认证
#授权
#Identity Server
#OpenId Connect
#OAuth2
◆
发布于: 2023-05-27 22:47:53
本节的内容是接着前面界面的内容的,如果您在学习本节的时候遇到了困难,请参考前面几节的内容,另外本教程的源代码均可以从如下链接下载:
Demo Code
本节我们来学习客户端应用如何使用openId Connect进行验证,登录以及授权,我们这里的客户端应用主要是以SPA类型的程序作为演示,为了方便,本节使用javascript的客户端应用来演示。
该实例的代码请参考Demo项目中的JavaScriptClient代码:用户在javascript页面上点击登录按钮,会跳转至identityserver4登录,登录成功后返回到javascript客户端,点击javascript页面上的CallAPI按钮会调用api,并返回结果,点击退出登录,即返回到JavascriptClient
Read more
分类:
IdentityServer4教程
◆
标签:
#Asp.Net core基础
#认证
#授权
#Identity Server
#OpenId Connect
#OAuth2
◆
发布于: 2023-05-27 22:42:21
我们前面两节讨论和两个应用场景,使用一个客户端通过取得access token访问api, 和一个使用mvc的应用通过交互式登录存取访问Mvc应用,我们本节将使得我们新创建的MvcClient除了交互式认证之外,还要可以在MvcClient中访问API。
IdentityServer4同时支持QAuth2.0和OpenId Connect两种协议,在上一个章节里我们仅仅返回给用户标识资源(CliamPrinpcal, Id Token), 如果我们在配置的时候指定API的Scope, 那么IdentityServer4会同时返回两种token: Id Token 和 Access Token。
修改IdentityServer的Client配置
更改配置非常简单,只需要添加ap
Read more
分类:
IdentityServer4教程
◆
标签:
#Asp.Net core基础
#认证
#授权
#OpenId Connect
#OAuth2
#Identity Server
◆
发布于: 2023-05-27 22:39:27
本节介绍如何添加一个基于用户的通过OpenId Connect交互式认证的实例。
本节介绍的实例是基于上一节实例的,因此我们需要在本节重用上节的代码,我们会在上一节代码的基础上创建一个新的MVC应用,用户会使用IdentityServer进行交互式授权访问该MVC应用。
添加UI
由于本节需要使用用户交互式认证和授权,因此我们需要对我们的IdentitySerer添加必要的UI界面。例如登录,注销,许可,错误页面等等。
IdentityServer4提供一个线程的UI,该UI库可以在这里找到Quickstart UI repo. 可以将该代码clone到本地后应用,也可以根据需要进行更改。
另外也可以直接通过模板在原有项目中添加模板:
dotnet n
Read more
分类:
IdentityServer4教程
◆
标签:
#Asp.Net core基础
#认证
#授权
#Identity Server
#OpenId Connect
#OAuth2
◆
发布于: 2023-05-27 22:35:48
简介
本系列的教程提供step by step的形式介绍IdentityServer4的几种常用的场景,这些实例从简单到复杂,建议您按照如下的顺序来学习。
给ASP.net Core应用添加Identity Server4支持
配置Identity Server
给多种客户端分发token
保护web应用和web api应用
使用EF Core添加数据库支持
添加ASP.net Identity支持
准备工作
为了使用IdentityServer4,首先需要应用IdentityServer4的模板,如果是.net core请使用如下的命令行添加模板。
dotnet new -i IdentityServer4.Templates
Ok, 我们开始吧!
Read more
分类:
IdentityServer4教程
◆
标签:
#认证
#授权
#Identity Server
#Asp.Net core基础
#OpenId Connect
#OAuth2
◆
发布于: 2023-05-27 22:33:06
本节我们介绍一下相关的专业术语。
术语图示
IdentityServer (标识服务)
IdentityServer(标识服务)是一个OpenId Connect服务提供者,它是一个实现了OpenId Connect和OAuth2.0的服务器,当然这个服务器运行相关的代码。
有很多文章或者其他的书籍媒体使用了很多不同的名字,例如Token服务器,标识提供者,授权服务器等等,实际上它们都指的是同一个东西,其内核的功能都是由软件实现的向客户端提供token的服务。
IdentityServer需要完成的工作可以由下述列表体现:
保护你的资源
使用本地账户或者外部账户向需要访问应用的用户提供认证。
提供会话管理和单点登录的功能。
管理和认证客户端应用。
分发
Read more
分类:
IdentityServer4教程
◆
标签:
#Asp.Net core基础
#认证
#授权
#Identity Server
#OpenId Connect
#OAuth2
◆
发布于: 2023-05-27 22:29:19
目前大多数现代的应用程序架构图如下
(借用IdentityServer4官网的图解释一下)
架构图
一般的交互过程可以通过如下的列表进行描述
用户浏览器和web应用进行交互。
Web应用和Web API进行交互。
基于浏览器的应用和Web API进行交互(例如:SPAs应用)
本地桌面应用和Web API进行交互
f服务端的应用和web api进行交互。
Web API之间的交互。
这个架构是非常典型的例子,每一层都需要保护的资源,都需要实现认证和授权,而且最大的问题是他们的用户有可能都存放在不同的地方,有不同的权限。
为了解决这个问题目前最佳的做法是将各层对于认证和授权的需求独立出来,例如使用我们以前讲过的Token Service,从而可以解决各层之间交
Read more
分类:
Azure虚拟机
◆
标签:
#虚拟机
#Linux
#Azure入门
#基础
◆
发布于: 2023-05-27 21:35:25
Azure 虚拟机使用 Azure 网络进行内部和外部网络通信。 本教程将指导读者部署两个虚拟机,并为这些 VM 配置 Azure 网络。 本教程中的示例假设 VM 将要托管包含数据库后端的 Web 应用程序,但本教程并未介绍如何部署应用程序。 在本教程中,你将了解如何执行以下操作:
创建虚拟网络和子网
创建公共 IP 地址
创建前端 VM
安全的网络流量
创建后端 VM
虚拟网络概述
Azure 虚拟网络在虚拟机、Internet 与其他 Azure 服务(例如 Azure SQL 数据库)之间实现安全网络连接。 虚拟网络分解为称作“子网”的逻辑段。 子网用于控制网络流,并充当安全边界。 部署 VM 时,该 VM 通常包含一个附加到子网的虚拟网络接口。
完成本教程后
Read more
分类:
Azure虚拟机
◆
标签:
#虚拟机
#Linux
#基础
#Azure入门
◆
发布于: 2023-05-27 21:32:04
使用负载均衡可以将进入的请求分发到虚拟机上,从而提高可用性。本教程有如下的要点:
创建一个负载均衡
创建一个健康监测
创建一个流量规则
使用cloud-init安装一个Node.js App
创建虚拟机,并配置虚拟机使用负载均衡
查看负载均衡
从负载均衡配置种移除虚拟机
Azure 负载均衡器是位于第 4 层(TCP、UDP)的负载均衡器,通过在正常运行的 VM 之间分发传入流量提供高可用性。 负载均衡器运行状况探测器监视每个 VM 上的给定端口,仅将流量分发给正常运行的 VM。定义包含一个或多个公共 IP 地址的前端 IP 配置。 利用此前端 IP 配置,可通过 Internet 访问负载均衡器和应用程序。虚拟机使用其虚拟网络接口卡 (NIC) 连接到负载均衡器。 若要
Read more
分类:
Azure虚拟机
◆
标签:
#基础
#Azure入门
#Linux
#虚拟机
◆
发布于: 2023-05-27 21:18:35
虚拟机规模集运行和管理一个可以自动缩放的虚拟机集合,需要注意的这个集合里的虚拟机配置都是一致的。在虚拟机规模集中你可以手动缩放,也可以定义一些规则自动来缩放,例如通过资源的利用率,CPU、内存、或者网络的流量等等。本教程主要知识点:
使用Cloud-init创建一个用于缩放的应用。
创建虚拟机规模集
添加或者减少虚拟机规模集的实例数
创建自动缩放规则
查看虚拟机规模集的链接信息
在虚拟机规模集中使用数据磁盘。
在开始之前我们还是先熟悉一下虚拟机规模集的基本概念。虚拟机规模集主要用于管理同一个配置的,自动缩放的虚拟机。在虚拟机规模集中的虚拟机是分布创建,同时也使用了失效域和更新域两个概念。创建在虚拟机规模集中的虚拟机可以通过定义自动缩放的规则进行缩放,
Read more
分类:
Azure虚拟机
◆
标签:
#虚拟机
#Linux
#Azure
#基础
◆
发布于: 2023-05-27 21:05:53
首先我们需要了解什么是可用性集合。用户如果采用了以虚拟机为主的方案,例如N层应用架构等,为了提高可用性和可靠性,那么可以使用Azure提供的可用性集合,可用性集合可以保证创建的虚拟机会以分布式的形式部署在独立不同的硬件集群上,从而提高可用性和可靠性,另外可用性结合也包括我们经常提到的两个概念:Fault Doamin和Update domain, 分别对应于处理当失效或者更新对客户应用系统的影响。
更为详细的知识,您可以参考如下的文档:
https://docs.microsoft.com/en-us/azure/virtual-machines/availability
https://docs.microsoft.com/en-us/azure/availability-z
Read more