IdentityServer4【QuickStart】之设置和概述
设置和概述
有两个基本的方式来开启一个新的IdentityServer项目:
- 从头开始
- 从asp.net Identity模板开始
如果你从头开始,我们提供了一些基于内存中构建的存储,所以你不必一开始就担心持久化的问题。
如果你从一个Asp.net Identity模板开始,我们提供了一个简单的方式来进行集成,这同样也不复杂。
示例为多数使用场景提供了一步接一步的介绍,从最基本的配置逐步变复杂,所以搞起来也非常轻松愉快。
每个示例都有一个现成的解决方案,你可以在IdentityServer4.Samples这里找到相应的东西。
基本设置
下面的画面来自于visual studio,但不是必须的
创建一个IdentityServer
从创建一个asp.net core工程开始

然后选择空模板

然后,添加IdentityServer4的nuget包:

你也可以通过程序包管理控制台来执行install-package IdentityServer4来添加包。
注意下面的版本问题:
- IdentityServer 1.x<---->asp.net core 1.1
- identityserver 2.x<----->asp.net core 2.x
IdentityServer遵循asp.net core的规则,在StartUp类中,在ConfigureService方法中进行配置并将相应的服务添加到DI系统中,在Configure方法中将中间件添加到管道上。
像这样修改你的Startup.cs文件:
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityServer().AddDeveloperSigningCredential();
} public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
} app.UseIdentityServer(); }
AddIdentityServer方法将IdentityServer服务注入到DI系统,它同时注入了一个基于内存的存储。这对于开发环境下是有用的。对于生产环境,你需要一个数据库或者缓存来替换开发环境的存储。可以在EntityFramework这个章节查看更多的信息。
AddDeveloperSigningCredential 扩展方法创建了一个临时的用于登陆的加密key。同样,在生产环境下,你这样做是没事儿的,这可以让你专注于工程构建,但是在生产环境中不建议这么做,你可以查看cryptography docs这个章节来了解更多的信息。
接下来添加一些必须的服务。
配置服务
默认情况下Visual studio使用iis作为你应用的宿主,这没什么问题,但是如果你想看一下程序运行时的debug信息,那么建议你还是用kestrel作为服务器。这样就能从console里面看到一些信息了。
IdentityServer会输出大量的使用日志,但是如果使用iis的话,在UI上面显示的一些错误信息总是含糊不清的。
我们建议将IdentityServer运行在Console(kestrel服务器)上,你可以在launchSettings.json中进行配置:

我一般在创建项目后第一时间内就把IIS的配置相关的东西都干掉:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:53628",
"sslPort": 44324
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"SetupAndOverview": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
换成这样的:
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"Api": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/values",
"applicationUrl": "https://localhost:8000;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
涉及IIS的东西直接删除了就行了。
还要注意的是我使用的是asp.net core 2.1,这个版本它默认开启了https,http接收到的请求会被转发到https上,所以我在"applicationUrl": "https://localhost:8000;http://localhost:5000"这个条目上面配置了两个URL,一个是HTTP的,还有一个是HTTPS的。
此外,需要在Program中进行以下配置:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).UseUrls("http://localhost:5000;https://localhost:8000")
.UseStartup<Startup>();
此外,你可以在项目属性-->调试中将“启动浏览器”这个选项勾选掉,不用每次启动项目的时候都开启一个浏览器。

你可以通过打开项目的文件目录打开CMD然后输入dotnet watch run 这个命令,然后就可以进行项目的调试了,很爽,你可以试一试,值得注意的是,你的.net core版本应该是2.1以上的,2.0是没有这个命令的,需要手动添加,2.1才集成进来。
小技巧:在项目的根目录的文件目录上面输入“cmd”,会打开一个cmd窗口,窗口的路径就是这个文件夹的路径。

点击这个目录路径,然后输入cmd,就会弹出一个cmd,正好是这个目录下的cmd。
如何运行一个示例项目
上面提到过每个示例都有一个线程的解决方案,你可以在 IdentityServer4.Samples找到相关的项目。
运行每一个独立的项目的最简单的方法是在解决方案的属性上面将启动项目改为当前选定内容:

