PDFドキュメントの暗号化と復号化

Encryptionサービスについて

Encryptionサービスを使用すると、ドキュメントの暗号化および復号化を行うことができます。 ドキュメントを暗号化すると、その内容は判読できなくなります。許可されたユーザーはドキュメントを復号化して、コンテンツにアクセスできます。PDF ドキュメントがパスワードで暗号化されている場合、ユーザーは開くためのパスワードを指定しないと、Adobe Reader または Adobe Acrobat でドキュメントを表示できません。同じように、PDF ドキュメントが証明書で暗号化されている場合も、ユーザーが PDF ドキュメントを復号化するには、その PDF ドキュメントの暗号化に使用された証明書(秘密鍵)に対応した公開鍵が必要です。

Encryptionサービスを使用して、次のタスクを実行できます。

PDFドキュメントのパスワードによる暗号化

PDF ドキュメントをパスワードで暗号化する場合、ユーザーは Adobe Reader または Acrobat で PDF ドキュメントを開くためのパスワードを指定する必要があります。また、PDFドキュメントのデジタル署名など、別のAEM Forms操作をドキュメントで実行する前に、パスワードで暗号化されたPDFドキュメントをロック解除する必要があります。

メモ

暗号化されたPDFドキュメントをAEM Formsリポジトリにアップロードする場合、PDFドキュメントを復号化してXDPコンテンツを抽出することはできません。 ドキュメントをAEM Formsリポジトリにアップロードする前に、暗号化を行わないことをお勧めします。 (リソースの書き込みを参照)。

メモ

Encryptionサービスの詳細については、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

PDFドキュメントをパスワードで暗号化するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. 暗号化クライアントAPIオブジェクトを作成します。
  3. 暗号化するPDFドキュメントを取得します。
  4. 暗号化の実行時オプションを設定します。
  5. 追加パスワード。
  6. 暗号化されたPDFドキュメントをPDFファイルとして保存します。

プロジェクトファイルを含める

開発プロジェクトに必要なファイルを含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(AEM FormsがJBossにデプロイされている場合に必要)
  • jbossall-client.jar(AEM FormsがJBossにデプロイされている場合に必要)

暗号化クライアントAPIオブジェクトの作成

プログラムによってEncryptionサービスの操作を実行するには、Encryptionサービスクライアントを作成する必要があります。

暗号化するPDFドキュメントの取得

パスワードを使用してドキュメントを暗号化するには、暗号化されていないPDFドキュメントを取得する必要があります。 既に暗号化されているPDFドキュメントを保護しようとすると、例外が発生します。

暗号化の実行時オプションの設定

PDFドキュメントをパスワードで暗号化するには、2つのパスワード値を含む4つの値を指定します。 最初のパスワード値は、PDFドキュメントの暗号化に使用され、PDFドキュメントを開くときに指定する必要があります。 2番目のパスワード値は、マスターパスワード値という名前で、PDFドキュメントから暗号化を削除するために使用されます。 パスワードの値は大文字と小文字が区別されます。また、これらの2つのパスワード値を同じ値にすることはできません。

暗号化するPDFドキュメントリソースを指定する必要があります。 PDFドキュメント全体(ドキュメントのメタデータを除くすべて)またはドキュメントの添付ファイルのみを暗号化できます。 ドキュメントの添付ファイルのみを暗号化する場合、ユーザーが添付ファイルにアクセスしようとすると、パスワードの入力が求められます。

PDFドキュメントを暗号化する場合、保護されたドキュメントに関連付けられている権限を指定できます。 権限を指定すると、パスワードで暗号化されたPDFドキュメントを開いたユーザーに対して実行を許可するアクションを制御できます。 例えば、フォームデータを正しく抽出するには、次の権限を設定する必要があります。

  • PASSWORD_EDIT_ADD
  • PASSWORD_EDIT_MODIFY
メモ

権限はPasswordEncryptionPermission定義済みリスト値として指定します。

追加パスワード

保護されていないPDFドキュメントを取得し、暗号化の実行時の値を設定したら、PDFドキュメントにパスワードを追加できます。

暗号化されたPDFドキュメントをPDFファイルとして保存します

パスワードで暗号化されたPDFドキュメントをPDFファイルとして保存できます。

関連トピック

Java APIを使用したPDFドキュメントの暗号化

WebサービスAPIを使用したPDFドキュメントの暗号化

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

EncryptionサービスAPIのクイック開始

PDFドキュメントの証明書による暗号化

Java APIを使用してPDFドキュメントを暗号化する

Encryption API(Java)を使用して、PDFドキュメントをパスワードで暗号化します。

  1. プロジェクトファイルを含めます。

    Javaプロジェクトのクラスパスに、adobe-encryption-client.jarなどのクライアントJARファイルを含めます。

  2. 暗号化クライアントAPIの作成を参照してください。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用し、EncryptionServiceClientオブジェクトを渡して、ServiceClientFactoryオブジェクトを作成します。
  3. 暗号化するPDFドキュメントを取得します。

    • コンストラクターを使用し、PDFドキュメントの場所を指定するstring値を渡して、暗号化するPDFドキュメントを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. 暗号化の実行時オプションを設定します。

    • コンストラクターを呼び出して、PasswordEncryptionOptionSpecオブジェクトを作成します。
    • PasswordEncryptionOptionSpecオブジェクトのsetEncryptOptionメソッドを呼び出し、暗号化するドキュメントリソースを指定するPasswordEncryptionOption定義済みリスト値を渡して、暗号化するPDFドキュメントリソースを指定します。 例えば、メタデータと添付ファイルを含むPDFドキュメント全体を暗号化するには、PasswordEncryptionOption.ALLを指定します。
    • ArrayListコンストラクターを使用して、暗号化の権限を格納するjava.util.Listオブジェクトを作成します。
    • java.util.Listオブジェクト's addメソッドを呼び出し、設定する権限に対応する定義済みリスト値を渡して、権限を指定します。 例えば、PDFドキュメント内のデータをユーザーがコピーできる権限を設定するには、PasswordEncryptionPermission.PASSWORD_EDIT_COPYを指定します。 (設定する権限ごとに、この手順を繰り返します)。
    • PasswordEncryptionOptionSpecオブジェクトのsetCompatabilityメソッドを呼び出し、Acrobatの互換性レベルを指定する定義済みリスト値を渡して、Acrobatの互換性オプションを指定します。 例えば、PasswordEncryptionCompatability.ACRO_7を指定できます。
    • ユーザーが暗号化されたPDFドキュメントを開くために、PasswordEncryptionOptionSpecオブジェクトのsetDocumentOpenPasswordメソッドを呼び出し、開くパスワードを表すstring値を渡すパスワード値を指定します。
    • マスターパスワード値を指定します。この値を指定すると、ユーザーがPasswordEncryptionOptionSpecオブジェクトのsetPermissionPasswordメソッドを呼び出し、マスターパスワードを表す文字列値を渡すことで、PDFドキュメントから暗号化を削除できます。
  5. 追加パスワード。

    EncryptionServiceClientオブジェクトのencryptPDFUsingPasswordメソッドを呼び出し、次の値を渡して、PDFドキュメントを暗号化します。

    • パスワードを使用して暗号化するPDFドキュメントが含まれるcom.adobe.idp.Documentオブジェクトです。
    • 暗号化の実行時オプションを含むPasswordEncryptionOptionSpecオブジェクトです。

    encryptPDFUsingPasswordメソッドは、パスワードで暗号化されたPDFドキュメントを含むcom.adobe.idp.Documentオブジェクトを返します。

  6. 暗号化されたPDFドキュメントをPDFファイルとして保存します。

    • java.io.File オブジェクトを作成し、ファイル拡張子が .pdf であることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします。 com.adobe.idp.Document メソッドから返された encryptPDFUsingPassword オブジェクトを必ず使用してください。

