码迷,mamicode.com
首页 > Windows程序 > 详细

五、WebApi建立authorization server

时间:2019-06-14 09:35:33      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:get   mamicode   SHA256   resources   客户端   image   ice   dev   otn   

一、服务端建立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来测试调用

技术图片

 

五、WebApi建立authorization server

标签:get   mamicode   SHA256   resources   客户端   image   ice   dev   otn   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!