フッターコンテンツにスキップ
.NETヘルプ

IdentityServer .NET(開発者向けの仕組み)

今日のソフトウェアアーキテクチャにおいて、特にユーザーの権限や認証に関して重要なのはセキュリティです。 OpenID ConnectとOAuth 2.0の実装に優れたフレームワークであるOpenID ConnectとOAuth 2.0において、IdentityServer4は分散ネットワーク内での集中管理された認証と認可の信頼できるオプションを提供します。 開発者がIronPDFを使用し、PDF生成のための強力なC#ライブラリと安全なアイデンティティ管理を組み合わせることで、さまざまなアプリケーション要件を満たすPDF文書を簡単に作成できます。

IdentityServer4は、アイデンティティ管理のインストールを簡素化するモジュラーで標準ベースのソリューションを提供します。 これは、ユーザー認証、アクセス、トークンの検証および発行、およびさまざまなサービスやアプリの権限検証を担当する集中型のアイデンティティ プロバイダーを作成するのに役立ちます。IdentityServer4 は、ユーザー名/パスワード、ソーシャルログイン、多要素認証など、多くの認証方法をサポートすることで、開発者が安全で直感的な認証体験を作成できるようにします。

このチュートリアルでは、IdentityServer4IronPDFのC#統合について説明し、IdentityServer4を使用して認証と認可のための安全なプロセスを作成し、作成されたユーザーIDを活用してIronPDFのPDFドキュメント作成をカスタマイズする方法を示します。 IdentityServer4 を集中型のアイデンティティおよび認証プロバイダーとして構成するところから始まり、IronPDF を統合して動的に PDF を生成することにより、C# アプリのセキュリティと機能を改善する方法を解説します。

IdentityServer4 C# とは何ですか?

人気のあるオープンソースフレームワーク、IdentityServer4は、.NETおよびC#アプリケーションでアイデンティティ管理、認可、認証を行うために使用されています。 これは、OpenID Connect や OAuth 2.0 など、現代のセキュリティ プロトコルに準拠しているため、Web アプリケーション、API、マイクロサービスを保護するための柔軟なソリューションです。

IdentityServer4は基本的に中央認証サーバーとして機能し、ユーザーの識別と権限管理コアアイデンティティ、 valid access tokenの発行、および資格情報の検証を処理します。 これにより、プログラマーは、複数のアプリケーションやサービスにフェデレーション認証やシングルサインオン(SSO)を統合して、安全でシームレスなエンドユーザーエクスペリエンスを提供することができます。

IdentityServer .NET(開発者向けの仕組み):図1 - ASP.NET Core Identityを使用したIdentityServer4

IdentityServer4 の機能

SSO、またはシングルサインオン

ユーザーは、資格情報を再入力せずに、1回の認証で異なるアプリケーションまたはサービスにアクセスできます。

OpenID Connect および OAuth 2.0 のサポート

IdentityServer4 は、セキュアな認証および認可のための業界標準のプロトコルを提供し、さまざまなクライアントアプリケーションおよびプラットフォームとの互換性とサポートを提供します。

適応可能な設定

開発者は、認証および権限ポリシーの設定方法を細かく制御できるため、特定のアプリケーション要件に合うようにセキュリティ設定をカスタマイズできます。

ASP.NET Core への接続性

IdentityServer4 のフレームワークとのシームレスな統合により、ASP.NET Core Web アプリおよび API の認証が簡単に実装できます。

個別性と適応性

フレームワークの拡張性とカスタマイズ性が高いため、必要に応じて新しいユーザー ストア、アイデンティティ プロバイダー、テストユーザー、および認証ワークフローを追加できます。

ユーザーの検証

IdentityServer4は、Webアプリの要件に最適な認証メカニズムの設定を開発者が選べます。 これらのメカニズムには、ユーザー名/パスワード、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 option. その後、ASP.NET Core Web Appを選択します" />

ファイルパスを選択し、プロジェクト名を対応するテキストボックスに入力します。 次に、以下のスクリーンショットに示すように、必要な .NET フレームワークをクリックして、[作成] ボタンをクリックします。

IdentityServer .NET (How It Works For Developers): Figure 3 - Next, configure your project by specifying the Project name and location. 次に、[次へ] をクリックします

必要なフレームワークを選択し、[作成] ボタンをクリックします。

IdentityServer .NET (How It Works For Developers): Figure 4 - Specify additional information like Framework, Authentication type, select whether you want configure for HTTPs and enable Docker. 次に、[作成] をクリックします

選択したアプリケーションの構造は、Visual Studio プロジェクトによって生成されます。 この例では ASP.NET MVC を使用しています。 コードを書き込むために、新しいコントローラーを作成するか、既存のコントローラーを利用してコードを入力し、プログラムをビルド/実行することができます。

IdentityServer .NET (How It Works For Developers): Figure 5 - The ASP.NET Core Web App (MVC) project is successfully created.

コードをテストするには、必要なライブラリを追加します。

IdentityServer4 パッケージをインストールする

.NET CLI または Visual Studio の NuGet パッケージ マネージャーを使用して、プロジェクトに 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を安全な認証と認可のために構成し、C#プロジェクトでPDF文書を作成するためにIronPDFを使用する方法をガイドします。 これらの手順に従うことで、基本的なセットアップに基づいたプロジェクトを作成する方法を学ぶことができます。