関連トピック

手順の概要

クイック開始(SOAPモード):Java APIを使用したPDFドキュメントの暗号化

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用したPDFドキュメントの暗号化

Encryption API(Webサービス)を使用して、PDFドキュメントをパスワードで暗号化します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. 暗号化クライアントAPIオブジェクトを作成します。

    • EncryptionServiceClientオブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。

    • System.ServiceModel.EndpointAddressコンストラクターを使用してEncryptionServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/EncryptionService?WSDL)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する場合に使用されます)。

    • EncryptionServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値により、MTOMが使用されます。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • AEM formsユーザー名をフィールドEncryptionServiceClient.ClientCredentials.UserName.UserNameに割り当てます。
      • 対応するパスワード値をフィールドEncryptionServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • 定数値HttpClientCredentialType.BasicをフィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに割り当てます。
      • 定数値BasicHttpSecurityMode.TransportCredentialOnlyをフィールドBasicHttpBindingSecurity.Security.Modeに割り当てます。
  3. 暗号化するPDFドキュメントを取得します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、パスワードで暗号化されたPDFドキュメントを保存するために使用します。
    • コンストラクターを呼び出し、暗号化するPDFドキュメントのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。
    • バイト配列の内容をBLOBオブジェクトのMTOMデータメンバーに割り当てて、BLOBオブジェクトを入力します。
  4. 暗号化の実行時オプションを設定します。

    • コンストラクタを使用して PasswordEncryptionOptionSpec オブジェクトを作成します。
    • 暗号化するPDFドキュメントリソースを指定するには、PasswordEncryptionOption定義済みリスト値をPasswordEncryptionOptionSpecオブジェクトのencryptOptionデータメンバに割り当てます。 PDF全体(メタデータと添付ファイルを含む)を暗号化するには、このデータメンバーにPasswordEncryptionOption.ALLを割り当てます。
    • PasswordEncryptionCompatability定義済みリスト値をPasswordEncryptionOptionSpecオブジェクトのcompatabilityデータメンバに割り当てて、Acrobat互換性オプションを指定します。 例えば、PasswordEncryptionCompatability.ACRO_7をこのデータメンバーに割り当てます。
    • 暗号化されたPDFドキュメントをユーザーが開くためのpassword値を指定します。この値は、開いたパスワードを表すstring値をPasswordEncryptionOptionSpecオブジェクトのdocumentOpenPasswordデータメンバーに割り当てることによって指定します。
    • ユーザーがマスターパスワードを表す文字列値をPasswordEncryptionOptionSpecオブジェクトのpermissionPasswordデータメンバーに割り当てることで、PDFドキュメントから暗号化を削除できるように、password値を指定します。
  5. 追加パスワード。

    EncryptionServiceClientオブジェクトのencryptPDFUsingPasswordメソッドを呼び出し、次の値を渡して、PDFドキュメントを暗号化します。

    • パスワードを使用して暗号化するPDFドキュメントが含まれるBLOBオブジェクトです。
    • 暗号化の実行時オプションを含むPasswordEncryptionOptionSpecオブジェクトです。

    encryptPDFUsingPasswordメソッドは、パスワードで暗号化されたPDFドキュメントを含むBLOBオブジェクトを返します。

  6. 暗号化されたPDFドキュメントをPDFファイルとして保存します。

    • コンストラクターを呼び出し、保護されたPDFドキュメントーのファイルの場所を表す文字列値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • encryptPDFUsingPasswordメソッドから返されたBLOBオブジェクトのデータ内容を格納するバイト配列を作成します。 BLOBオブジェクトのMTOMデータメンバの値を取得して、バイト配列を入力します。
    • コンストラクターを呼び出してSystem.IO.FileStreamオブジェクトを渡し、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことで、バイト配列の内容をPDFファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

PDFドキュメントの証明書による暗号化

証明書ベースの暗号化を使用すると、公開鍵による暗号化を使用して、特定の受信者用のドキュメントを暗号化できます。 それぞれの受信者に、異なる権限を与えることができます。公開鍵によって、さまざまな暗号化を行うことができます。アルゴリズムは、keys​と呼ばれる、次のプロパティを持つ2つの大きな数値を生成するために使用します。

  • 鍵のうち 1 つは、一連のデータを暗号化するために使用されます。その後、他のキーのみを使用してデータを復号化できます。
  • 1 つの鍵を、もう片方の鍵と区別することは不可能です。

鍵の1つは、ユーザーの秘密鍵として機能します。 そのユーザーのみがこの鍵にアクセスできることが重要です。もう1つのキーはユーザーの公開鍵で、他のユーザーと共有できます。

公開鍵証明書には、ユーザーの公開鍵と識別情報が含まれます。 証明書の保存には、X.509 形式が使用されます。通常、証明書は認証局(CA)で発行および電子署名されます。CA は、証明書の有効性における信頼度を提供する、承認されたエンティティです。証明書には有効期限があり、この期限を過ぎると無効になります。また、証明書の失効リスト(CRL)には、有効期限よりも前に失効した証明書に関する情報が示されます。CRL は認証局によって定期的に発行されます。証明書の失効ステータスは、ネットワークを通じてオンライン証明書ステータスプロトコル(OCSP)から取得することもできます。

メモ

