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 程序包。

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

Install-Package IdentityServer4

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

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

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

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

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

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

修改宿主

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

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

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

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

public class Program
{
public static void Main(string[] args)
{
Console.Title = "IdentityServer"; var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://localhost:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build(); host.Run();
}
}

注意:我们建议将 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. Alpha 冲刺 (10/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 测试整体软件 展示GitHub当 ...

  2. eclipse配置servlet错误

    可能是因为你的web.xml里的<url>映射的名字和servlet相同

  3. 使用Shell脚本对Linux系统和进程资源进行监控

    ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进 ...

  4. 什么是servlet?

    一.servlet是什么? 是用java编写的应用在服务端的程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和修改数据,生成动态Web内容,例如页面等等.从实现上讲,Servlet可以响应任 ...

  5. app已损坏,打不开。你应该将它移到废纸篓

    首先声明: 有可能并非你安装的软件已损坏,而是Mac系统的安全设置问题,因为这些应用都是破解或者汉化的,那么解决方法就是临时改变Mac系统安全设置. 出现这个问题的解决方法: 修改系统配置:系统偏好设 ...

  6. django自定义user认证系统

    第一种,彻底推翻django的user认证系统,重新定义我们想要的字段 from django.contrib.auth.models import AbstractBaseUser,Permissi ...

  7. Nginx 教程

    开源版:http://nginx.org 商业版:http://nginx.com 阿里Tengine OpenResty开源版.商业版 视频教程:哔哩哔哩 菜鸟教程:nginx安装 1.初识 Nig ...

  8. ubuntu16.04下idea、webstorm等开发工具不能输入中文问题

    问题: ubuntu16.04下idea.webstorm开发工具不能输入中文,就算切换到中文输入法输入的也是英文字母. 解决方案: 1.vim打开开发工具的启动文件(idea下就是idea.sh) ...

  9. kaldi的TIMIT实例二

    ============================================================================ MonoPhone Training & ...

  10. spring框架学习笔记2:配置详解

    简单写一个类做示例: package bean; public class User { private String name; private Integer age; public String ...