IdentityServer4 是一個提供 認證服務,單點登錄/登出(SSO),API訪問控制,聯合認證通道的可定製、免費商業支持的框架。 ...
# 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