暗号化されたPDFドキュメントをAEM Formsリポジトリにアップロードする場合、PDFドキュメントを復号化してXDPコンテンツを抽出することはできません。 ドキュメントをAEM Formsリポジトリにアップロードする前に、暗号化を行わないことをお勧めします。 (リソースの書き込みを参照)。

メモ

PDFドキュメントを証明書で暗号化する前に、証明書をAEM Formsに追加しておく必要があります。 証明書は、管理コンソールを使用して、またはTrust Manager APIをプログラムで使用して追加します。 (「Trust Manager APIを使用した秘密鍵証明書の読み込み」を参照)。

メモ

Encryptionサービスの詳細については、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

PDFドキュメントを証明書で暗号化するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. 暗号化クライアントAPIオブジェクトを作成します。
  3. 暗号化するPDFドキュメントを取得します。
  4. 証明書を参照します。
  5. 暗号化の実行時オプションを設定します。
  6. 証明書で暗号化されたPDFドキュメントを作成します。
  7. 暗号化されたPDFドキュメントをPDFファイルとして保存します。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(AEM FormsがJBoss Application Serverにデプロイされている場合に必要)
  • jbossall-client.jar(AEM FormsがJBoss Application Serverにデプロイされている場合に必要)

暗号化クライアントAPIオブジェクトの作成

プログラムによってEncryptionサービスの操作を実行するには、Encryptionサービスクライアントを作成する必要があります。 Java Encryption Service APIを使用している場合は、EncrytionServiceClientオブジェクトを作成します。 WebサービスのEncryption Service APIを使用している場合は、EncryptionServiceServiceオブジェクトを作成します。

暗号化するPDFドキュメントの取得

暗号化する非暗号化のPDFドキュメントを取得する必要があります。 既に暗号化されているPDFドキュメントを保護しようとすると、例外が発生します。

証明書の参照

PDFドキュメントを証明書で暗号化するには、PDFドキュメントの暗号化に使用される証明書を参照します。 証明書は.cerファイル、.crtファイル、または.pemファイルです。 PKCS#12ファイルは、対応する証明書を持つ秘密鍵を保存するために使用されます。

PDFドキュメントを証明書で暗号化する場合は、保護されたドキュメントに関連付けられている権限を指定します。 権限を指定すると、証明書で暗号化されたPDFドキュメントを開いたユーザーが実行できるアクションを制御できます。

暗号化の実行時オプションの設定

暗号化するPDFドキュメントリソースを指定します。 PDFドキュメント全体(ドキュメントのメタデータを除くすべて)またはドキュメントの添付ファイルのみを暗号化できます。

証明書で暗号化されたPDFドキュメントの作成

保護されていないPDFドキュメントを取得し、証明書を参照し、実行時のオプションを設定したら、証明書で暗号化されたPDFドキュメントを作成できます。 PDFドキュメントが暗号化された後、対応する公開鍵を使用して復号化する必要があります。

暗号化されたPDFドキュメントをPDFファイルとして保存します

暗号化されたPDFドキュメントをPDFファイルとして保存できます。

関連トピック

Java APIを使用した証明書によるPDFドキュメントの暗号化

WebサービスAPIを使用して、PDFドキュメントを証明書で暗号化する

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

EncryptionサービスAPIのクイック開始

PDFドキュメントのパスワードによる暗号化

Java APIを使用して、PDFドキュメントを証明書で暗号化します。

Encryption API(Java)を使用して、PDFドキュメントを証明書で暗号化します。

  1. プロジェクトファイルを含めます。

    Javaプロジェクトのクラスパスに、adobe-encryption-client.jarなどのクライアントJARファイルを含めます。

  2. 暗号化クライアントAPIオブジェクトを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用し、EncryptionServiceClientオブジェクトを渡して、ServiceClientFactoryオブジェクトを作成します。
  3. 暗号化するPDFドキュメントを取得します。

    • コンストラクターを使用し、PDFドキュメントの場所を指定するstring値を渡して、暗号化するPDFドキュメントを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. 証明書を参照します。

    • コンストラクタを使用して、権限情報を格納するjava.util.Listオブジェクトを作成します。
    • java.util.Listオブジェクトのaddメソッドを呼び出し、保護されたPDFドキュメントを開くユーザーに許可する権限を表すCertificateEncryptionPermissions定義済みリスト値を渡して、暗号化されたドキュメントに関連付けられた権限を指定します。 例えば、すべての権限を指定するには、CertificateEncryptionPermissions.PKI_ALL_PERMを渡します。
    • コンストラクタを使用して Recipient オブジェクトを作成します。
    • PDFドキュメントのコンストラクターを使用し、証明書の場所を指定する文字列値を渡して、PDFの暗号化に使用される証明書を表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクターを使用し、証明書を表すjava.io.FileInputStreamオブジェクトを渡して、com.adobe.idp.Documentオブジェクトを作成します。
    • RecipientオブジェクトのsetX509Certメソッドを呼び出し、証明書を含むcom.adobe.idp.Documentオブジェクトを渡します。 (さらに、Recipientオブジェクトには、Truststore証明書エイリアスまたはLDAP URLを証明書ソースとして指定できます)。
    • コンストラクターを使用して、権限と証明書情報を格納するCertificateEncryptionIdentityオブジェクトを作成します。
    • CertificateEncryptionIdentityオブジェクトのsetPermsメソッドを呼び出し、権限情報を格納するjava.util.Listオブジェクトを渡します。
    • CertificateEncryptionIdentityオブジェクトのsetRecipientメソッドを呼び出し、証明書情報を格納するRecipientオブジェクトを渡します。
    • 証明書情報を格納するjava.util.Listオブジェクトを作成します。このオブジェクトは、コンストラクターを使用して作成します。
    • java.util.Listオブジェクトのaddメソッドを呼び出し、CertificateEncryptionIdentityオブジェクトを渡します。 (このjava.util.Listオブジェクトは、encryptPDFUsingCertificatesメソッドにパラメーターとして渡されます)。
  5. 暗号化の実行時オプションを設定します。

    • コンストラクターを呼び出して、CertificateEncryptionOptionSpecオブジェクトを作成します。
    • CertificateEncryptionOptionSpecオブジェクトのsetOptionメソッドを呼び出し、暗号化するドキュメントリソースを指定するCertificateEncryptionOption定義済みリスト値を渡して、暗号化するPDFドキュメントリソースを指定します。 例えば、メタデータと添付ファイルを含むPDFドキュメント全体を暗号化するには、CertificateEncryptionOption.ALLを指定します。
    • CertificateEncryptionOptionSpecオブジェクトのsetCompatメソッドを呼び出し、Acrobatの互換性レベルを指定するCertificateEncryptionCompatibility定義済みリスト値を渡して、Acrobatの互換性オプションを指定します。 例えば、CertificateEncryptionCompatibility.ACRO_7を指定できます。
  6. 証明書で暗号化されたPDFドキュメントを作成します。

    EncryptionServiceClientオブジェクトのencryptPDFUsingCertificatesメソッドを呼び出し、次の値を渡して、PDFドキュメントを証明書で暗号化します。

    • 暗号化するPDFドキュメントが含まれるcom.adobe.idp.Documentオブジェクトです。
    • 証明書情報を格納するjava.util.Listオブジェクトです。
    • 暗号化の実行時オプションを含むCertificateEncryptionOptionSpecオブジェクトです。

    encryptPDFUsingCertificatesメソッドは、証明書で暗号化されたPDFドキュメントを含むcom.adobe.idp.Documentオブジェクトを返します。

  7. 暗号化されたPDFドキュメントをPDFファイルとして保存します。

    • java.io.Fileオブジェクトを作成し、ファイル名の拡張子が.pdfであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします。 com.adobe.idp.Document メソッドから返された encryptPDFUsingCertificates オブジェクトを必ず使用してください。

関連トピック

手順の概要

クイック開始(SOAPモード):Java APIを使用した証明書によるPDFドキュメントの暗号化

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用して、PDFドキュメントを証明書で暗号化します

Encryption API(Webサービス)を使用して、PDFドキュメントを証明書で暗号化します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. 暗号化クライアントAPIオブジェクトを作成します。

    • EncryptionServiceClientオブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。

    • System.ServiceModel.EndpointAddressコンストラクターを使用してEncryptionServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/EncryptionService?WSDL)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する場合に使用されます)。

    • EncryptionServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値により、MTOMが使用されます。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • AEM formsユーザー名をフィールドEncryptionServiceClient.ClientCredentials.UserName.UserNameに割り当てます。
      • 対応するパスワード値をフィールドEncryptionServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • 定数値HttpClientCredentialType.BasicをフィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに割り当てます。
      • 定数値BasicHttpSecurityMode.TransportCredentialOnlyをフィールドBasicHttpBindingSecurity.Security.Modeに割り当てます。
  3. 暗号化するPDFドキュメントを取得します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、証明書で暗号化されたPDFドキュメントを保存するために使用します。
    • コンストラクターを呼び出し、暗号化するPDFドキュメントのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトにMTOMプロパティを割り当て、バイト配列の内容を指定します。
  4. 証明書を参照します。

    • コンストラクタを使用して Recipient オブジェクトを作成します。このオブジェクトは、証明書情報を格納します。
    • コンストラクタを使用して BLOB オブジェクトを作成します。このBLOBオブジェクトには、PDFドキュメントを暗号化する証明書が格納されます。
    • コンストラクターを呼び出し、証明書のファイルの場所とファイルを開くモードを表す文字列値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。
    • バイト配列の内容をBLOBオブジェクトのMTOMデータメンバーに割り当てて、BLOBオブジェクトを入力します。
    • 証明書を保存するBLOBオブジェクトをRecipientオブジェクトのx509Certデータメンバに割り当てます。
    • 証明書情報を格納するCertificateEncryptionIdentityオブジェクトを作成します。このオブジェクトは、コンストラクターを使用して作成します。
    • 証明書を保存するRecipientオブジェクトをCertificateEncryptionIdentityオブジェクトの受信者データメンバに割り当てます。
    • Object配列を作成し、CertificateEncryptionIdentityオブジェクトをObject配列の最初の要素に割り当てます。 このObject配列は、encryptPDFUsingCertificatesメソッドにパラメーターとして渡されます。
  5. 暗号化の実行時オプションを設定します。

    • コンストラクタを使用して CertificateEncryptionOptionSpec オブジェクトを作成します。
    • 暗号化するPDFドキュメントリソースを指定するには、CertificateEncryptionOption定義済みリスト値をCertificateEncryptionOptionSpecオブジェクトのoptionデータメンバに割り当てます。 PDFドキュメント全体(メタデータと添付ファイルを含む)を暗号化するには、CertificateEncryptionOption.ALLをこのデータメンバーに割り当てます。
    • CertificateEncryptionCompatibility定義済みリスト値をCertificateEncryptionOptionSpecオブジェクトのcompatデータメンバに割り当てて、Acrobat互換性オプションを指定します。 例えば、CertificateEncryptionCompatibility.ACRO_7をこのデータメンバーに割り当てます。
  6. 証明書で暗号化されたPDFドキュメントを作成します。

    EncryptionServiceServiceオブジェクトのencryptPDFUsingCertificatesメソッドを呼び出し、次の値を渡して、PDFドキュメントを証明書で暗号化します。

    • 暗号化するPDFドキュメントが含まれるBLOBオブジェクトです。
    • 証明書情報を格納するObject配列。
    • 暗号化の実行時オプションを含むCertificateEncryptionOptionSpecオブジェクトです。

    encryptPDFUsingCertificatesメソッドは、証明書で暗号化されたPDFドキュメントを含むBLOBオブジェクトを返します。

  7. 暗号化されたPDFドキュメントをPDFファイルとして保存します。

    • コンストラクターを呼び出し、保護されたPDFドキュメントーのファイルの場所を表す文字列値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • encryptPDFUsingCertificatesメソッドから返されたBLOBオブジェクトのデータ内容を格納するバイト配列を作成します。 BLOBオブジェクトのbinaryDataデータメンバの値を取得して、バイト配列を入力します。
    • コンストラクターを呼び出してSystem.IO.FileStreamオブジェクトを渡し、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことで、バイト配列の内容をPDFファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

証明書ベースの暗号化の削除

証明書ベースの暗号化をPDFドキュメントから削除して、Adobe ReaderまたはAcrobatでPDFドキュメントを開くことができるようにすることができます。 証明書で暗号化されたPDFドキュメントから暗号化を削除するには、公開鍵を参照する必要があります。 暗号化がPDFドキュメントから削除されると、その暗号化は保護されなくなります。

メモ

Encryptionサービスの詳細については、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

PDFドキュメントから証明書ベースの暗号化を削除するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Encryptionサービスクライアントを作成します。
  3. 暗号化されたPDFドキュメントを取得します。
  4. 暗号化を削除します。
  5. PDFドキュメントをPDFファイルとして保存します。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(AEM FormsがJBoss Application Serverにデプロイされている場合に必要)
  • jbossall-client.jar(AEM FormsがJBoss Application Serverにデプロイされている場合に必要)

Encryptionサービスクライアントの作成

