374장. XML 보안 구성 요소


Camel 버전 2.12에서 사용 가능

이 Apache Camel 구성 요소를 사용하면 W3C 표준 XML 서명 구문 및 처리 또는 후속 버전 1.1 에 설명된 대로 XML 서명을 생성하고 검증할 수 있습니다. XML 암호화 지원의 경우 XML 보안 데이터 형식을 참조하십시오.

여기에서 XML 서명에 대한 소개를 찾을 수 있습니다. 구성 요소의 구현은 W3C 표준에 해당하는 Java API인 Cryostat 105 를 기반으로 하며, Apache Santuario 및 Cryostat 105에 대한 JDK 공급자를 지원합니다. 구현은 먼저 Apache Santuario 공급자를 사용하려고 합니다. Santuario 공급자를 찾지 못하면 JDK 공급자를 사용합니다. 또한 이 구현은 Cryostat 기반입니다.

Camel 2.15.0 이후 서명자 엔드 포인트의 XAdES-BES/EPES 에 대한 지원도 제공합니다. "XAdES-BES/EPES for the Signer Endpoint"를 참조하십시오.

Maven 사용자는 이 구성 요소에 대해 pom.xml 에 다음 종속성을 추가해야 합니다.

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-xmlsecurity</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

374.1. XML 서명 분석 모드

XML 서명은 XML 서명, 실행 취소 및 분리된 XML 서명과는 다릅니다. XML 서명 사례에서 XML 서명은 서명된 XML 문서에 의해 래핑됩니다. 즉, XML 서명 요소는 서명된 XML 문서에 속하는 부모 요소의 자식 요소임을 의미합니다. http://www.w3.org/TR/xmldsig-core1/#def-SignatureEnveloped enveloping XML 서명 사례에서 XML 서명에는 서명된 콘텐츠가 포함되어 있습니다. 다른 모든 경우는 분리된 XML 서명이라고 합니다. 2.14.0 이후 특정 형태의 분리된 XML 서명이 지원됩니다.

XML 서명 사례에서 지원되는 지원되는 XML 서명에 는 다음과 같은 구조가 있습니다(변수는 []로 묶입니다).

<[parent element]>
   ... <!-- Signature element is added as last child of the parent element-->
   <Signature Id="generated_unique_signature_id">
       <SignedInfo>
             <Reference URI="">
                   <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                   (<Transform>)* <!-- By default "http://www.w3.org/2006/12/xml-c14n11" is added to the transforms -->
                   <DigestMethod>
                   <DigestValue>
             </Reference>
             (<Reference URI="#[keyinfo_Id]">
                   <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
                   <DigestMethod>
                   <DigestValue>
             </Reference>)?
             <!-- further references possible, see option 'properties' below -->
      </SignedInfo>
      <SignatureValue>
      (<KeyInfo Id="[keyinfo_id]">)?
      <!-- Object elements possible, see option 'properties' below -->
  </Signature>
</[parent element]>

enveloping XML 서명 사례에서 지원되는 XML 서명에는 다음과 같은 구조가 있습니다.

<Signature Id="generated_unique_signature_id">
  <SignedInfo>
         <Reference URI="#generated_unique_object_id" type="[optional_type_value]">
               (<Transform>)* <!-- By default "http://www.w3.org/2006/12/xml-c14n11" is added to the transforms -->
               <DigestMethod>
               <DigestValue>
         </Reference>
         (<Reference URI="#[keyinfo_id]">
               <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
               <DigestMethod>
               <DigestValue>
         </Reference>)?
          <!-- further references possible, see option 'properties' below  -->
  </SignedInfo>
  <SignatureValue>
  (<KeyInfo Id="[keyinfo_id]">)?
  <Object Id="generated_unique_object_id"/> <!-- The Object element contains the in-message body; the object ID can either be generated or set by the option parameter "contentObjectId" -->
  <!-- Further Object elements possible, see option 'properties' below -->
</Signature>

다음 구조를 사용한 2.14.0 분리된 XML 서명이 지원됩니다(서블로그 XML 서명으로 하위 칩 XML 서명 참조).

(<[signed element] Id="[id_value]">
<!-- signed element must have an attribute of type ID -->
      ...

</[signed element]>
<other sibling/>*
<!-- between the signed element and the corresponding signature element, there can be other siblings.
 Signature element is added as last sibling. -->
<Signature Id="generated_unique_ID">
   <SignedInfo>
      <CanonicalizationMethod>
      <SignatureMethod>
      <Reference URI="#[id_value]" type="[optional_type_value]">
      <!-- reference URI contains the ID attribute value of the signed element -->
            (<Transform>)* <!-- By default "http://www.w3.org/2006/12/xml-c14n11" is added to the transforms -->
            <DigestMethod>
            <DigestValue>
      </Reference>
      (<Reference URI="#[generated_keyinfo_Id]">
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
            <DigestMethod>
            <DigestValue>
      </Reference>)?
   </SignedInfo>
   <SignatureValue>
   (<KeyInfo Id="[generated_keyinfo_id]">)?
</Signature>)+
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.