<一>Identityserver4简单配置

1、新建一个.netcore  mvc 空项目

 2、安装配置identityserver

1、使用 nuget 添加 IdentityServer4 包;//Install-Package IdentityServer4

2、配置认证服务中间件管道;//app.UseIdentityServer();

3、 配置 IdentityServer 相关服务内容如下

1、这个 Authorization Server 保护了哪些 API (资源);

2、哪些客户端 Client(应用) 可以使用这个 Authorization Server;

3、指定可以使用 Authorization Server 授权的 Users(用户);

4、指定作用域定义系统中的 IdentityResources 资源;

这里先演示最简单的客户端授权模式,新建一个config类来作为配置文件

 public static class config
    {
        public static IEnumerable<ApiScope> GetScopes()
        {
          return  new ApiScope[]
            {
                new ApiScope("api1scope"),
                new ApiScope("api2scope"),
                //new ApiScope("scope2"),
            };
        }
        // 这个 Authorization Server 保护了哪些 API (资源)
        public static IEnumerable<ApiResource> GetApiResources()
        {
            return new[]
            {
                    new ApiResource("api", "My API")
                    {
                        Scopes = { "api1scope", "api2scope" }
                    }

                };
        }
        // 哪些客户端 Client(应用) 可以使用这个 Authorization Server
        public static IEnumerable<Client> GetClients()
        {
            return new[]
            {
                    new Client
                    {
                        ClientId = "myself",//定义客户端 Id
                        ClientSecrets = new [] { new Secret("secret".Sha256()) },//Client用来获取token
                        AllowedGrantTypes = GrantTypes.ClientCredentials,//这里使用的是通过用户名密码和ClientCredentials来换取token的方式. ClientCredentials允许Client只使用ClientSecrets来获取token. 这比较适合那种没有用户参与的api动作
                        AllowedScopes = new [] { "api1scope" }// 允许访问的 API 资源
                    }
                };
        }
    }

 

 

4、将identityserver 的配置添加进services,并将identityserver加入到管道

 public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddIdentityServer().AddDeveloperSigningCredential()
                .AddInMemoryApiResources(config.GetApiResources())
                .AddInMemoryClients(config.GetClients())
          .AddInMemoryApiScopes(config.GetScopes()); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseIdentityServer(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { await context.Response.WriteAsync("Hello World!"); }); }); } }

4、启动项目

访问网址:http://localhost:5000/.well-known/openid-configuration你将会看到IdentityServer的各种元数据信息。

 

 

5、 用postman调用一下上面token_enpoint的地址拿到token

 

 

 

 至此,identityserver4简单的配置就完成了。

 

参考文章:     从壹开始 [ Ids4 ] 之二║ 基础知识集合 & 项目搭建一

posted @ 2020-10-03 00:33  许轩霖  阅读(74)  评论(0编辑  收藏  举报