プログラムによってEncryptionサービスの操作を実行するには、Encryptionサービスクライアントを作成する必要があります。 Java Encryption Service APIを使用している場合は、EncrytionServiceClientオブジェクトを作成します。 WebサービスのEncryption Service APIを使用している場合は、EncryptionServiceServiceオブジェクトを作成します。

暗号化されたPDFドキュメントの取得

証明書ベースの暗号化を削除するには、暗号化されたPDFドキュメントを取得する必要があります。 暗号化されていないPDFドキュメントから暗号化を削除しようとすると、例外が発生します。 同様に、パスワードで暗号化されたドキュメントから証明書ベースの暗号化を削除しようとすると、例外が発生します。

暗号化の削除

暗号化されたPDFドキュメントから証明書ベースの暗号化を削除するには、暗号化されたPDFドキュメントと、PDFドキュメントの暗号化に使用されたキーに対応する秘密鍵の両方が必要です。 秘密鍵のエイリアス値は、暗号化されたPDFドキュメントから証明書ベースの暗号化を削除するときに指定します。 公開鍵について詳しくは、証明書でのPDFドキュメントの暗号化を参照してください。

メモ

秘密鍵はAEM FormsTrust Storeに保存されます。 証明書がそこに配置されると、エイリアス値が指定されます。

PDFドキュメントの保存

暗号化されたPDFドキュメントから証明書ベースの暗号化を削除した後、PDFドキュメントをPDFファイルとして保存できます。 PDFドキュメントは、Adobe ReaderまたはAcrobatで開くことができます。

関連トピック

Java APIを使用した証明書ベースの暗号化の削除

WebサービスAPIを使用した証明書ベースの暗号化の削除

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

EncryptionサービスAPIのクイック開始

Java APIを使用した証明書ベースの暗号化の削除

Encryption API(Java)を使用して、PDFドキュメントから証明書ベースの暗号化を削除します。

  1. プロジェクトファイルを含めます。

    Javaプロジェクトのクラスパスに、adobe-encryption-client.jarなどのクライアントJARファイルを含めます。

  2. Encryptionサービスクライアントを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用し、EncryptionServiceClientオブジェクトを渡して、ServiceClientFactoryオブジェクトを作成します。
  3. 暗号化されたPDFドキュメントを取得します。

    • コンストラクターを使用し、暗号化されたPDFドキュメントの場所を指定するstring値を渡して、暗号化されたPDFドキュメントを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. 暗号化を削除します。

    EncryptionServiceClientオブジェクトのremovePDFCertificateSecurityメソッドを呼び出し、次の値を渡すことで、証明書ベースの暗号化をPDFドキュメントから削除します。

    • 暗号化されたPDFドキュメントを含むcom.adobe.idp.Documentオブジェクトです。
    • PDfドキュメントの暗号化に使用されるキーに対応する秘密鍵のエイリアス名を指定するstring値。

    removePDFCertificateSecurityメソッドは、保護されていないPDFドキュメントを含むcom.adobe.idp.Documentオブジェクトを返します。

  5. PDFドキュメントを保存します。

    • java.io.File オブジェクトを作成し、ファイル拡張子が .pdf であることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、Documentオブジェクトの内容をファイルにコピーします。 com.adobe.idp.Document メソッドから返された removePDFCredentialSecurity オブジェクトを必ず使用してください。

関連トピック

手順の概要

クイック開始(SOAPモード):Java APIを使用した証明書ベースの暗号化の削除

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用して証明書ベースの暗号化を削除する

Encryption API(Webサービス)を使用して、証明書ベースの暗号化を削除します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Encryptionサービスクライアントを作成します。

    • EncryptionServiceClientオブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。

    • System.ServiceModel.EndpointAddressコンストラクターを使用してEncryptionServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/EncryptionService?WSDL)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する場合に使用されます)。

    • EncryptionServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値により、MTOMが使用されます。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • AEM formsユーザー名をフィールドEncryptionServiceClient.ClientCredentials.UserName.UserNameに割り当てます。
      • 対応するパスワード値をフィールドEncryptionServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • 定数値HttpClientCredentialType.BasicをフィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに割り当てます。
      • 定数値BasicHttpSecurityMode.TransportCredentialOnlyをフィールドBasicHttpBindingSecurity.Security.Modeに割り当てます。
  3. 暗号化されたPDFドキュメントを取得します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、暗号化されたPDFドキュメントの保存に使用されます。
    • コンストラクターを呼び出し、暗号化されたPDFドキュメントーのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。
    • バイト配列の内容をBLOBオブジェクトのMTOMデータメンバーに割り当てて、BLOBオブジェクトを入力します。
  4. 暗号化を削除します。

    EncryptionServiceClientオブジェクトのremovePDFCertificateSecurityメソッドを呼び出し、次の値を渡します。

    • 暗号化されたPDFドキュメントを表すファイルストリームデータを含むBLOBオブジェクトです。
    • PDfドキュメントの暗号化に使用される秘密鍵に対応する公開鍵のエイリアス名を指定するstring値。

    removePDFCredentialSecurityメソッドは、保護されていないPDFドキュメントを含むBLOBオブジェクトを返します。

  5. PDFドキュメントを保存します。

    • コンストラクターを呼び出し、保護されていないPDFドキュメントーのファイルの場所を表す文字列値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • removePDFPasswordSecurityメソッドから返されたBLOBオブジェクトの内容を格納するバイト配列を作成します。 BLOBオブジェクトのMTOMデータメンバの値を取得して、バイト配列を入力します。
    • コンストラクターを呼び出してSystem.IO.FileStreamオブジェクトを渡し、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことで、バイト配列の内容をPDFファイルに書き込みます。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

パスワード暗号化の削除

パスワードベースの暗号化をPDFドキュメントから削除して、パスワードを指定しなくても、Adobe ReaderまたはAcrobatでPDFドキュメントを開くことができるようにすることができます。 パスワードベースの暗号化をPDFドキュメントから削除すると、ドキュメントのセキュリティは保護されなくなります。

メモ

Encryptionサービスの詳細については、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

PDFドキュメントからパスワードベースの暗号化を削除するには、次の手順を実行します。

  1. プロジェクトファイルを含める
  2. Encryptionサービスクライアントを作成します。
  3. 暗号化されたPDFドキュメントを取得します。
  4. パスワードを削除します。
  5. PDFドキュメントをPDFファイルとして保存します。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めます。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(AEM FormsがJBossにデプロイされている場合に必要)
  • jbossall-client.jar(AEM FormsがJBossにデプロイされている場合に必要)

Encryptionサービスクライアントの作成

