跳過到頁腳內容
.NET幫助

IdentityServer .NET(對開發者如何理解的工作)

在現今的軟體架構中,安全性至關重要,特別是在用戶許可和身份驗證方面。 作為實施OpenID Connect和OAuth 2.0的頂級框架,IdentityServer4為分散式網絡提供了可靠的集中式授權和身份驗證選項。 當開發者使用IronPDF——一個強大的C# PDF生成程式庫,結合安全的身份管理時,他們可以輕鬆將兩者結合起來,以創建滿足各種應用需求的PDF文件。

IdentityServer4提供了一種模組化、基於標準的解決方案,簡化了身份管理的安裝過程。 它幫助開發者創建一個集中式的身份提供者,處理用戶身份驗證、訪問、令牌驗證和發行、以及各種服務和應用的許可驗證。IdentityServer4透過支持多種身份驗證方法,如用戶名/密碼、社交登錄和多因素驗證,使開發者能夠創建安全且直觀的身份驗證體驗。

本教程將涵蓋IdentityServer4IronPDF的C#整合,展示如何使用IdentityServer4創建安全的授權和身份驗證流程,並如何使用創建的用戶身份來自訂IronPDF的PDF文件創建。 我們將討論如何改善您的C#應用的安全性和功能性,從將IdentityServer4配置為集中身份和身份驗證提供者到整合IronPDF進行動態PDF生成。

什麼是IdentityServer4 C#?

稱為IdentityServer4的受歡迎開源框架用於.NET和C#應用程式中以執行身份管理、授權和身份驗證。 它是一種靈活的解決方案,因為它符合現代安全協議如OpenID Connect和OAuth 2.0,用以保護Web應用、API和微服務。

IdentityServer4基本上作為一個集中身份驗證服務器運作,處理用戶識別和許可管理核心身份、有效訪問令牌發行及憑證驗證。 它讓程式開發者能夠將聯盟身份驗證和單一登錄(SSO)整合入多個應用和服務,提供安全無縫的最終用戶體驗。

IdentityServer .NET (它對開發者的作用):圖1 - IdentityServer4:使用ASP.NET Core Identity

IdentityServer4的特點

SSO,或單一登錄

用戶可以通過一次身份驗證而無需重新輸入憑證即可進入不同的應用或服務。

支持OpenID Connect和OAuth 2.0

IdentityServer4提供了業界標準的身份驗證和授權協議,提供與廣泛客戶應用和平台的兼容性及支持。

靈活的配置

開發者可以自訂安全設定來適應特定的應用程式需求,因為他們具有細緻控制身份驗證和許可政策配置的權限。

對ASP.NET Core的連接性

IdentityServer4與該框架的無縫整合使得ASP.NET Core Web應用和API的身份驗證實施變得簡易。

個性化和適應性

由於該框架的高度擴展性和可自訂性,開發者可以在需要時添加新的用戶儲存區、身份提供者、測試用戶及身份驗證工作流程。

用戶驗證

IdentityServer4為開發者提供靈活性以選擇最適合其網頁應用需求的身份驗證機制配置。 這些機制包括用戶名/密碼、社交登錄(如Google、Facebook等)和外部身份提供者(如Active Directory、Azure AD等)。

授權政策

開發者可以根據用戶角色、聲明或其他標準創建細緻的授權政策,以確保只有被授權的用戶可以訪問應用中的特定資源或執行特定操作。

令牌管理

IdentityServer4管理訪問令牌、令牌刷新令牌和身份令牌,提供了一種安全的方法來進行用戶身份驗證和訪問由身份服務保護的資源的許可。

創建和配置

要在Visual Studio中的C#專案中設定IdentityServer4,您必須遵循這些步驟:

在Visual Studio中創建新專案

