ASP.NET Core的身份認證框架IdentityServer4(6)- 開始


安裝和概述

啟動一個新的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM