フッターコンテンツにスキップ
IRONPDFの使用

.NETでPDFを保護する方法:暗号化、パスワード、および許可制御

.NETでPDFを保護する方法: 暗号化、パスワード、権限コントロール

.NETアプリケーションで PDF ワークフローを構築する場合、機密文書を保護することは重要な要件です。 財務レポート、法的契約、コンプライアンス記録はすべて、アクセス制御なしで配布されるとリスクを伴います。 誰でも開いたり、コピーしたり、編集したりできる PDF は安全な文書ではなく、責任の所在を示す文書です。

IronPDF は、PDF ファイルの暗号化、パスワード アクセスの強制、印刷やコンテンツのコピーなどの権限の制限を行うための直接 API を提供します。 このチュートリアルでは、 .NET 10 を対象とした実用的な C# コード例を使用して、各セキュリティ メカニズムについて説明します。

無料トライアルを開始して、以下のコード例に従ってください。

今IronPDFを始めましょう。
green arrow pointer

.NETで PDF セキュリティを開始するにはどうすればよいですか?

セキュリティ設定を適用する前に、 IronPDF を.NETプロジェクトにインストールします。 NuGetパッケージ マネージャー コンソールを開き、次を実行します。

Install-Package IronPdf
Install-Package IronPdf
SHELL

または、 .NET CLI 経由で追加します。

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

インストールしたら、ファイルにSecuritySettingsプロパティを公開しています。 追加の設定は必要ありません。ライブラリはパスワードを設定すると自動的に 128 ビット暗号化を有効にします。

IronPDF は追加のネイティブ依存関係なしで Windows、macOS、Linux 上で実行されるため、セキュリティ API はコンテナー化された環境で同じように動作します。 AzureやDockerにプラットフォーム固有の設定なしでデプロイできます。IronPDFは、.NET 8および.NET 9に加えて.NET 10、.NET Framework 4.6.2+もサポートしており、安全なドキュメントワークフローを処理するレガシーアプリケーションに対応します。

ライセンスのアクティベーションやプロジェクト設計を含む完全なインストール手順については、IronPDF .NETインストールガイドをご覧ください。

PDF セキュリティではユーザー パスワードと所有者パスワードはどのように異なりますか?

PDF 仕様では、ドキュメントのアクセス制御において別々の役割を果たす 2 つの異なるパスワード タイプが定義されています。 それぞれの仕組みを理解することで、ユースケースに適したセキュリティ モデルを設計できるようになります。

PDF を開いて表示するには、ユーザー パスワード(オープン パスワードとも呼ばれます) が必要です。 ファイルにアクセスしようとするユーザーは、コンテンツが表示される前にこのパスワードを入力する必要があります。 これは、権限のない者が文書をまったく読み取れないようにすることが目的の場合に適切な制御です。

所有者パスワード(権限パスワードとも呼ばれます) は、ドキュメントを開いた後に許可されるアクションを制御します。 ユーザー パスワードで読み取りアクセスが許可される場合でも、印刷、コンテンツのコピー、編集、フォームへの入力が許可されるかどうかは所有者パスワードによって決まります。 両方のパスワードに異なる値を設定すると、閲覧者は所有者の資格情報なしではセキュリティ設定を変更できなくなります。

次のコード例は、両方のパスワード タイプを新しい PDF に適用する方法を示しています。

using IronPdf;

// Create a new PDF document from HTML content
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1><p>Sensitive financial data inside.</p>");

// Set owner password to control editing permissions
pdf.SecuritySettings.OwnerPassword = "owner-secret-123";

// Set user password required to open the document
pdf.SecuritySettings.UserPassword = "user-access-456";

// Save the encrypted PDF
pdf.SaveAs("protected-report.pdf");
using IronPdf;

// Create a new PDF document from HTML content
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1><p>Sensitive financial data inside.</p>");

// Set owner password to control editing permissions
pdf.SecuritySettings.OwnerPassword = "owner-secret-123";