啟動Visual Studio應用程式後,選擇"創建新專案"選項,或者選擇檔案選單 > 添加 > "新專案"。 接下來,選擇"新專案"後選取"ASP.NET Core Web應用(Model-View-Controller)"。 本應用程式將用於此教程中的PDF文件生成。

 related to 在Visual Studio中創建新專案 新專案選項。 然後選擇ASP.NET Core Web應用" />

選擇檔案路徑並在相應的文本框中輸入專案名稱。 接著,透過點擊創建按鈕選擇所需的.NET Framework,如下圖所示。

IdentityServer .NET(它對開發者的作用):圖3 - 接下來,通過指定專案名稱和位置配置您的專案。 點擊下一步。

決定所需的框架並點擊創建按鈕。

IdentityServer .NET(它對開發者的作用):圖4 - 指定額外訊息如框架、身份驗證類型,選擇是否希望配置HTTPs並啟用Docker。 然後點擊創建。

Visual Studio專案將生成所選應用的結構。 在這個例子中,我們使用的是ASP.NET MVC。 要寫入程式碼,我們可以創建一個新的控制器或利用現有的來輸入程式碼並建立/運行程序。

IdentityServer .NET(它對開發者的作用):圖5 - 成功創建ASP.NET Core Web App (MVC)專案。

要測試代碼,請添加所需的程式庫。

安裝IdentityServer4程序包

使用.NET CLI或Visual Studio中的NuGet包管理器將IdentityServer4程序包添加到您的專案。 使用包管理器控制台或終端鍵入以下命令以安裝包的最新版本:

Install-Package IdentityServer4

在.NET Core專案中配置IdentityServer4

在您的ASP.NET Core應用程式中,透過將所需的身份驗證中介程式和服務添加到Startup.cs文件來配置IdentityServer4。此處提供了配置IdentityServer4的入門代碼範例:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddIdentityServer()
            .AddInMemoryClients(Config.Clients)
            .AddInMemoryIdentityResources(Config.IdentityResources)
            .AddInMemoryApiScopes(Config.ApiScopes)
            .AddInMemoryApiResources(Config.ApiResources)
            .AddTestUsers(Config.Users);
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseIdentityServer();
    }
}
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddIdentityServer()
            .AddInMemoryClients(Config.Clients)
            .AddInMemoryIdentityResources(Config.IdentityResources)
            .AddInMemoryApiScopes(Config.ApiScopes)
            .AddInMemoryApiResources(Config.ApiResources)
            .AddTestUsers(Config.Users);
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseIdentityServer();
    }
}
$vbLabelText   $csharpLabel

配置客戶端、身份資源和API資源

需要為IdentityServer4配置客戶端、身份資源(作為範圍)和API資源。 這些配置可以定義在一個單獨的類中,如Config.cs

public class Config
{
    public static IEnumerable<Client> Clients { get; set; }
    public static IEnumerable<IdentityResource> IdentityResources { get; set; }
    public static IEnumerable<ApiScope> ApiScopes { get; set; }
    public static IEnumerable<ApiResource> ApiResources { get; set; }
    public static List<TestUser> Users { get; set; }
}
public class Config
{
    public static IEnumerable<Client> Clients { get; set; }
    public static IEnumerable<IdentityResource> IdentityResources { get; set; }
    public static IEnumerable<ApiScope> ApiScopes { get; set; }
    public static IEnumerable<ApiResource> ApiResources { get; set; }
    public static List<TestUser> Users { get; set; }
}
$vbLabelText   $csharpLabel

通過遵循這些指示,您可以透過在C#專案中創建並配置IdentityServer4以在您的ASP.NET核心應用中啟用安全的身份驗證和授權。

使用IronPDF快速開始IdentityServer4

這些指令將引導您設定IdentityServer4進行安全身份驗證和授權,並使用IronPDF在C#專案中創建PDF文件。 您將透過遵循這些步驟學習如何基於基本設定創建專案。

什麼是IronPDF?

