IdentityServer4 中文文档 -8- (快速入门)设置和概览


原文:http://docs.identityserver.io/en/release/quickstarts/0_overview.html

目 录

上一篇:IdentityServer4 中文文档 -7- (简介)贡献

下一篇:IdentityServer4 中文文档 -9- (快速入门)使用客户端凭证保护API

有两种基础方式可以开始一个新的 IdentityServer 项目:

  • 从零开始
  • 从 Visual Studio 中的 ASP.NET Identity 模板开始

如果你是从零开始,我们为你提供了一对帮助器和内存存储,所以你无需在一开始就担心持久化问题。

快速入门一步一步地介绍了各种常用的 IdentityServer 场景,它们从抽象基础开始,逐渐复杂 —— 所以建议你按顺序去完成它们。

每个快速入门都有对应的解决方案 —— 你可以在快速入门目录下的 IdentityServer4.Samples 仓库中找到这些代码。

基础设置

屏幕快照显示的是 Visual Studio —— 但这不是必须的。

创建快速入门 IdentityServer

从创建一个新的 ASP.NET Core 项目开始。

然后选择 “空” 模板。

注意:IdentityServer 目前只支持 ASP.NET Core 1.1

然后是添加 IdentityServer4 的 nuget 程序包。

此外你还可以在 程序包管理控制台 中运行以下命令来添加这个依赖:

  1. Install-Package IdentityServer4

IdentityServer 使用常规的模式来配置和添加服务到 ASP.NET Core 宿主。在 ConfigureServices 方法中,必要的服务会被配置和添加到 DI 系统。在 Configure 方法中,中间件会被添加到 HTTP 管道中。

像这样修改你的 Startup.cs 文件:

  1. public class Startup
  2. {
  3. public void ConfigureServices(IServiceCollection services)
  4. {
  5. services.AddIdentityServer()
  6. .AddTemporarySigningCredential();
  7. }
  8. public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
  9. {
  10. loggerFactory.AddConsole(LogLevel.Debug);
  11. app.UseDeveloperExceptionPage();
  12. app.UseIdentityServer();
  13. }
  14. }

AddIdentityServer 会将 IdentityServer 注册到 DI。他还会注册一个基于内存存储的运行时状态,这对于开发场景来说是很有用的。对于生产环境你就需要像数据库或缓存这些持久化或共享存储部件。查看 EntityFramework 快速入门可以了解更多这方面的信息。

AddTemporarySigningCredential 扩展方法会在每次启动时为签名令牌创建临时的密钥材料。再次说明这对于入门是很有用的,但在生产环境下要用一些持久化密钥材料替换掉它。查看 密码学文档 可了解更多这方面的信息。

注意:IdentityServer 还不能够启动。事实上当你尝试启动它时你应该会看到一个异常说缺少服务。我们将在接下来的快速入门中添加这些服务。

修改宿主

默认情况下 Visual Studio 使用 IIS Express 来挂载你的 Web 项目。这样做完全没问题,只是你将无法看到输出到控制台的实时日志信息。

IdentityServer 广泛使用了日志,而对于 UI 上可见的或返回给客户端的错误信息则有意模糊。

我们建议在控制台宿主上运行 IdentityServer3。你可以通过切换 Visual Studio 中的启动配置来实现,你甚至都无需在每次运行 IdentityServer 的时候都启动一个浏览器窗口 —— 你也可以用相同的方式关闭它:

当你切换到 自托管(self-hosting)的时候,Web 服务器端口默认就是 5000。你既可以通过上面对话框中的启动配置来修改它,也可以以编程的方式在 Program.cs 设置它 —— 在快速入门中,我们使用以下配置来设置 IdentityServer 宿主。

  1. public class Program
  2. {
  3. public static void Main(string[] args)
  4. {
  5. Console.Title = "IdentityServer";
  6. var host = new WebHostBuilder()
  7. .UseKestrel()
  8. .UseUrls("http://localhost:5000")
  9. .UseContentRoot(Directory.GetCurrentDirectory())
  10. .UseIISIntegration()
  11. .UseStartup<Startup>()
  12. .Build();
  13. host.Run();
  14. }
  15. }

注意:我们建议将 IIS Express 和 自托管 配置为同一个端口。这样的话你可以自由地在两种模式下切换,无需关心和修改你客户端的任何配置。

如何运行快速入门

如前面所说,每个快速入门都会有对应的解决方案 —— 你可以在快速入门目录下的 IdentityServer4.Samples 仓库中找到这些代码。