// Set user password required to open the document
pdf.SecuritySettings.UserPassword = "user-access-456";

// Save the encrypted PDF
pdf.SaveAs("protected-report.pdf");
$vbLabelText   $csharpLabel

ユーザーパスワード保護を適用したPDF - パスワードダイアログがオープン時に表示

SecuritySettingsプロパティは、すべての暗号化と権限コントロールへの統一されたアクセスを提供します。 OwnerPasswordを設定すると、ドキュメントに128ビット暗号化が有効になります。 UserPasswordを設定すると、ファイルを開く際にアクセス障壁が作成されます。両方のプロパティは独立して設定できます。所有者パスワードのみで保護されたドキュメントは誰でも読むことができますが、できることは制限されます。

SecuritySettingsAPIの詳細については、PdfSecuritySettingsクラスリファレンスをご覧ください。

既存の PDF ドキュメントを暗号化するにはどうすればよいでしょうか?

多くのワークフローでは、HTML またはテンプレートから新しい PDF ファイルを生成するのではなく、既存の PDF ファイルにセキュリティを追加する必要があります。 これは、外部ソースからドキュメントを受信する場合、Web アプリケーションでアップロードを処理する場合、またはアーカイブ前にファイルを保護する場合に適用されます。

IronPDFは、同じSecuritySettingsAPIでこれを処理します。 PdfDocument.FromFileを使用してファイルをロードし、セキュリティ設定を適用して結果を保存します:

using IronPdf;

// Load an existing PDF document from disk
var pdf = PdfDocument.FromFile("financial-statement.pdf");

// Apply both passwords
pdf.SecuritySettings.OwnerPassword = "admin-key-789";
pdf.SecuritySettings.UserPassword = "reader-key-321";

// Restrict printing and content copying
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

// Save the secured version
pdf.SaveAs("financial-statement-secured.pdf");
using IronPdf;

// Load an existing PDF document from disk
var pdf = PdfDocument.FromFile("financial-statement.pdf");

// Apply both passwords
pdf.SecuritySettings.OwnerPassword = "admin-key-789";
pdf.SecuritySettings.UserPassword = "reader-key-321";

// Restrict printing and content copying
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

// Save the secured version
pdf.SaveAs("financial-statement-secured.pdf");
$vbLabelText   $csharpLabel

暗号化を適用した後の既存PDFドキュメント - プロパティパネルで制限された権限が表示中

このアプローチは、元々どのように作成されたかに関係なく、有効な PDF ファイルであればどれでも機能します。 ライブラリは入力ドキュメントを処理し、指定されたすべてのセキュリティ設定が適用された暗号化されたコピーを生成します。 別のパスに保存しても、元のファイルは変更されません。

1 つのワークフローで暗号化と復号化を組み合わせる完全な例については、 PDF の暗号化と復号化のコード サンプルを参照してください。

どのようなドキュメント権限を制御できますか?

PDF セキュリティには、パスワード保護以外にも、ドキュメントを開いた後にユーザーが実行できる操作を詳細に制御する機能が含まれています。 PDF 仕様の権限フラグを使用すると、印刷、コンテンツのコピー、編集、注釈、フォーム データの入力を個別にブロックまたは許可できます。

権限制限を有効にするには、所有者パスワードを設定する必要があります。 これがないと、準拠した PDF リーダーを持つ閲覧者が権限フラグをバイパスできる可能性があります。

次の例は、表示および入力可能だが編集や印刷はできない契約文書の権限を構成する方法を示しています。

using IronPdf;

// Load a contract document
var pdf = PdfDocument.FromFile("contract.pdf");

// Owner password is required for permissions enforcement
pdf.SecuritySettings.OwnerPassword = "contract-admin";

// Allow printing with full print quality
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Prevent content extraction (protects against copy/paste attacks)
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

// Lock down editing
pdf.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;

