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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杂烩

jstorm2.1.1及jstorm webui安装

jstorm的安装有很多方式,这里主要讲述的是Standalone模式,其它模式请查看官方文档。

823

Docker - 如何使用SSH连接到正在运行中的容器

本篇文章主要介绍了如何使用SSH将你的Docker容器与其他Docker容器进行连接的方法,如果我忽略了一个或多个重点,请随意评论/建议。

3567
来自专栏写代码的海盗

Docker学习总结之Run命令介绍 Operator exclusive options

Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢!...

3095
来自专栏Rovo89

h5ai 目录列表程序完整安装使用教程

2503
来自专栏实用工具入门教程

如何部署 Kubernetes 集群

Kubernetes是一个容器编排系统,可以大规模管理容器。Kubernetes最初由谷歌根据其在生产中运行容器的经验开发而成,是一个开源的,并由世界各地的社区...

1383
来自专栏轻量级微服务

Docker Container Resource Limit

不允许容器消耗宿主机太多的内存是非常重要的。在 Linux 主机上,如果内核检测到没有足够的内存来执行重要的系统功能,它会抛出 OOME 或 Out of Me...

1211
来自专栏IT民工生存指南

初试 Kubernetes -集群搭建

主节点(个人很喜欢腾讯云的主机自动命名,内网IP之类的都已经在hostname里了,不容易出错)

2004
来自专栏圣杰的专栏

eShopOnContainers 知多少[2]:Run起来

执行命令git clone https://github.com/dotnet/eShopOnContainers.gitclone代码到本地。使用默认DEV分...

1842
来自专栏后端云

cpu-pining CPU绑定

既然我们的操作系统还有CPU特性都采用了NUMA架构,那么我们完全可以通过调整KVM对应的NUMA关系来达到KVM CPU这方面的优化。这里,我们一般是通过CP...

824
来自专栏前端开发

sublime注册码失效解决办法

该窗口的大致含义就是说你使用的 License 是一个 Sublime Text 2 版本的 Licence(当前是3),问你是否需要升级你的 Licence,...

1874

扫码关注云+社区