zoukankan      html  css  js  c++  java
  • ASP.NET Core的身份认证框架IdentityServer4(6)- 开始

    安装和概述

    启动一个新的IdentityServer项目有两种基本方法:

    • 从头开始
    • 从Visual Studio中的ASP.NET身份模板开始

    如果从头开始,我们提供了一些文档、项目帮助和内存存储支持,所以你从一开始就不必担心持久化。

    如果您从ASP.NET Identity开始,我们提供了一种简单的方法来整合。

    quickstart为各种常见的身份服务器场景提供了一步一步的指导。 他们从绝对的从基础开始,然后变得更加复杂 , 建议您按顺序进行操作。

    每个quickstart都有一个参考解决方案 , 您可以在quickstarts文件夹中的IdentityServer4.Samples repo中找到代码。

    基本安装

    创建并且启动IdentityServer。

    创建一个新的ASP.NET项目

    然后选择空项目

    接下来通过nuget添加IdentityServer4的包

    你也可以通过程序包管理控制台执行以下命令:

    Install-Package IdentityServer4

    IdentityServer使用通常的模式来配置和添加服务到ASP.NET Core Host

    ConfigureServices中,所有必须的服务被配置并且添加到依赖注入系统中。
    Configure中,中间件被添加到HTTP管道中。

    修改你的Startup.cs

    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddIdentityServer()
                .AddDeveloperSigningCredential();
        }
    
        public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(LogLevel.Debug);
            app.UseDeveloperExceptionPage();
    
            app.UseIdentityServer();
        }
    }
    

    AddIdentityServer方法在依赖注入系统中注册IdentityServer,它还会注册一个基于内存存储的运行时状态,这对于开发场景非常有用,对于生产场景,您需要一个持久化或共享存储,如数据库或缓存。请查看使用EntityFramework Core实现的存储。

    AddDeveloperSigningCredential(1.1为AddTemporarySigningCredential)扩展在每次启动时,为令牌签名创建了一个临时密钥。在生成环境需要一个持久化的密钥。详细请点击

    修改hosting

    默认情况下,Visual Studio使用IIS Express来托管您的Web项目。 这是非常好的,除了你将无法看到实时日志输出到控制台。

    IdentityServer广泛使用日志记录,而UI中的“可见”错误消息或返回给客户端是故意模糊的。

    建议在控制台主机中运行IdentityServer。 您可以通过在Visual Studio中切换启动配置文件来执行此操作。 您也不需要每次启动IdentityServer时启动浏览器 ,您也可以关闭浏览器:

    当您切换到self-hosting时,Web服务器端口默认为5000.您可以在上面的启动配置文件对话框中配置,也可以在Program.cs中进行配置,我们在quickstart中为IdentityServer Host使用以下配置:

    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }
    
    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
    

    建议为IIS Express和自我托管配置相同的端口。 这样,您可以在两者之间进行切换,而无需修改客户端中的任何配置。

    做到这一步,你会发现并不能运行。这边文章很基础,只是说明如何建立一个是使用IdentityServer4的项目,第一个可以运行的IdentityServer4项目请看我下篇文章。

    所有的Demo都会根据官方的QuickStart项目来,但是官方的QiuckStart都是.net core 1.1的比较老了,我使用的是.net core 2.0,IdentityServer4是用的是目前支持.net core 2.0最新版本,所有Demo都放在了github https://github.com/stulzq/IdentityServer4.Samples ,大家可以给我来个star

  • 相关阅读:
    实训-涉及前端的一些小总结
    实训-mybatis-经验总结2
    实训-mybatis-经验总结
    中软实训笔记
    jsp 中JSTL遇到的报错异常
    mysql的小发现
    Maven笔记
    springmvc-3-拦截器
    springmvc 上传图片
    springmvc
  • 原文地址:https://www.cnblogs.com/stulzq/p/7493745.html
Copyright © 2011-2022 走看看