五、WebApi建立authorization server

一、服务端建立authorization server

1、安装

Install-Package identityserver4

2、编写配置类

    //一、IDS4服务制定
    public class Config
    {
        //1、定义API资源
        public static IEnumerable<ApiResource> GetApis() //ApiResource是属于using IdentityServer4.Models;内的。
        {
            return new List<ApiResource>
            {
                new ApiResource("api1", "My API")
            };
        }
        //2、定义客户端
        public static IEnumerable<Client> GetClients()
        {
            return new List<Client>
            {
                new Client
                {
                    ClientId = "client",
                    // no interactive user, use the clientid/secret for authentication
                    AllowedGrantTypes = GrantTypes.ClientCredentials,
                    // secret for authentication
                    ClientSecrets =
                    {
                       new Secret("secret".Sha256())
                    },
                    // scopes that client has access to
                    AllowedScopes = { "api1" }
                }
            };
        }
    }

在Startup.cs中注入ids4

            //1、注入服务添&加在最底部
            var builder = services.AddIdentityServer()
                .AddDeveloperSigningCredential()//添加开发人员签名凭据
            //.AddInMemoryIdentityResources(Config.GetIdentityResources())  //注入GetIdentityResources资源。
            .AddInMemoryApiResources(Config.GetApis()) //添加内存apiresource
            .AddInMemoryClients(Config.GetClients());  //添加内存client

到此我们的授权服务端算是完成了

二、客户端集成IdentityServer

首先新建一个webapi的项目,同时安装中间件

dotnet new webapi --name ClientCredentialApi
Install-Package IdentityServer4.AccessTokenValidation

注入Di

            //1、注入服务添&加在最底部
            var builder = services.AddIdentityServer()
                .AddDeveloperSigningCredential()//添加开发人员签名凭据
            //.AddInMemoryIdentityResources(Config.GetIdentityResources())  //注入GetIdentityResources资源。
            .AddInMemoryApiResources(Config.GetApis()) //添加内存apiresource
            .AddInMemoryClients(Config.GetClients());  //添加内存client

同时把所有控制器打上[Authorize]的标记,到此我们客户端配置已经完成了

使用postman来测试接口

我们分别启动这两个项目,5000端口代表授权服务器,5001代表Api服务器
1.使用postman来测试调用

原文地址:https://www.cnblogs.com/fger/p/11021094.html

时间: 2024-08-01 03:27:38

五、WebApi建立authorization server的相关文章

OAuth2、OpenID Connect、IdentityServer建立Authorization Server简介

当我们在登录一些网站的时候,需要第三方的登录.比如,现在我们要登录简书https://www.jianshu.com/sign_in,我们使用微博登录,点击下方的一个微博的小按钮,就会出现这么一个地址https://api.weibo.com/oauth2/authorize?client_id=1881139527&redirect_uri=http%3A%2F%2Fwww.jianshu.com%2Fusers%2Fauth%2Fweibo%2Fcallback&response_ty

使用Identity Server 4建立Authorization Server (1)

预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 本文内容基本完全来自于Identity Server 4官方文档: https://identityserver4.readthedocs.io/ 官方文档很详细的. 使用OAuth可以更安全, 这里我们的authorization server和web api 以及网站将分别独立运行. 建立authorization server 建立asp.net core 项目使用空模板. 项目建立后, 运行

使用Identity Server 4建立Authorization Server (2)

第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第一部分主要是建立了一个简单的Identity Server. 接下来继续: 建立Web Api项目 如图可以在同一个解决方案下建立一个web api项目: (可选)然后修改webapi的launchSettings.json, 我习惯使用控制台, 所以把IISExpress相关的都删掉, 并且把端口改成5001: { "profiles": { "WebApi": {

使用Identity Server 4建立Authorization Server (5)

预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二部分: http://www.cnblogs.com/cgzl/p/7788636.html 第三部分: http://www.cnblogs.com/cgzl/p/7793241.html 第四部分: http://www.cnblogs.com/cgzl/p/7795121.html 之前的配置

续IDS4建立Authorization server和Client

一.准备 创建一个名为QuickstartIdentityServer的ASP.NET Core Web 空项目(asp.net core 2.2),端口5000创建一个名为Api的ASP.NET Core Web Api 项目(asp.net core 2.2),端口5001 二.定义服务端配置 1.NuGet命令行 NuGet命令行:Install-Package IdentityServer4 2.在QuickstartIdentityServer项目中添加一个Config.cs文件: u

第三篇——第二部分——第五文 配置SQL Server镜像——域环境SQL Server镜像日常维护

本文接上面两篇搭建镜像的文章: 第三篇--第二部分--第三文 配置SQL Server镜像--域环境:http://blog.csdn.net/dba_huangzj/article/details/28904503第三篇--第二部分--第四文 配置SQL Server镜像--非域环境:http://blog.csdn.net/dba_huangzj/article/details/27652857 在搭建的过程中,可能你会遇到比较多的问题,下面介绍一些常见的问题及解决方案,另外把主要精力放到对

通过作业调度建立SQL Server的自动备份

SQL Server的作业调度来建立自动备份的方法 ◆1.进入企业管理器中->管理->sql server代理->作业; ◆2.新建作业,作业名称随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户,前提是该用户有执行作业的权限; ◆3.点击步骤标签,进入步骤面板.新建步骤,步骤名可以随便填写,如步骤1,类型和数据库默认,不需要修改.命令中写入以下语句: BACKUP DATABASE [数据库名] TO DISK = N''F:data数据库备份'' WITH NOIN

OWIN OAuth 2.0 Authorization Server

OWIN OAuth 2.0 Authorization Server 源码在上面的地址中可以下载 打开客户端页面http://localhost:38500/ 客户端代码引用了DotNetOpenAuth.OAuth2 public class HomeController : Controller { private WebServerClient _webServerClient; public ActionResult Index() { ViewBag.AccessToken = Re

学习ASP .NET MVC5官方教程总结(五)使用SQL Server LocalDB创建连接字符串

学习ASP .NET MVC5官方教程总结(五)使用SQL Server LocalDB创建连接字符串 在上一章中,我们创建了MovieDBContext类来连接数据库.处理Movie 对象和数据库记录的映射.但是我们没有指定使用什么数据库,也没指定使用哪个数据库.其实,在我们没有指定数据库的时候,Entity Framework 默认使用LocalDB . 在本节中我们将介绍如何在Web.config 文件中添加一个数据库连接. LocalDB 是SQL Server Express 数据库引