IdentityServer4 中文文档 -8- (快速入门)设置和概览
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- (快速入门)设置和概览的更多相关文章
- IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity
IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity 原文:http://docs.identityserver.io/en/release ...
- IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问
IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问 原文:http://docs.identityserver.io/en/release/quickst ...
- IdentityServer4 中文文档 -12- (快速入门)添加外部认证支持
IdentityServer4 中文文档 -12- (快速入门)添加外部认证支持 原文:http://docs.identityserver.io/en/release/quickstarts/4_e ...
- IdentityServer4 中文文档 -9- (快速入门)使用客户端凭证保护API
IdentityServer4 中文文档 -9- (快速入门)使用客户端凭证保护API 原文:http://docs.identityserver.io/en/release/quickstarts/ ...
- IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据
IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据 原文:http://docs.identityserver.io/en/r ...
- IdentityServer4 中文文档 -15- (快速入门)添加 JavaScript 客户端
IdentityServer4 中文文档 -15- (快速入门)添加 JavaScript 客户端 原文:http://docs.identityserver.io/en/release/quicks ...
- IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证
IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证 原文:http://docs.identityserver.io/en/releas ...
- IdentityServer4 中文文档 -10- (快速入门)使用密码保护API
IdentityServer4 中文文档 -10- (快速入门)使用密码保护API 原文:http://docs.identityserver.io/en/release/quickstarts/2_ ...
- IdentityServer4 中文文档 -7- (简介)贡献
IdentityServer4 中文文档 -7- (简介)贡献 原文:http://docs.identityserver.io/en/release/intro/contributing.html ...
随机推荐
- maven打包自定义jar到maven仓库
mvn install:install-file -Dfile=F:/Sdk4j.jar -DgroupId=com.sdk4j -DartifactId=sdk4j -Dversion=1.0 -D ...
- 开启hadoop集群
首先开启zookeeper zkServer.sh start start-all
- Chrome书签添加到百度网盘
一:Chrome是最干净的浏览器了,但是无奈国内的环境导致书签不方便保存到云端,如果保存到本地那么就要经常自己备份之类的: 二:由以上的需求背景终于找到了可以将chrome打开的网页保存到百度网盘里[ ...
- OpenCV从2到3的过渡
与版本2.4相比,OpenCV 3.0引入了许多新算法和功能.有些模块已被重写,有些已经重组.尽管2.4中的大多数算法仍然存在,但接口可能不同.本节描述了一般性的最显着变化,过渡操作的所有细节和示例都 ...
- 二叉搜索树的平衡--AVL树和树的旋转
二叉搜索树只有保持平衡时其查找效率才会高. 要保持二叉搜索树的平衡不是一件易事.不过还是有一些非常经典的办法可以做到,其中最好的方法就是将二叉搜索树实现为AVL树. AVL树得名于它的发明者 G.M. ...
- ASP.NET MVC下使用AngularJs语言(三):ng-options
今天使用angularjs的ng-options实现一个DropDownList下拉列表. 准备ASP.NET MVC的model: public class MobilePhone { public ...
- Android开发 - 设置DialogFragment全屏显示
默认的DialogFragment并不是全屏,但有些需求需要我们将对话框设置为全屏(内容全屏),Android并没有提供直接的API,通过其它不同的方法设置全屏在不同的机型上总有一些诡异的问题,经过测 ...
- 【洛谷4770】 [NOI2018]你的名字(SAM,线段树合并)
传送门 洛谷 Solution 做过的比较玄学的后缀自动机. 果然就像\(Tham\)所讲,后缀自动机这种东西考场考了不可能做的出来的... 考虑如果\(l=1,r=|S|\)的怎么做? 直接建后缀自 ...
- 三种定义bean的方式
方法一:基于XML的bean定义(需要提供setter方法) 1.首先编写student.java和teacher.java两个类 Student.java: public class Student ...
- centoos内核升级
1.检查当前CentOS内核版本 uname -r 2.导入key 打开http://elrepo.org/tiki/tiki-index.php 复制执行该命令 3.安装ELRepo 打开2步中的网 ...