ASP.NET Core的身份认证框架IdentityServer4(6)- 开始
2017-09-08 15:45
537 查看
安装和概述
启动一个新的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实现的存储。
UseDeveloperExceptionPage(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
相关文章推荐
- ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范
- ASP.NET Core的身份认证框架IdentityServer4(7)- 使用客户端证书控制API访问
- ASP.NET Core的身份认证框架IdentityServer4(7)- 使用客户端证书控制API访问
- ASP.NET Core的身份认证框架IdentityServer4--(2)API跟WEB端配置
- ASP.NET Core的身份认证框架IdentityServer4(3)-术语的解释
- ASP.NET Core的身份认证框架IdentityServer4--(4)添加第三方快捷登录
- ASP.NET Core的身份认证框架IdentityServer4(9)-使用OpenID Connect添加用户认证
- ASP.NET Core的身份认证框架IdentityServer4(5)- 包和构建
- ASP.NET Core的身份认证框架IdentityServer4--(1)服务配置
- ASP.NET Core的身份认证框架IdentityServer4--(3)令牌服务配置访问控制跟UI添加
- ASP.NET Core身份认证服务框架IdentityServer4(2)-整体介绍
- ASP.NET Core的身份认证框架IdentityServer4(7)- 使用客户端证书控制API访问
- ASP.NET Core的身份认证框架IdentityServer4(1)-特性一览
- ASP.NET Core的身份认证框架IdentityServer4(3)-术语的解释
- ASP.NET Core的身份认证框架IdentityServer4(8)- 使用密码认证方式控制API访问
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
- [转]如何在ASP.NET Core中实现一个基础的身份认证
- (10)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- Ocelot+Identity Server