跳至頁尾內容
.NET 幫助

IdentityServer .NET(開發人員為導向的工作原理)

安全性在現今的軟體架構中至關重要,尤其是在使用者權限和認證方面。 作為實作 OpenID Connect 和 OAuth 2.0 的頂級框架,IdentityServer4 為分散式網路中的集中式授權和驗證提供了可靠的選擇。 當開發人員在使用 IronPDF(一個用於生成 PDF 的強大 C# 函式庫,與安全的身分管理同時使用)時,他們可以輕鬆地將兩者結合,以建立符合各種應用程式需求的 PDF 文件。

IdentityServer4 提供模組化、基於標準的解決方案,可簡化身分管理的安裝。 它可以幫助開發人員建立一個集中化的身份提供者,為各種服務和應用程式處理使用者驗證、存取、令牌驗證和發行,以及權限驗證。IdentityServer4透過支援多種認證方式,如用戶名/密碼、社交登入和多因素認證,讓開發人員能夠創造安全、直觀的認證體驗。

本教程將介紹 C# 整合 IdentityServer4IronPDF,展示如何使用 IdentityServer4 建立授權和驗證的安全流程,以及如何使用建立的使用者身分自訂 IronPDF 的 PDF 文件建立。 我們將介紹如何提高 C# 應用程式的安全性和功能性,從配置 IdentityServer4 作為集中式身份和認證提供者,到整合 IronPDF 進行動態 PDF 生產。

什麼是 IdentityServer4 C#?

在 .NET 和 C# 應用程式中,有一個廣受歡迎的開放原始碼框架 IdentityServer4 用來執行身分管理、授權和驗證。 由於它符合 OpenID Connect 和 OAuth 2.0 等當代安全協定,因此是保護網路應用程式、API 和微服務安全的彈性解決方案。

IdentityServer4的功能基本上是作為集中式驗證伺服器,處理使用者識別和權限管理核心身分、有效存取標記簽發以及憑證驗證。 它讓程式設計師有能力將聯合認證和單一登入 (SSO) 整合到多個應用程式和服務中,從而提供安全且無縫的終端使用者體驗。

IdentityServer .NET (How It Works For Developers):圖 1 - IdentityServer4: 使用 ASP.NET Core Identity

IdentityServer4的特點

SSO,或單一登入。

使用者無需重新輸入憑證,只需一次認證即可存取不同的應用程式或服務。

支援 OpenID Connect 和 OAuth 2.0。

IdentityServer4 提供安全認證和授權的業界標準協定,提供與廣泛的客戶端應用程式和平台的相容性和支援。

適應性設定

開發人員可以自訂安全設定,以符合特定的應用程式需求,因為他們可以精細控制認證和權限政策的設定方式。

連接 ASP.NET Core

由於 IdentityServer4 與框架的無縫整合,ASP.NET Core 網頁應用程式和 API 的驗證實作非常簡單。

個人化與適應性

由於框架具有高度的可擴充性和客製化,開發人員可以根據需要新增使用者儲存庫、身分提供者、測試使用者和驗證工作流程。

使用者驗證

IdentityServer4 讓開發人員可以靈活地選擇最適合其網路應用程式需求的認證機制配置。 這些機制包括使用者名稱/密碼、社交登入(如 Google、Facebook 等),以及外部身分提供者(如 Active Directory、Azure AD 等)。

授權政策

開發人員可以根據使用者角色、聲明或其他標準建立細緻的授權政策,以確保只有授權使用者才能存取特定資源或在應用程式中執行特定動作。

代幣的管理

IdentityServer4 管理存取令牌、令牌刷新令牌和身份令牌,提供安全的使用者驗證方法和存取身份伺服器所保護資源的權限。

建立與組態

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

在 Visual Studio 中建立新專案

啟動 Visual Studio 應用程式後,選擇"建立新專案"選項,或選擇"檔案"功能表 >"新增" >"新專案"。 接下來,在選擇"新專案"後選擇"Asp.NET Core Web App (Model-View-Controller)"。 在本教程中,此應用程式將用於製作 PDF 文件。

 related to 在 Visual Studio 中建立新專案 New project 選項。 然後選擇ASP.NET Core Web App" />

選擇檔案路徑,並在對應的文字方塊中輸入專案名稱。 接下來,按一下建立按鈕,選取必要的 .NET Framework,如下圖所示。

IdentityServer .NET (How It Works For Developers):圖 3 - 接下來,透過指定專案名稱和位置來設定您的專案。 點選下一步。

決定需要哪個框架,然後按一下建立按鈕。

IdentityServer .NET (How It Works For Developers):圖 4 - 指定其他資訊,例如 Framework、驗證類型、選擇是否要為 HTTPs 設定以及啟用 Docker。 然後點選建立。

所選應用程式的結構將由 Visual Studio 專案產生。 本範例中我們使用 ASP.NET MVC。 若要撰寫程式碼,我們可以建立新的控制器,或是利用現有的控制器來輸入程式碼並建立/執行程式。

IdentityServer .NET (How It Works For Developers):圖 5 - ASP.NET Core Web App (MVC) 專案已成功建立。

若要測試程式碼,請加入必要的函式庫。

安裝 IdentityServer4 套件

使用 Visual Studio 中的 .NET CLI 或 NuGet Package Manager,將 IdentityServer4 套件新增至您的專案。 使用套件管理員控制台或終端機,鍵入下列指令以安裝套件的最新版本:

Install-Package IdentityServer4

在 .NET Core 專案中設定 IdentityServer4。

在您的 ASP.NET Core 應用程式中,配置 IdentityServer4,方法是在 Startup.cs 檔案中加入所需的驗證中介軟體和服務。這裡提供了一個配置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 Core 應用程式中啟用安全驗證和授權。

使用 IronPdf 開始使用 IdentityServer4

這些說明將引導您配置 IdentityServer4 以進行安全驗證和授權,以及使用 IronPDF 在 C# 專案中建立 PDF 文件。 您將透過以下步驟學習如何在基本設定的基礎上建立專案。

什麼是 IronPDF?

IronPDF 是一個功能豐富的函式庫,用於在 .NET 應用程式中與 PDF 文件互動。 利用其廣泛的功能集,使用者可以從頭開始或從 HTML 內容建立 PDF,也可以新增、移除或重新排列現有 PDF 文件的部分。 IronPDF 為開發人員提供了強大的 API,用於產生、修改和轉換 PDF 檔案,簡化了 .NET 應用程式中的 PDF 處理。

IdentityServer .NET (How It Works For Developers):圖 6 - IronPDF for .NET:C# PDF Library

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 Package Manager 將 IronPDF 的最新版本新增至您的專案。

Install-Package IronPdf

將 IronPDF 與 IdentityServer4 C&num 整合;。

在您的Startup.cs文件中为IdentityServer4设置所需的服务和中间件,如上代码所示。 然後建立一個新的 MVC 控制器,命名為 PdfController.cs 來使用 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 檔案中設定,透過記憶體中的配置和客戶端憑證處理使用者身分管理。

PdfController 使用 [Authorize] 屬性保護,確保只有授權使用者才能存取其操作。 此控制器使用異步方法,使用 IronPDF 函式庫將 HTML 內容渲染為 PDF 格式。 此 PDF 生成流程包括建立 ChromePdfRenderer 渲染器,將 HTML 內容轉換為 PDF 文件,並將 PDF 作為檔案回應傳回。

透過將 PDF 生成邏輯嵌入安全端點,只有經過 IdentityServer4 認證的使用者才能啟動 PDF 生成,因此結合了強大的安全性和動態文件生成功能。 此設定對於需要安全文件處理的應用程式特別有利,例如根據使用者特定資訊產生發票、報告或自訂內容,同時透過 IdentityServer4 執行嚴格的存取控制。

!IdentityServer .NET (How It Works For Developers):圖7 - 使用IronPDF生成的輸出PDF,並由IdentityServer4提供安全的用戶認證和授權。

結論

總而言之,在 C# 專案中整合 IdentityServer4IronPDF 可以有效地將穩健的安全性與動態 PDF 產生功能合而為一。 IdentityServer4提供統一且標準化的方法來管理使用者身分以及跨多個應用程式和服務的存取控制,確保使用者身分鑑別和授權的安全性。 使用 IronPDF,開發人員可以製作只有經過驗證的使用者才能存取的高品質 PDF 文件,所有文件都以經過驗證的使用者資料為基礎。

此整合可增強應用程式的安全性與功能性,非常適合需要安全文件處理的情境,例如產生發票、報告和個人化內容。 總體而言,IdentityServer4IronPDF 的結合,為在 .NET Framework 內開發安全、有效率且以使用者為導向的應用程式,提供了令人信服的解決方案。

IronPDFIron Software技術整合至您的企業應用程式開發堆疊時,IronPDF可為客戶和終端使用者提供功能豐富的開發人員文件和優質軟體解決方案。 這個紮實的基礎也將促進專案、後端系統和流程的提升。

Iron Suite 由 9 種不同的 .NET API 產品組合而成,以 具競爭力的授權價格提供! 由於這些技術擁有完整的說明文件、活躍的線上開發者社群以及定期的更新,因此是現代軟體開發專案的絕佳選擇。

常見問題解答

如何在 .NET 應用程式中使用 IronPDF 將 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 管理令牌?

IdentityServer4 透過對 OAuth 2.0 的支持,使開發人員能夠有效地管理令牌。它提供了頒發、驗證和撤銷令牌的功能,這些功能對於根據使用者身份驗證狀態控制對應用程式資源的存取至關重要。

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

Jacob Mellor 是 Iron Software 的首席技術官,也是一位富有遠見的工程師,率先開發了 C# PDF 技術。作為 Iron Software 核心程式碼庫的最初開發者,他自公司成立之初便參與塑造了其產品架構,並與執行長 Cameron Rimington 一起將其發展成為一家擁有 50 多名員工、服務於 NASA、特斯拉和全球政府機構的公司。

Jacob 於 1998 年至 2001 年在曼徹斯特大學獲得土木工程一級榮譽學士學位。 1999 年,他在倫敦創辦了自己的第一家軟體公司;2005 年,他創建了自己的第一個 .NET 元件。此後,他專注於解決微軟生態系統中的複雜問題。

他的旗艦產品 IronPDF 和 IronSuite .NET 庫在全球 NuGet 上的安裝量已超過 3000 萬次,其基礎程式碼持續為全球開發者工具提供支援。憑藉 25 年的商業經驗和 41 年的程式設計專長,Jacob 始終致力於推動企業級 C#、Java 和 Python PDF 技術的創新,同時指導下一代技術領導者。