运行快速入门解决方案的个别部分最简单的方式是设置启动模式为“Current Selection”(当前选中)。右键点击解决方案并选择“设置启动项目”。

通常你首先要启动 IdentityServer,然后是 API,然后是 Client。只有在你想要调试的时候才在调试模式下运行,否则 Ctrl+F5 是运行项目的最佳方式。

目 录

上一篇:IdentityServer4 中文文档 -7- (简介)贡献

下一篇:IdentityServer4 中文文档 -9- (快速入门)使用客户端凭证保护API

IdentityServer4 中文文档 -8- (快速入门)设置和概览的更多相关文章

  1. IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity

    IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity 原文:http://docs.identityserver.io/en/release ...

  2. IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问

    IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问 原文:http://docs.identityserver.io/en/release/quickst ...

  3. IdentityServer4 中文文档 -12- (快速入门)添加外部认证支持

    IdentityServer4 中文文档 -12- (快速入门)添加外部认证支持 原文:http://docs.identityserver.io/en/release/quickstarts/4_e ...

  4. IdentityServer4 中文文档 -9- (快速入门)使用客户端凭证保护API

    IdentityServer4 中文文档 -9- (快速入门)使用客户端凭证保护API 原文:http://docs.identityserver.io/en/release/quickstarts/ ...

  5. IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据

    IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据 原文:http://docs.identityserver.io/en/r ...

  6. IdentityServer4 中文文档 -15- (快速入门)添加 JavaScript 客户端

    IdentityServer4 中文文档 -15- (快速入门)添加 JavaScript 客户端 原文:http://docs.identityserver.io/en/release/quicks ...

  7. IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证

    IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证 原文:http://docs.identityserver.io/en/releas ...

  8. IdentityServer4 中文文档 -10- (快速入门)使用密码保护API

    IdentityServer4 中文文档 -10- (快速入门)使用密码保护API 原文:http://docs.identityserver.io/en/release/quickstarts/2_ ...

  9. IdentityServer4 中文文档 -7- (简介)贡献

    IdentityServer4 中文文档 -7- (简介)贡献 原文:http://docs.identityserver.io/en/release/intro/contributing.html ...

随机推荐

  1. Python实例浅谈之三Python与C/C++相互调用

    一.问题 Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结. 二.Python调用C/C++ 1.Python调用C动态链接库 Python调用C库比较简单,不经过 ...

  2. C++ MFC棋牌类小游戏day2

    反思了一下昨天的设计,觉得略有不足,我决定把棋盘做成单例模式.这样的话需要重新设计棋盘类,emmm,是新建棋盘类. Baord类 成员变量: Location  coordinate;//棋子坐标 b ...

  3. ota升级动画修改

    在网上可以搜到很多相关的文章,但是很多文章都是复制粘贴而来的,为了方便后面工作学习,本文会把其中最关键的几个步骤列出来. 首先根据ota升级界面的文字可以确认相关的图片资源的目录在哪里,可以网上搜一下 ...

  4. 桌面应用开发之WPF动态背景

      因为项目需要,在WPF开发的桌面应用中,登陆页面需使用动态背景.由于没有前端开发人员,所以由半吊子的后端开发人员根据效果图写前端xaml.去掉页面上边框,抽离动态背景设置代码: <Windo ...

  5. verilog HDL -模块代码基本结构

    1--verilog HDL 语言的预编译指令作用:指示在编译verliog HDL源代码前,需要执行哪些操作. 2--模块内容是嵌在module 和endmodule两个语句之间.每个模块实现特定的 ...

  6. spring boot开发笔记——mybatis

    概述   mybatis框架的优点,就不用多说了,今天这边干货主要讲mybatis的逆向工程,以及springboot的集成技巧,和分页的使用   因为在日常的开发中,当碰到特殊需求之类会手动写一下s ...

  7. hdoj6483 A Sequence Game(ST预处理RMQ+莫队)

    传送:http://acm.hdu.edu.cn/showproblem.php?pid=6483 题意:有长度为$n$的数组,对于一个子区间$[l,r]$内,存在最大值$mx$与最小值$mi$,有$ ...

  8. Java学习笔记36(File类)

    File类可以对操作系统中的文件进行操作: File类的静态成员变量: package demo; import java.io.File; public class FileDemo { publi ...

  9. Shell-15--sed

  10. 用Nginx搭建IIS集群实现负载均衡

    长话短说,我们用Nginx来搭建一个简单的集群,实现Web应用的负载均衡,架构图如下: 两台Web服务器,一台静态资源服务器,因为是演示,我们以网站形式部署在本机IIS中 一台Nginx代理服务器,安 ...