プログラムによってEncryptionサービスの操作を実行するには、Encryptionサービスクライアントを作成する必要があります。 Java Encryption Service APIを使用している場合は、EncrytionServiceClientオブジェクトを作成します。 WebサービスのEncryption Service APIを使用している場合は、EncryptionServiceServiceオブジェクトを作成します。

暗号化されたPDFドキュメントの取得

パスワードベースの暗号化を削除するには、暗号化されたPDFドキュメントを取得する必要があります。 暗号化されていないPDFドキュメントから暗号化を削除しようとすると、例外が発生します。

パスワードの削除

暗号化されたPDFドキュメントからパスワードベースの暗号化を削除するには、暗号化されたPDFドキュメントと、PDFドキュメントから暗号化を削除するために使用するマスターパスワードの両方を指定する必要があります。 パスワードで暗号化されたPDFドキュメントを開く際に使用するパスワードは、暗号化の削除には使用できません。 マスターパスワードは、PDFドキュメントがパスワードを使用して暗号化される場合に指定します。 (「パスワードによるPDFドキュメントの暗号化」を参照)。

PDFドキュメントの保存

EncryptionサービスでPDFドキュメントからパスワードベースの暗号化を削除した後、PDFドキュメントをPDFファイルとして保存できます。 ユーザーは、パスワードを指定せずに、Adobe ReaderまたはAcrobatでPDFドキュメントを開くことができます。

関連トピック

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

EncryptionサービスAPIのクイック開始

PDFドキュメントのパスワードによる暗号化

Java APIを使用したパスワードベースの暗号化の削除

Encryption API(Java)を使用して、PDFドキュメントからパスワードベースの暗号化を削除します。

  1. プロジェクトファイルを含めます。

    Javaプロジェクトのクラスパスに、adobe-encryption-client.jarなどのクライアントJARファイルを含めます。

  2. Encryptionサービスクライアントを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用し、EncryptionServiceClientオブジェクトを渡して、ServiceClientFactoryオブジェクトを作成します。
  3. 暗号化されたPDFドキュメントを取得します。

    • コンストラクターを使用し、PDFドキュメントの場所を指定するstring値を渡して、暗号化されたPDFドキュメントを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. パスワードを削除します。

    EncryptionServiceClientオブジェクトのremovePDFPasswordSecurityメソッドを呼び出し、次の値を渡すことで、PDFドキュメントからパスワードベースの暗号化を削除します。

    • 暗号化されたPDFドキュメントを含むcom.adobe.idp.Documentオブジェクトです。
    • PDFドキュメントから暗号化を削除するために使用されるマスターパスワード値を指定するstring値です。

    removePDFPasswordSecurityメソッドは、保護されていないPDFドキュメントを含むcom.adobe.idp.Documentオブジェクトを返します。

  5. PDFドキュメントを保存します。

    • java.io.Fileオブジェクトを作成し、ファイル名の拡張子が.pdfであることを確認します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、Documentオブジェクトの内容をファイルにコピーします。 Document メソッドから返された removePDFPasswordSecurity オブジェクトを必ず使用してください。

関連トピック

クイック開始(SOAPモード):Java APIを使用したパスワードベースの暗号化の削除

WebサービスAPIを使用してパスワードベースの暗号化を削除

Encryption API(Webサービス)を使用して、パスワードベースの暗号化を削除します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Encryptionサービスクライアントを作成します。

    • EncryptionServiceClientオブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。

    • System.ServiceModel.EndpointAddressコンストラクターを使用してEncryptionServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/EncryptionService?WSDL)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する場合に使用されます)。

    • EncryptionServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値により、MTOMが使用されます。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • AEM formsユーザー名をフィールドEncryptionServiceClient.ClientCredentials.UserName.UserNameに割り当てます。
      • 対応するパスワード値をフィールドEncryptionServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • 定数値HttpClientCredentialType.BasicをフィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに割り当てます。
      • 定数値BasicHttpSecurityMode.TransportCredentialOnlyをフィールドBasicHttpBindingSecurity.Security.Modeに割り当てます。
  3. 暗号化されたPDFドキュメントを取得します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、パスワードで暗号化されたPDFドキュメントを保存するために使用します。
    • コンストラクターを呼び出し、暗号化されたPDFドキュメントーのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。
    • バイト配列の内容をBLOBオブジェクトのMTOMデータメンバーに割り当てて、BLOBオブジェクトを入力します。
  4. パスワードを削除します。

    EncryptionServiceServiceオブジェクトのremovePDFPasswordSecurityメソッドを呼び出し、次の値を渡します。

    • 暗号化されたPDFドキュメントを表すファイルストリームデータを含むBLOBオブジェクトです。
    • PDFドキュメントから暗号化を削除するために使用されるパスワード値を指定するstring値です。 この値は、PDFドキュメントをパスワードで暗号化する場合に指定します。

    removePDFPasswordSecurityメソッドは、保護されていないPDFドキュメントを含むBLOBオブジェクトを返します。

  5. PDFドキュメントを保存します。

    • コンストラクターを呼び出し、保護されていないPDFドキュメントーのファイルの場所を表す文字列値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • removePDFPasswordSecurityメソッドから返されたBLOBオブジェクトの内容を格納するバイト配列を作成します。 BLOBオブジェクトのMTOMデータメンバの値を取得して、バイト配列を入力します。
    • コンストラクターを呼び出してSystem.IO.FileStreamオブジェクトを渡し、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことで、バイト配列の内容をPDFファイルに書き込みます。

関連トピック

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

暗号化されたPDFドキュメントのロックを解除

パスワードで暗号化または証明書で暗号化されたPDFドキュメントは、ロックを解除しないと、別のAEM Forms操作を実行できません。 暗号化されたPDFドキュメントに対して操作を実行しようとすると、例外が生成されます。 暗号化されたPDFドキュメントのロックを解除した後、暗号化されたPDF画像に対して1つ以上の操作を実行できます。 これらの操作は、Acrobat Reader DC拡張サービスなど、他のサービスに属することができます。

メモ

Encryptionサービスの詳細については、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

暗号化されたPDFドキュメントのロックを解除するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Encryptionサービスクライアントを作成します。
  3. 暗号化されたPDFドキュメントを取得します。
  4. ドキュメントのロックを解除します。
  5. AEM Forms操作を実行します。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めます。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(AEM FormsがJBoss Application Serverにデプロイされている場合に必要)
  • jbossall-client.jar(AEM FormsがJBoss Application Serverにデプロイされている場合に必要)

Encryptionサービスクライアントの作成

