Skip to main content

使用客户端凭证保护API

分类:  IdentityServer4教程 标签:  #Asp.Net core基础 #认证 #授权 #OpenId Connect #Identity Server #OAuth2 发布于: 2023-05-27 22:58:10

本教程演示了使用客户端凭证保护API,你可以参考源码: 本节教程源码 准备工作 我们需要使用IdentityServer4提供的模板,使用如下的命令安装模板 dotnet new -i IdentityServer4.Templates 安装好模板之后,即可以在创建项目的时候应用模板 新建ASP.net Core应用,并设置IDS4 我们先创建好项目需要使用的目录结构 md quickstart cd quickstart md src cd src dotnet new is4empty -n IdentityServer 创建完成后请仔细检查新建的目录结构,需要注意的是该模板创建了一个用于配置I

Read more

Identity Server和Asp.net Core Identity集成

分类:  IdentityServer4教程 标签:  #Asp.Net core基础 #认证 #授权 #Identity Server #OpenId Connect #OAuth2 发布于: 2023-05-27 22:53:49

IdentityServer4被设计成可以和各种其他的数据库进行集成,我们前一篇讲解了如何和EF Core支持的关系型数据库进行集成,我们本节讲解如何和ASP.net Core Identity进行集成。 本系列的源代码都可以从如下的链接找到: Demo Source Code 关于本系列的文章您可以从下述列表找到: 本节我们会使用新的模板创建一个基于ASP.net Core Identity的IdentityServer的项目,因此我们前面的IdentityServer项目不再使用。我们会创建一个新的,这个新的IdentityServer项目会使用Identity库的数据库,登录,登出界面等等。如果您不熟悉Identity, 您可以参考我之前的文章,文章有讲述Identit

Read more

使用EF Core支持的数据库来存储Identity Server4的配置

分类:  IdentityServer4教程 标签:  #Asp.Net core基础 #认证 #授权 #Identity Server #OpenId Connect #OAuth2 发布于: 2023-05-27 22:50:25

我们前面的例子中在项目IdentityServer中都是使用一个config类来定义资源和scope, 以及客户端,但是在实际的应用中,我们可能需要更加方便的管理资源,scope以及客户端的形式,例如可以有一个界面允许客户端自己注册并生成security来使用QAuth2.0或者openIDConnect, 因此对于IdentityServer4来说我们需要一些其他的方法动态的配置这些参数。 IdentityServer4提供EF Core的支持,从而将这些配置放到数据库中进行保存。 EF Core的支持中分为两块,一块是对于配置的保存,另外一块是对一些中间运行的数据进行保存,例如生成的key等等。 IdentityServer4.EntityFramework 在is4中我

Read more

Identity Server和SPA应用交互

分类:  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

保护ASP.net Core应用和API

分类:  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

Identity Server4和Asp.net Core应用交互

分类:  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

Identity Server4教程简介

分类:  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

Identity Server4常用术语

分类:  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

Identity Server4架构介绍

分类:  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