通常你应该先启动IdentityServer,然后是API项目,然后是客户端项目。
IdentityServer4【QuickStart】之设置和概述的更多相关文章
- Android偏好设置(1)概述和Preferences简介
1.Overview Instead of using View objects to build the user interface, settings are built using vario ...
- IdentityServer4中文文档
欢迎IdentityServer4 IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架. 它在您的应用程序中启用以下功能: 认证即服务 ...
- IdentityServer4【QuickStart】之利用OpenID Connect添加用户认证
利用OpenID Connect添加用户认证 利用OpenID Connect添加用户认证 在这个示例中我们想要通过OpenID Connect协议将交互用户添加到我们的IdentityServer上 ...
- IdentityServer4 实现 OpenID Connect 和 OAuth 2.0
关于 OAuth 2.0 的相关内容,点击查看:ASP.NET WebApi OWIN 实现 OAuth 2.0 OpenID 是一个去中心化的网上身份认证系统.对于支持 OpenID 的网站,用户不 ...
- IdentityServer4 简单使用,包括api访问控制,openid的授权登录,js访问
写在前面 先分享一首数摇:http://music.163.com/m/song?id=36089751&userid=52749763 其次是:对于identityServer理解并不是特别 ...
- 【ASP.NET Core分布式项目实战】(三)整理IdentityServer4 MVC授权、Consent功能实现
本博客根据http://video.jessetalk.cn/my/course/5视频整理(内容可能会有部分,推荐看源视频学习) 前言 由于之前的博客都是基于其他的博客进行开发,现在重新整理一下方便 ...
- .NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证
内容:本文带大家使用IdentityServer4进行使用OpenID Connect添加用户认证 作者:zara(张子浩) 欢迎分享,但需在文章鲜明处留下原文地址. 在这一篇文章中我们希望使用Ope ...
- IdentityServer4 中文文档与实战
写在前面 写于2018.9.12 我研究 IdentityServer4 是从.net core 1.1的时候开始的,那时候国内的中文资料比较少,我都是按照官方文档来研究的,整理成了笔记.这个系列文档 ...
- 使用 IdentityServer4 实现 OAuth 2.0 与 OpenID Connect 服务
IdentityServer4 是 ASP.NET Core 的一个包含 OIDC 和 OAuth 2.0 协议的框架.最近的关注点在 ABP 上,默认 ABP 也集成 IdentityServer4 ...
随机推荐
- Beta阶段 - 博客链接合集
Beta阶段 - 博客链接合集 项目Github地址 安卓端(Stardust):https://github.com/StardustProject/Stardust 服务器端(Gravel):ht ...
- Docker for Windows 中文文档(3)——Docker Settings
Docker设置 Docker运行时,显示Docker鲸鱼. 默认情况下,Docker鲸鱼图标被放置在“通知”区域中. 如果隐藏,单击任务栏上的向上箭头显示. 提示:您可以将鲸鱼固定在通知框外面,使其 ...
- 修改CentOS默认yum源为国内yum镜像源
CentOS默认的yum源不是国内的yum源,在通过yum安装一些软件的时候,会出现这样那样的错误,以及在下载安装的速度上也是非常慢的. 所以这个时候就需要将yum源替换成国内的yum源,国内主要开源 ...
- UVA1616-Caravan Robbers(二分)
Problem UVA1616-Caravan Robbers Accept: 96 Submit: 946Time Limit: 3000 mSec Problem Description Lon ...
- WPF ListView点击删除某一行并获取绑定数据
最近在开发WPF程序时遇到一个问题,在gridview中希望实现在每一行最后添加一个删除的按钮,但是发现点击每行的button时只会触发button的点击事件,并没有选中这一行,此时调用list.Se ...
- 【转】【fiddler】抓取https数据失败,全部显示“Tunnel to......443”
这个问题是昨天下午就一直存在的,知道今天上午才解决,很感谢“韬光养晦”. 问题描述: 按照网络上的教程,设置fiddler开启解密https的选项,同时fiddler的证书也是安装到系统中,但是抓取h ...
- ActiveMQ的queue以及topic两种消息处理机制分析
1 queue与topic的技术特点对比 对比项 Topic Queue 概要 Publish Subscribe messaging 发布订阅消息 Point-to-Point 点对点 有无状 ...
- docker 11 docker的commit操作
docker commit :表示提交一个容器的副本使之成为新的镜像.假如我们在docker上运行了一个tomcat的容器,对Tomcat容器进行了修改操作,然后我们将修改操作后的tomcat进行co ...
- Fastcgi工作原理
FastCGI是一个可伸缩的,高速地在HTTP server和动态脚本语言间的接口 FastCGI优点 这种方式可以让HTTP服务器专一的处理静态请求或者将动态脚本服务器返回给客户端,很大程度上提高了 ...
- 从Linux内核角度看中间人攻击(ARP欺骗)并利用Python scapy实现
邻居子系统与ARP协议 邻居子系统的作用就是将IP地址,转换为MAC地址,类似操作系统中的MMU(内存管理单元),将虚拟地址,转换为物理地址. 其中邻居子系统相当于地址解析协议(IPv4的ARP协议, ...