プログラムによってEncryptionサービスの操作を実行するには、Encryptionサービスクライアントを作成する必要があります。 Java Encryption Service APIを使用している場合は、EncrytionServiceClientオブジェクトを作成します。 WebサービスのEncryption Service APIを使用している場合は、EncryptionServiceServiceオブジェクトを作成します。

暗号化されたPDFドキュメントの取得

ロックを解除するには、暗号化されたPDFドキュメントを取得する必要があります。 暗号化されていないPDFドキュメントのロックを解除しようとすると、例外が発生します。

ドキュメントのロック解除

パスワードで暗号化されたPDFドキュメントのロックを解除するには、暗号化されたPDFドキュメントと、パスワードで暗号化されたPDFドキュメントを開くために使用するパスワード値の両方が必要です。 この値は、PDFドキュメントをパスワードで暗号化する場合に指定します。 (「パスワードによるPDFドキュメントの暗号化」を参照)。

証明書で暗号化されたPDFドキュメントのロックを解除するには、暗号化されたPDFドキュメントと、PDFドキュメントの暗号化に使用された秘密鍵に対応する公開鍵のエイリアス値の両方が必要です。

AEM Forms操作の実行

暗号化されたPDFドキュメントのロックが解除された後、その画像に対して別のサービス操作(使用権限の適用など)を実行できます。 この操作は、Acrobat Reader DC拡張サービスに属します。

関連トピック

Java APIを使用した暗号化されたPDFドキュメントのロック解除

WebサービスAPIを使用した暗号化されたPDFドキュメントのロック解除

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

EncryptionサービスAPIのクイック開始

Java APIを使用した暗号化されたPDFドキュメントのロック解除

暗号化API(Java)を使用して暗号化されたPDFドキュメントのロックを解除します。

  1. プロジェクトファイルを含めます。

    Javaプロジェクトのクラスパスに、adobe-encryption-client.jarなどのクライアントJARファイルを含めます。

  2. Encryptionサービスクライアントを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用し、EncryptionServiceClientオブジェクトを渡して、ServiceClientFactoryオブジェクトを作成します。
  3. 暗号化されたPDFドキュメントを取得します。

    • コンストラクターを使用し、暗号化されたPDFドキュメントの場所を指定するstring値を渡して、暗号化されたPDFドキュメントを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. ドキュメントのロックを解除します。

    EncryptionServiceClientオブジェクトのunlockPDFUsingPasswordメソッドまたはunlockPDFUsingCredentialメソッドを呼び出して、暗号化されたPDFドキュメントのロックを解除します。

    パスワードを使用して暗号化されたPDFドキュメントのロックを解除するには、unlockPDFUsingPasswordメソッドを呼び出し、次の値を渡します。

    • パスワードで暗号化されたPDFドキュメントを含むcom.adobe.idp.Documentオブジェクトです。
    • パスワードで暗号化されたPDFドキュメントを開くために使用されるパスワード値を指定するstring値です。 この値は、PDFドキュメントをパスワードで暗号化する場合に指定します。

    証明書で暗号化されたPDFドキュメントのロックを解除するには、unlockPDFUsingCredentialメソッドを呼び出し、次の値を渡します。

    • 証明書で暗号化されたPDFドキュメントが含まれるcom.adobe.idp.Documentオブジェクトです。
    • PDFドキュメントの暗号化に使用される秘密鍵に対応する公開鍵のエイリアス名を指定するstring値。

    unlockPDFUsingPasswordメソッドとunlockPDFUsingCredentialメソッドは共にcom.adobe.idp.Documentオブジェクトを返します。このオブジェクトは、別のAEM FormsJavaメソッドに渡して操作を実行します。

  5. AEM Forms操作を実行します。

    ロック解除されたPDFドキュメントに対して、ビジネス要件に合わせてAEM Forms操作を実行します。 例えば、ロック解除されたPDFドキュメントに使用権限を適用する場合、unlockPDFUsingPasswordメソッドまたはunlockPDFUsingCredentialメソッドから返されたcom.adobe.idp.DocumentオブジェクトをReaderExtensionsServiceClientオブジェクトのapplyUsageRightsメソッドに渡します。

関連トピック

手順の概要

クイック開始(SOAPモード):Java API (SOAPモード)を使用した暗号化されたPDFドキュメントのロック解除

PDFドキュメントへの使用権限の適用

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用して暗号化されたPDFドキュメントのロックを解除する

Encryption API(Webサービス)を使用して暗号化されたPDFドキュメントのロックを解除します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. Encryptionサービスクライアントを作成します。

    • EncryptionServiceClientオブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。

    • System.ServiceModel.EndpointAddressコンストラクターを使用してEncryptionServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/EncryptionService?WSDL)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する場合に使用されます)。

    • EncryptionServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値により、MTOMが使用されます。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • AEM formsユーザー名をフィールドEncryptionServiceClient.ClientCredentials.UserName.UserNameに割り当てます。
      • 対応するパスワード値をフィールドEncryptionServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • 定数値HttpClientCredentialType.BasicをフィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに割り当てます。
      • 定数値BasicHttpSecurityMode.TransportCredentialOnlyをフィールドBasicHttpBindingSecurity.Security.Modeに割り当てます。
  3. 暗号化されたPDFドキュメントを取得します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。
    • コンストラクターを呼び出し、暗号化されたPDFドキュメントーのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。
    • バイト配列の内容をBLOBオブジェクトのMTOMデータメンバーに割り当てて、BLOBオブジェクトを入力します。
  4. ドキュメントのロックを解除します。

    EncryptionServiceClientオブジェクトのunlockPDFUsingPasswordメソッドまたはunlockPDFUsingCredentialメソッドを呼び出して、暗号化されたPDFドキュメントのロックを解除します。

    パスワードを使用して暗号化されたPDFドキュメントのロックを解除するには、unlockPDFUsingPasswordメソッドを呼び出し、次の値を渡します。

    • パスワードで暗号化されたPDFドキュメントを含むBLOBオブジェクトです。
    • パスワードで暗号化されたPDFドキュメントを開くために使用されるパスワード値を指定するstring値です。 この値は、PDFドキュメントをパスワードで暗号化する場合に指定します。

    証明書で暗号化されたPDFドキュメントのロックを解除するには、unlockPDFUsingCredentialメソッドを呼び出し、次の値を渡します。

    • 証明書で暗号化されたPDFドキュメントが含まれるBLOBオブジェクトです。
    • PDfドキュメントの暗号化に使用される秘密鍵に対応する公開鍵のエイリアス名を指定するstring値。

    unlockPDFUsingPasswordメソッドとunlockPDFUsingCredentialメソッドは共に、別のAEM Formsメソッドに渡すcom.adobe.idp.Documentオブジェクトを返します。

  5. AEM Forms操作を実行します。

    ロック解除されたPDFドキュメントに対して、ビジネス要件に合わせてAEM Forms操作を実行します。 例えば、ロック解除されたPDFドキュメントに使用権限を適用する場合、unlockPDFUsingPasswordメソッドまたはunlockPDFUsingCredentialメソッドから返されたBLOBオブジェクトをReaderExtensionsServiceClientオブジェクトのapplyUsageRightsメソッドに渡します。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