IronPDF是一個功能豐富的程式庫,用於在.NET應用程式中與PDF文件互動。 憑藉其豐富的功能集,使用者可以從頭開始或從HTML內容創建PDF,以及添加、移除或重新整理現有PDF文件的部分。 IronPDF為開發者提供了強大的API,用於生成、修改和轉換PDF文件,簡化了.NET應用程式中的PDF處理。

IdentityServer .NET(它對開發者的作用):圖6 - IronPDF for .NET:C# PDF程式庫

IronPDF的主要功能

HTML至PDF轉換

IronPDF允許您透過使用HTML內容,包括JavaScript和CSS,生成高品質的PDF文件。 此功能在從網站或動態內容創建PDF時非常有用。

修改和增強PDF

IronPDF允許您更改已存在的PDF文件。您可以將多個PDF合併到一個文件中,從PDF中提取頁面,以及添加文本、圖片、水印或註釋。

即時生成PDF

透過IronPDF的API,可以以程式化方式向新創建的PDF文件中添加文本、圖片、形狀和其他對象。 這使得發票、報告和其他基於文件的輸出進行動態PDF生成變得可行。

PDF安全性

您可以透過IronPDF加密PDF文件添加密碼保護來管理訪問和保護敏感資料。

PDF表單

IronPDF支持使用者創建、填寫和提交PDF表單,以及將數據填入表單欄位中。

文字提取

IronPDF通過從PDF文件中提取文字信息來幫助文字數據操作、分析和搜索。

轉換為影像格式

IronPDF可以將PDF文件轉換為常見影像格式,諸如PNG、JPEG、BMP,這在需要影像而非PDF時很有用。

安裝IronPDF

使用.NET CLI或NuGet包管理器將IronPDF的最新版本添加到您的項目中。

Install-Package IronPdf

Integrate IronPDF With IdentityServer4 C#

Startup.cs文件中設置IdentityServer4所需的服務和中介程式,如上方代碼所示。 然後創建一個新的名為PdfController.cs的MVC控制器,以使用IronPDF處理PDF生成。

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.Threading.Tasks;

[Authorize]
public class PdfController : Controller
{
    public async Task<IActionResult> GeneratePdf()
    {
        // Create IronPDF Renderer
        var renderer = new IronPdf.ChromePdfRenderer();

        // HTML content to be converted to PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>";

        // Convert HTML to PDF asynchronously
        var pdfDocument = await Task.Run(() => renderer.RenderHtmlAsPdf(htmlContent));

        // Return the PDF as a file
        return File(pdfDocument.BinaryData, "application/pdf", "example.pdf");
    }
}
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.Threading.Tasks;

[Authorize]
public class PdfController : Controller
{
    public async Task<IActionResult> GeneratePdf()
    {
        // Create IronPDF Renderer
        var renderer = new IronPdf.ChromePdfRenderer();

        // HTML content to be converted to PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>";

        // Convert HTML to PDF asynchronously
        var pdfDocument = await Task.Run(() => renderer.RenderHtmlAsPdf(htmlContent));

        // Return the PDF as a file
        return File(pdfDocument.BinaryData, "application/pdf", "example.pdf");
    }
}
$vbLabelText   $csharpLabel

將IronPDF與IdentityServer4整合涉及首先設置IdentityServer4的安全用戶身份驗證和授權,然後使用IronPDF創建僅授權用戶可訪問的PDF文件。 在提供的代碼範例中,IdentityServer4配置於Startup.cs文件中,透過內存配置和客戶端憑證處理用戶身份管理。

[Authorize]屬性保護,確保只有被授權的用戶可以訪問其操作。 此控制器使用一個異步方法來使用IronPDF程式庫將HTML內容渲染成PDF格式。 此PDF生成過程包括創建ChromePdfRenderer渲染器,將HTML內容轉化為PDF文件,並返回PDF作為文件回應。