// Disable comment additions
pdf.SecuritySettings.AllowUserAnnotations = false;

// Allow form completion while blocking other modifications
pdf.SecuritySettings.AllowUserFormData = true;

// Save with all restrictions
pdf.SaveAs("contract-restricted.pdf");
using IronPdf;

// Load a contract document
var pdf = PdfDocument.FromFile("contract.pdf");

// Owner password is required for permissions enforcement
pdf.SecuritySettings.OwnerPassword = "contract-admin";

// Allow printing with full print quality
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Prevent content extraction (protects against copy/paste attacks)
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

// Lock down editing
pdf.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;

// Disable comment additions
pdf.SecuritySettings.AllowUserAnnotations = false;

// Allow form completion while blocking other modifications
pdf.SecuritySettings.AllowUserFormData = true;

// Save with all restrictions
pdf.SaveAs("contract-restricted.pdf");
$vbLabelText   $csharpLabel

権限制限を適用したPDFドキュメント - 印刷と編集制御が無効

以下の表は、利用可能なすべての権限プロパティとその一般的な用途をまとめたものです。

IronPDFセキュリティ設定の権限プロパティ
プロパティタイプ翻訳内容一般的な使用例
`AllowUserPrinting``PdfPrintSecurity`印刷アクセスを制御します: `NoPrint`または`FullPrintRights`機密文書の印刷を防止する
`AllowUserCopyPasteContent``ブール`テキストと画像の抽出を有効または無効にします知的財産の抽出を防ぐ
`AllowUserEdits``PdfEditSecurity`編集機能を制御: `NoEdit`または編集可能な値契約書や法的文書の変更を防止
`AllowUserAnnotations``ブール`コメントとマークアップの追加を許可または拒否しますドキュメントレビューワークフローを制御する
`AllowUserFormData``ブール`フォームフィールドの補完を有効または無効にする他の編集をブロックしながら PDF フォームへの入力を許可する
`AllowUserCopyPasteContentForAccessibility``ブール`スクリーンリーダーのコンテンツ抽出を管理します一般的なコピーを制限しながらアクセシビリティコンプライアンスを維持する

実際に権限フラグを使用するその他のコード例については、 IronPDF のセキュリティとメタデータの例を参照してください。

読み取り専用保護をすばやく適用するにはどうすればよいでしょうか?

コピー、印刷、編集、注釈のすべてのユーザー修正を一度にロックするのが目的の場合、MakePdfDocumentReadOnly便捷方法でこれを1回の呼び出しで処理します。 これは、各権限を個別に設定せずに最大限の制限を必要とする最終バージョンのドキュメントに役立ちます。

using IronPdf;

// Load the document to make read-only
var pdf = PdfDocument.FromFile("final-report.pdf");

// Apply full read-only protection with one method call
// This sets owner password and blocks all modification capabilities
pdf.SecuritySettings.MakePdfDocumentReadOnly("owner-readonly-password");

// Save the protected document
pdf.SaveAs("final-report-readonly.pdf");
using IronPdf;

// Load the document to make read-only
var pdf = PdfDocument.FromFile("final-report.pdf");

// Apply full read-only protection with one method call
// This sets owner password and blocks all modification capabilities
pdf.SecuritySettings.MakePdfDocumentReadOnly("owner-readonly-password");

// Save the protected document
pdf.SaveAs("final-report-readonly.pdf");
$vbLabelText   $csharpLabel

MakePdfDocumentReadOnlyメソッドは提供したオーナーパスワードを設定し、すべての変更権限を同時に無効にします。 作成されたドキュメントはパスワードなしで開いて読むことができますが、印刷、コピー、編集、注釈はすべて制限されます。 これは、個別の権限調整が不要な場合に、ドキュメントを完全にロックするための最速のパスです。 一部の権限を開放する必要がある場合(たとえば、印刷を許可してコピーを禁止するなど)は、上記の権限セクションに示されているように個別のSecuritySettingsプロパティを設定します。