暗号化タイプの決定

Java Encryption Service APIまたはWebサービスのEncryption Service APIを使用して、PDFドキュメントを保護する暗号化の種類をプログラムで判断できます。 PDFドキュメントが暗号化されているかどうか、および暗号化されている場合は暗号化の種類を動的に判断する必要がある場合があります。 例えば、PDFドキュメントをパスワードベースの暗号化またはRights Managementポリシーで保護するかどうかを指定できます。

PDFドキュメントは、次の暗号化タイプで保護できます。

  • パスワードベースの暗号化
  • 証明書ベースの暗号化
  • Rights Managementサービスによって作成されるポリシーです
  • 別の種類の暗号化
メモ

Encryptionサービスの詳細については、『AEM Formsのサービスリファレンス』を参照してください。

手順の概要

PDFドキュメントを保護する暗号化の種類を決定するには、次の手順を実行します。

  1. プロジェクトファイルを含めます。
  2. Encryptionサービスクライアントを作成します。
  3. 暗号化されたPDFドキュメントを取得します。
  4. 暗号化タイプを決定します。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用している場合は、プロキシファイルを必ず含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-encryption-client.jar
  • adobe-utilities.jar(AEM FormsがJBoss Application Serverにデプロイされている場合に必要)
  • jbossall-client.jar(AEM FormsがJBoss Application Serverにデプロイされている場合に必要)

サービスクライアントの作成

プログラムによってEncryptionサービスの操作を実行するには、Encryptionサービスクライアントを作成する必要があります。 Java Encryption Service APIを使用している場合は、EncrytionServiceClientオブジェクトを作成します。 WebサービスのEncryption Service APIを使用している場合は、EncryptionServiceServiceオブジェクトを作成します。

暗号化されたPDFドキュメントの取得

PDFドキュメントを取得して、保護する暗号化の種類を判断する必要があります。

暗号化タイプの決定

PDFドキュメントを保護する暗号化の種類を指定できます。 PDFドキュメントが保護されていない場合は、PDFドキュメントが保護されていないことを通知するEncryptionサービスが提供されます。

関連トピック

Java APIを使用した暗号化タイプの決定

WebサービスAPIを使用した暗号化の種類の決定

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

EncryptionサービスAPIのクイック開始

ポリシーによるドキュメントの保護

Java APIを使用して暗号化タイプを決定する

Encryption API(Java)を使用して、PDFドキュメントを保護する暗号化の種類を決定します。

  1. プロジェクトファイルを含めます。

    Javaプロジェクトのクラスパスに、adobe-encryption-client.jarなどのクライアントJARファイルを含めます。

  2. サービスクライアントを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用し、EncryptionServiceClientオブジェクトを渡して、ServiceClientFactoryオブジェクトを作成します。
  3. 暗号化されたPDFドキュメントを取得します。

    • コンストラクターを使用し、PDFドキュメントの場所を指定するstring値を渡して、PDFドキュメントを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. 暗号化タイプを決定します。

    • EncryptionServiceClientオブジェクトのgetPDFEncryptionメソッドを呼び出し、PDFドキュメントを含むcom.adobe.idp.Documentオブジェクトを渡して、暗号化の種類を決定します。 このメソッドは、EncryptionTypeResultオブジェクトを返します。
    • EncryptionTypeResultオブジェクトのgetEncryptionTypeメソッドを呼び出します。 このメソッドは、暗号化の種類を指定するEncryptionType列挙値を返します。 例えば、PDFドキュメントがパスワードベースの暗号化で保護されている場合、EncryptionType.PASSWORDを返します。

関連トピック

手順の概要

クイック開始(SOAPモード):Java APIを使用した暗号化タイプの決定

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用して暗号化の種類を決定する

Encryption API(Webサービス)を使用して、PDFドキュメントを保護する暗号化の種類を決定します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/EncryptionService?WSDL&lc_version=9.0.1.

    メモ

    localhostを、AEM FormsをホストするサーバーのIPアドレスに置き換えます。

  2. サービスクライアントを作成します。

    • EncryptionServiceClientオブジェクトを作成するには、そのデフォルトのコンストラクタを使用します。

    • System.ServiceModel.EndpointAddressコンストラクターを使用してEncryptionServiceClient.Endpoint.Addressオブジェクトを作成します。 WSDLをAEM Formsサービスに指定するstring値を渡します(例:http://localhost:8080/soap/services/EncryptionService?WSDL)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する場合に使用されます)。

    • EncryptionServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値により、MTOMが使用されます。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • AEM formsユーザー名をフィールドEncryptionServiceClient.ClientCredentials.UserName.UserNameに割り当てます。
      • 対応するパスワード値をフィールドEncryptionServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • 定数値HttpClientCredentialType.BasicをフィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに割り当てます。
      • 定数値BasicHttpSecurityMode.TransportCredentialOnlyをフィールドBasicHttpBindingSecurity.Security.Modeに割り当てます。
  3. 暗号化されたPDFドキュメントを取得します。

    • コンストラクタを使用して BLOB オブジェクトを作成します。
    • コンストラクターを呼び出し、暗号化されたPDFドキュメントーのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得して、バイト配列のサイズを決定できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことで、バイト配列にストリームデータを入力します。
    • バイト配列の内容をBLOBオブジェクトのMTOMデータメンバーに割り当てて、BLOBオブジェクトを入力します。
  4. 暗号化タイプを決定します。

    • EncryptionServiceClientオブジェクトのgetPDFEncryptionメソッドを呼び出し、PDFドキュメントを含むBLOBオブジェクトを渡します。 このメソッドは、EncryptionTypeResultオブジェクトを返します。
    • EncryptionTypeResultオブジェクトのencryptionTypeデータメソッドの値を取得します。 例えば、PDFドキュメントがパスワードベースの暗号化で保護されている場合、このデータメンバーの値はEncryptionType.PASSWORDです。

関連トピック

手順の概要

MTOMを使用したAEM Formsの呼び出し

SwaRefを使用したAEM Formsの呼び出し

このページ

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now