透過將PDF生成邏輯嵌入於安全的端點中,僅由IdentityServer4認證的用戶可以啟動PDF生成,從而結合強大的安全性與動態文件生成能力。 這種設定對需要安全文件處理的應用程式特別有利,如生成發票、報告或基於用戶具體信息的自訂內容,同時透過IdentityServer4加強訪問控制。

IdentityServer .NET(它對開發者的作用):圖7 - 使用IronPDF根據IdentityServer4提供的安全用戶身份驗證和授權所生成的輸出PDF。

結論

總而言之,IdentityServer4IronPDF在C#專案中的整合有效地將強健的安全性與動態PDF生成能力結合起來。 IdentityServer4提供了一種統一和標準化的方法來管理多個應用和服務中的用戶身份和訪問控制,確保安全的用戶身份驗證和授權。 使用IronPDF,開發者可以生成高品質PDF文件,這些文件僅授權用戶可以訪問,並基於已驗證的用戶數據。

這種整合增強了應用的安全性和功能性,使其在需要安全文件處理的場景下,如生成發票、報告和個性化內容時變得理想。 總得來說,IdentityServer4IronPDF的組合為在.NET框架下開發安全、高效和用戶導向應用程序提供了一個不可忽視的解決方案。

IronPDFIron Software技術被整合到您的企業應用開發棧中,IronPDF可以為客戶和最終用戶提供功能豐富的開發者文檔和特級軟體解決方案。 這個穩固的基礎還將促進專案、後端系統和過程的提升。

Iron Suite,由9個不同的.NET API產品組成,並以具有競爭力的授權價格提供! 這些技術由於其全面的文檔、活躍的線上開發者社區和定期更新,是現代軟體開發專案的理想選擇。

常見問題解答

IronPDF 如何在 .NET 應用程式中轉換 HTML 為 PDF?

IronPDF 提供了像 RenderHtmlAsPdf 這樣的方法,允許開發人員在 .NET 應用程式中將 HTML 字串轉換為 PDF 文件。它還支持將整個 HTML 文件或 URL 轉換為 PDF,使其成為文件轉換的一個多功能工具。

IdentityServer4 在 .NET 應用程式的安全中扮演什麼角色?

IdentityServer4 通過提供集中式的身份驗證和授權服務,在 .NET 應用程式的安全中發揮重要作用。它使開發人員能夠實施 OpenID Connect 和 OAuth 2.0 協議,允許安全的用戶管理和資源保護。

是否可以在 C# 應用程式中集成 PDF 生成與安全身份驗證?

可以,能夠在 C# 應用程式中集成 PDF 生成與安全身份驗證。通過使用 IdentityServer4 進行安全身份驗證和 IronPDF 生成 PDF,開發人員可以確保只有經身份驗證的用戶能夠訪問敏感文件,增強安全性和合規性。

在 .NET 專案中配置 IdentityServer4 的步驟是什麼?

要在 .NET 專案中配置 IdentityServer4,開發人員需要通過 NuGet 安裝 IdentityServer4 套件,在 Startup.cs 文件中進行配置,並設置認證用戶端。這確保應用程式可以安全地管理用戶身份和權限。

IronPDF 如何在 .NET 應用程式中增強文檔安全性?

IronPDF 通過允許開發人員向 PDF 文件添加加密和密碼保護等功能來增強文檔安全性。這確保 PDF 中的敏感資訊只可由授權用戶訪問,符合數據保護的最佳實踐。

IdentityServer4 支持的常見身份驗證方法有哪些?

IdentityServer4 支持常見的身份驗證方法,如用戶名/密碼,社交登錄和多因素身份驗證。這種靈活性允許開發人員創建安全且符合應用程式需求的用戶身份驗證流程。

如何管理 IdentityServer4 的令牌?

通過支持 OAuth 2.0,IdentityServer4 允許開發人員有效管理令牌。它提供了發行、驗證和撤銷令牌的功能,這對於根據用戶身份驗證狀態控制應用程式資源的訪問是必不可少的。

Jacob Mellor, Team Iron 首席技術官
首席技術官

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me