PDF のパスワード保護を復号化して削除するにはどうすればよいですか?

暗号化された PDF ファイルをプログラムで操作する場合、コンテンツにアクセスするために正しいパスワードを入力する必要があります。 PdfDocument.FromFileメソッドはこの目的のためにオプショナルなパスワードパラメータを受け入れます。

次の例は、パスワードで保護されたファイルを開き、オプションでその暗号化を完全に削除する方法を示しています。

using IronPdf;

// Open a password-protected PDF by supplying the user password
var pdf = PdfDocument.FromFile("protected-report.pdf", "user-access-456");

// Extract text content from the decrypted document
string content = pdf.ExtractAllText();

// Remove all passwords and encryption when you need an unprotected version
pdf.SecuritySettings.RemovePasswordsAndEncryption();

// Save the unencrypted copy
pdf.SaveAs("report-unlocked.pdf");
using IronPdf;

// Open a password-protected PDF by supplying the user password
var pdf = PdfDocument.FromFile("protected-report.pdf", "user-access-456");

// Extract text content from the decrypted document
string content = pdf.ExtractAllText();

// Remove all passwords and encryption when you need an unprotected version
pdf.SecuritySettings.RemovePasswordsAndEncryption();

// Save the unencrypted copy
pdf.SaveAs("report-unlocked.pdf");
$vbLabelText   $csharpLabel

RemovePasswordsAndEncryptionメソッドはドキュメントからすべてのセキュリティを削除し、標準の保護されていないPDFとして保存します。 これは、エンドユーザーの制限が適切ではなくなった場合に、ドキュメントをアーカイブ、さらに変換、または再配布するために処理する場合に役立ちます。

PDFにデジタル署名が含まれている場合、RemovePasswordsAndEncryption(true)に渡して署名も削除するか、パラメータを省略して保持します。

暗号化と復号化のワークフローをペアで表示するには、 PDF の暗号化と復号化の例では、単一の実行可能なファイルで両方の操作を示します。

他にどのような PDF セキュリティ機能が利用できますか?

パスワード暗号化と権限フラグは、最も一般的な PDF セキュリティ要件をカバーしますが、 IronPDF は、より特殊なシナリオ向けに追加のドキュメント保護レイヤーも提供します。

デジタル署名: IronPDF は、信頼性を検証し、改ざんを検出するために、X.509 証明書を使用した PDF ドキュメントの署名をサポートしています。 署名された文書には視覚的な署名フィールドが表示され、署名者の身元の暗号化証明が提供されます。 実装の詳細と証明書の構成については、 PDF 署名ガイドを参照してください。

コンプライアンス標準: HIPAA、GDPR、または金融規制の対象となるアプリケーションの場合、通常、ドキュメントの暗号化は必須の制御です。 IronPDF の 128 ビット暗号化は、適切なキー管理プラクティスと組み合わせることで、ほとんどのコンプライアンス フレームワークのベースライン要件を満たします。 特定のコンプライアンス範囲に関連する規制ガイダンスを確認します。

IronSecureDoc : エンタープライズ レベルのドキュメント セキュリティ ニーズ (編集、高度なデジタル署名ワークフロー、複数のドキュメントの処理など) に対応するため、 IronSecureDoc は1 回限りのライセンスで専用のセキュリティ製品を提供します。

PDF 仕様自体からの外部参照は、権限モデルを理解するのに役立ちます。 Adobe の開発者サイトにある PDF 仕様の概要には、暗号化と権限がフォーマット レベルでどのように実装されるかが記載されています。 NIST 特別出版 800-111 のストレージ暗号化ガイドは、規制された環境での暗号化テクノロジの選択に関するコンテキストを提供します。 .NETにおけるドキュメント セキュリティのベスト プラクティスをより広い観点から見るには、Microsoft の.NET暗号化モデルのドキュメントで、 PDF ライブラリが構築される基盤となるプラットフォーム暗号化について説明しています。

