安裝和概述
啟動一個新的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實現的存儲。
AddDeveloperSigningCredential(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