IronPDF とは何ですか?

IronPDFは、.NETアプリケーションでPDF文書とやりとりするための機能豊富なライブラリです。 その広範な機能セットにより、ユーザーは HTML コンテンツから、または既存の PDF ドキュメントのセクションを追加、削除、または並べ替えて PDF を作成できます。 IronPDF は、.NET アプリケーションで PDF ファイルの生成、変更、変換のための強力な API を開発者に提供し、PDF の取り扱いを簡素化します。

IdentityServer .NET(開発者向けの仕組み):図6 - IronPDF for .NET: The C# PDF Library

IronPDFの主な機能

HTML から PDF への変換

IronPDFを使用すれば、HTMLコンテンツを使用して、高品質のPDF文書を作成できます。これは、JavaScriptとCSSを含んでいます。 この機能は、ウェブサイトや動的コンテンツから PDF を作成する際に便利です。

PDF の修正と強化

IronPDFを使えば、すでに存在するPDF文書を変更することができます。複数のPDFを1つの文書に結合したり、PDFからページを抽出したり、テキスト、画像、透かし、または注釈を追加したりできます。

PDF のオンザフライ作成

IronPDF の API を使用すると、新しく作成した PDF ドキュメントにテキスト、画像、図形、およびその他のオブジェクトをプログラムで追加できます。 これにより、請求書、レポート、その他のドキュメントベースのアウトプットのための動的 PDF 生成が可能になります。

PDFセキュリティ

IronPDFを使用してPDF文書を暗号化しパスワード保護を追加することで、アクセスを管理し、機密データを保護できます。

PDF フォーム

IronPDFは、ユーザーがPDFフォームを作成、記入、送信できるようにし、フォームフィールドにデータを埋め込むことを可能にします。

テキスト抽出

IronPDFは、PDF文書からのテキスト情報を抽出することにより、テキストデータの操作、分析、検索をサポートします。

画像フォーマットへの変換

IronPDFは、PNG、JPEG、BMP などの一般的な画像形式に PDF ドキュメントを変換することができ、これは画像が必要な場合に便利です。

IronPDFをインストールする

.NET CLIまたはNuGetパッケージマネージャーを使用して、最新バージョンのIronPDFをプロジェクトに追加します。

Install-Package IronPdf

IronPDF と IdentityServer4 C# を統合する

上記のコードのように、Startup.cs ファイルで IdentityServer4 のための必要なサービスおよびミドルウェアを設定します。 次に、IronPDFを使用してPDF生成を処理する新しいMVCコントローラnamed PdfController.csを作成します。

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(開発者向けの仕組み):図7 - IdentityServer4 によって提供される安全なユーザー認証および認可を使用して IronPDF を使用して出力された PDF

結論

要約すると、C#プロジェクトにおけるIdentityServer4IronPDFの統合は、堅牢なセキュリティを動的な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に変換することもサポートしており、ドキュメント変換のための多用途なツールです。

.NETアプリケーションのセキュリティを確保する上で、IdentityServer4はどのような役割を果たしますか?

IdentityServer4は、中央認証と承認サービスを提供することで.NETアプリケーションのセキュリティを確保する上で重要な役割を果たします。開発者はOpenID ConnectやOAuth 2.0といったプロトコルを実装することができ、安全なユーザー管理とリソースの保護を可能にします。

C#アプリケーションでのPDF生成の安全な認証と統合は可能ですか?

はい、C#アプリケーションでのPDF生成の安全な認証と統合は可能です。IdentityServer4を使用して安全な認証を行い、IronPDFを使用してPDFを生成することで、開発者は認証済みのユーザーのみが機密文書にアクセスできるようにし、セキュリティと遵守を向上させることができます。

.NETプロジェクトでIdentityServer4を設定する手順は何ですか?

.NETプロジェクトでIdentityServer4を設定するには、開発者はNuGetを介してIdentityServer4パッケージをインストールし、Startup.csファイルで構成し、認証のためのクライアントを設定する必要があります。これにより、アプリケーションは安全にユーザーのIDと権限を管理できるようになります。

IronPDFは、.NETアプリケーションにおいて文書のセキュリティをどのように強化しますか?

IronPDFは、開発者がPDFファイルに暗号化やパスワード保護といった機能を追加できるようにすることでドキュメントのセキュリティを強化します。これにより、PDF内の機密情報が許可されたユーザーのみにアクセス可能となり、データ保護のベストプラクティスと一致します。

IdentityServer4がサポートする一般的な認証方法は何ですか?

IdentityServer4は、ユーザー名/パスワード、ソーシャルログイン、および多要素認証といった一般的な認証方法をサポートします。この柔軟性により、開発者はアプリケーションのニーズに合わせた安全で使いやすい認証フローを作成することができます。

IdentityServer4でトークンをどのように管理できますか?

IdentityServer4は、OAuth 2.0をサポートしているため、開発者がトークンを効果的に管理することを可能にします。これには、トークンの発行、検証、取り消しの機能があり、ユーザーの認証ステータスに基づいたアプリケーションのリソースアクセス管理に不可欠です。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。

Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。

彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。