次のステップは何ですか?

.NETの PDF セキュリティは、ユーザー パスワードを使用してドキュメントを開くことができるユーザーを制御すること、アクセス許可フラグを使用してユーザーが実行できる操作を制限すること、デジタル署名を使用してドキュメントの信頼性を確認することという、3 つの主要な領域をカバーします。 IronPDFは、手動の暗号化実装を必要とせずに、SecuritySettingsAPIと署名ワークフローですべての3種類を処理します。

さらに詳しい情報と実用的なコードについては、以下をご覧ください。

無料のIronPDFトライアルを開始して、アプリケーションでこれらのセキュリティ機能をテストしてください。 実稼働環境での展開の場合は、 IronPDF のライセンス オプションを参照して、プロジェクトの規模に適した層を見つけてください。

よくある質問

PDFのユーザーパスワードとオーナーパスワードの違いは何ですか?

ユーザーパスワード(開くためのパスワード)はPDFドキュメントを開くために必要です。オーナーパスワード(権限のパスワード)は、ドキュメントが開かれた後に許可される操作(印刷、コピー、編集など)を制御します。両方を独立して設定することができ、オーナーパスワードのみを持つドキュメントは誰でも読むことができますが、許可された操作は制限されます。

C# .NETでPDFドキュメントを暗号化するにはどうすればよいですか?

PdfDocumentを読み込むか作成し、次にpdf.SecuritySettings.OwnerPasswordおよび/またはpdf.SecuritySettings.UserPasswordを設定します。いずれかのパスワードが設定されると、IronPDFは自動的に128ビット暗号化を適用します。pdf.SaveAsを呼び出して暗号化されたファイルを書き出します。

.NETでユーザーがPDFを印刷またはコピーするのを防ぐにはどうすればいいですか?

pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrintを設定して印刷をブロックし、pdf.SecuritySettings.AllowUserCopyPasteContent = falseを設定して内容の抽出を防ぎます。これらの制限を適用するには、オーナーパスワードも設定する必要があります。

C#でIronPDFを使用してパスワードで保護されたPDFを開くにはどうすればよいですか?

PdfDocument.FromFileをパスワードを第2の引数として使用します:var pdf = PdfDocument.FromFile('file.pdf', 'user-password')。これにより、処理を進めるためにメモリ内でドキュメントが復号化されます。

.NETでPDFのパスワード保護を解除するにはどうすればよいですか?

PDFをそのパスワードで読み込んだ後、pdf.SecuritySettings.RemovePasswordsAndEncryption()を呼び出して結果を保存します。これにより、ドキュメントからすべての暗号化および権限の制限が取り除かれます。

IronPDFのMakePdfDocumentReadOnlyとは何ですか?

MakePdfDocumentReadOnlyはSecuritySettingsの便利なメソッドで、オーナーパスワードを設定し、すべての変更権限(印刷、コピー、編集、注釈)を1回の呼び出しで無効にします。ドキュメントはパスワードなしで読み取り可能ですが、変更することはできません。

IronPDFはPDFドキュメントのデジタル署名をサポートしていますか?

はい。IronPDFはX.509証明書を使用してPDFドキュメントに署名することをサポートしています。署名されたドキュメントには視覚的な署名フィールドが含まれ、署名者の身元の暗号学的な証明を提供します。実装の詳細については、IronPDF PDF署名のハウツーガイドを参照してください。

IronPDFのPDF暗号化はHIPAAまたはGDPRの要件を満たしていますか?

IronPDFの128ビット暗号化は、ほとんどのコンプライアンスフレームワークにおけるベースラインの暗号化要件を満たしています。ただし、規制準拠は暗号化を超える追加のコントロールを含み、鍵管理、アクセスログ、データハンドリングポリシーなどが含まれます。あなたの規制範囲の特定の要件を確認してください。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

Iron Support Team

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