7.2. 인증 정책 지정


7.2.1. 개요

끝점에서 인증을 지원하려면 지원 토큰 정책 어설션 을 관련 끝점 바인딩과 연결합니다. 여러 종류의 지원 토큰 정책 어설션이 있으며, 여기에는 모두 *지원Tokens (예: SupportingTokens,Signed SupportingTokens 등) 형식의 이름이 있습니다. 전체 목록은 “SupportingTokens 어설션” 에서 참조하십시오.

지원 토큰 어설션을 끝점과 연결하면 다음과 같은 효과가 있습니다.

  • 엔드포인트에서 또는 끝점에 대한 메시지는 지정된 토큰 유형을 포함해야 합니다(여기서 토큰의 방향이 sp:IncludeToken 특성에 의해 지정됨).
  • 사용하는 특정 유형의 지원 토큰 요소에 따라 토큰에 서명 및/또는 암호화해야 할 수 있습니다.

지원 토큰 어설션은 런타임에서 이러한 요구 사항이 충족되는지 확인하는 것을 의미합니다. 그러나 WS-SecurityPolicy 정책은 런타임에 자격 증명을 제공하는 메커니즘을 정의하지 않습니다. 블루프린트 XML 구성을 사용하여 인증 정보를 지정해야 합니다( 7.3절. “클라이언트 인증 정보 제공”참조).

7.2.2. 구문

*지원Tokens 요소(즉, SupportingTokens 접미사가 있는 모든 요소)에는 다음과 같은 구문이 있습니다. “SupportingTokens 어설션”

<sp:SupportingTokensElement xmlns:sp="..." ... >
  <wsp:Policy xmlns:wsp="...">
    [Token Assertion]+
    <sp:AlgorithmSuite ... > ... </sp:AlgorithmSuite> ?
    (
      <sp:SignedParts ... > ... </sp:SignedParts> |
      <sp:SignedElements ... > ... </sp:SignedElements> |
      <sp:EncryptedParts ... > ... </sp:EncryptedParts> |
      <sp:EncryptedElements ... > ... </sp:EncryptedElements> |
    ) *
    ...
  </wsp:Policy>
  ...
</sp:SupportingTokensElement>

여기서 SupportingTokens Cryostat는 지원 토큰 요소 *지원Tokens. typically, 보안 헤더에 토큰 (또는 토큰)을 포함하려는 경우 하나 이상의 토큰 어설션, [토큰 지원] 을 정책에 포함합니다. 특히 인증에 필요한 모든 것입니다.

토큰이 적절한 유형인 경우(예: X.509 인증서 또는 대칭 키) 이론적으로 sp:AlgorithmSuite,sp:SignedParts, sp:Signed Cryostats , sp:Encrypted Cryostats ,sp:Encrypted#159 s 요소를 사용하여 현재 메시지의 특정 부분을 서명 하거나 암호화 할 수 있습니다. 그러나 이 기능은 현재 Apache CXF에서 지원되지 않습니다.

7.2.3. 정책 샘플

예 7.1. “지원 토큰 정책 예” 보안 헤더에 포함될 WS-Security UsernameToken 토큰(사용자 이름/암호 자격 증명 포함)이 필요한 정책의 예를 보여줍니다. 또한 토큰이 sp:SignedSupportingTokens 요소 내에 지정되기 때문에 정책에 따라 토큰에 서명해야 합니다. 이 예에서는 전송 바인딩을 사용하므로 메시지에 서명해야 하는 기본 전송입니다.

예를 들어 기본 전송이 HTTPS인 경우 적절한 알고리즘 모음으로 구성된 SSL/TLS 프로토콜에서 지정된 토큰이 포함된 보안 헤더를 포함하여 전체 메시지에 서명해야 합니다. 이는 지원 토큰이 서명되는 요구 사항을 충족하기에 충분합니다.

예 7.1. 지원 토큰 정책 예

<wsp:Policy wsu:Id="UserNameOverTransport_IPingService_policy">
  <wsp:ExactlyOne>
    <wsp:All>
      <sp:TransportBinding> ... </sp:TransportBinding>
      <sp:SignedSupportingTokens
          xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
        <wsp:Policy>
          <sp:UsernameToken
              sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
            <wsp:Policy>
              <sp:WssUsernameToken10/>
            </wsp:Policy>
          </sp:UsernameToken>
        </wsp:Policy>
      </sp:SignedSupportingTokens>
      ...
    </wsp:All>
  </wsp:ExactlyOne>
</wsp:Policy>

sp:WssUsernameToken10 하위 요소가 있으면 UsernameToken 헤더가 WS-Security UsernameToken 사양의 버전 1.0을 준수해야 함을 나타냅니다.

7.2.4. 토큰 유형

기본적으로 지원 토큰 어설션에서 WS-SecurityPolicy 토큰 유형을 지정할 수 있습니다. 그러나 Cryostat 수준 인증의 경우 sp:UsernameToken 토큰 유형만 관련이 있습니다.

7.2.5. sp:UsernameToken

지원 토큰 어설션의 컨텍스트에서 이 요소는 WS-Security UsernameToken이 보안 Cryostat 헤더에 포함되도록 지정합니다. 기본적으로 WS-Security UsernameToken은 WS-Security Cryostat 헤더에서 사용자 이름/암호 자격 증명을 보내는 데 사용됩니다. sp:UsernameToken 요소에는 다음과 같은 구문이 있습니다.

<sp:UsernameToken sp:IncludeToken="xs:anyURI"? xmlns:sp="..." ... >
  (
    <sp:Issuer>wsa:EndpointReferenceType</sp:Issuer> |
    <sp:IssuerName>xs:anyURI</sp:IssuerName>
  ) ?
  <wst:Claims Dialect="..."> ... </wst:Claims> ?
  <wsp:Policy xmlns:wsp="...">
    (
      <sp:NoPassword ... /> |
      <sp:HashPassword ... />
    ) ?
    (
      <sp:RequireDerivedKeys /> |
      <sp:RequireImpliedDerivedKeys ... /> |
      <sp:RequireExplicitDerivedKeys ... />
    ) ?
    (
      <sp:WssUsernameToken10 ... /> |
      <sp:WssUsernameToken11 ... />
    ) ?
    ...
  </wsp:Policy>
  ...
</sp:UsernameToken>

sp:UsernameToken 의 하위 요소는 모두 선택 사항이며 일반 인증에 필요하지 않습니다. 일반적으로 이 구문의 유일한 부분은 sp:IncludeToken 속성입니다.

참고

현재 sp:UsernameToken 구문에서는 sp:WsssUsernameToken10 하위 요소만 Apache CXF에서 지원됩니다.

7.2.6. SP:IncludeToken 특성

sp:IncludeToken 의 값은 enclosing 정책의 WS-SecurityPolicy 버전과 일치해야 합니다. 현재 버전은 1.2이지만 레거시 WSDL은 버전 1.1을 사용할 수 있습니다. sp:IncludeToken 속성의 유효한 값은 다음과 같습니다.

Never

토큰은 개시자와 수신자 간에 전송된 메시지에 포함되지 않아야 합니다. 대신 토큰에 대한 외부 참조를 사용해야 합니다. 유효한 URI 값은 다음과 같습니다.

1.2

http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never

1.1

http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never

한 번

토큰은 개시자에서 수신자로 전송된 하나의 메시지에만 포함되어야 합니다. 토큰에 대한 참조는 내부 참조 메커니즘을 사용할 수 있습니다. 수신자와 이니시에이터 간에 전송된 후속 관련 메시지는 외부 참조 메커니즘을 사용하여 토큰을 참조할 수 있습니다. 유효한 URI 값은 다음과 같습니다.

1.2

http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Once

1.1

http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Once

AlwaysToRecipient

토큰은 이니시에이터에서 수신자로 전송된 모든 메시지에 포함되어야 합니다. 토큰은 수신자에서 이니시에이터로 전송된 메시지에 포함되지 않아야 합니다. 유효한 URI 값은 다음과 같습니다.

1.2

http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient

1.1

http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient

AlwaysToInitiator

토큰은 수신자에서 이니시에이터로 전송된 모든 메시지에 포함되어야 합니다. 토큰은 개시자에서 수신자로 전송된 메시지에 포함되지 않아야 합니다. 유효한 URI 값은 다음과 같습니다.

1.2

http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToInitiator

1.1

http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToInitiator

Always

토큰은 개시자와 수신자 간에 전송된 모든 메시지에 포함되어야 합니다. 이는 기본 동작입니다. 유효한 URI 값은 다음과 같습니다.

1.2

http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Always

1.1

http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Always

7.2.7. SupportingTokens 어설션

다음과 같은 종류의 지원 토큰 어설션이 지원됩니다.

7.2.8. sp:SupportingTokens

이 요소는 지정된 유형의 토큰(또는 토큰)을 wsse:Security 헤더에 포함해야 합니다. 추가 요구 사항은 적용되지 않습니다.

주의

이 정책은 토큰의 서명 또는 암호화가 명시적으로 필요하지 않습니다. 그러나 일반적으로 서명 및 암호화를 통해 토큰을 보호하는 것이 중요합니다.

7.2.9. sp:SignedSupportingTokens

이 요소는 지정된 유형의 토큰(또는 토큰)을 wsse:Security 헤더에 포함해야 합니다. 또한 이 정책을 사용하려면 토큰 무결성을 보장하기 위해 토큰에 서명해야 합니다.

주의

이 정책은 토큰을 명시적으로 암호화할 필요가 없습니다. 그러나 일반적으로 서명 및 암호화를 통해 토큰을 보호하는 것이 중요합니다.

7.2.10. sp:EncryptedSupportingTokens

이 요소는 지정된 유형의 토큰(또는 토큰)을 wsse:Security 헤더에 포함해야 합니다. 또한 이 정책은 토큰 기밀성을 보장하기 위해 토큰을 암호화해야 합니다.

주의

이 정책에는 토큰에 서명할 필요가 명시적으로 필요하지 않습니다. 그러나 일반적으로 서명 및 암호화를 통해 토큰을 보호하는 것이 중요합니다.

7.2.11. sp:SignedEncryptedSupportingTokens

이 요소는 지정된 유형의 토큰(또는 토큰)을 wsse:Security 헤더에 포함해야 합니다. 또한 이 정책은 토큰 무결성과 기밀성을 보장하기 위해 토큰을 서명하고 암호화해야 합니다.

7.2.12. sp:EndorsingSupportingTokens

토큰 지원 승인은 메시지 서명에 서명하는 데 사용됩니다(기본 서명). 이 서명을 종료 서명 또는 보조 서명 이라고 합니다. 따라서 지원 토큰 정책을 적용하면 메시지 자체에 서명하는 기본 서명과 기본 서명에 서명하는 보조 서명이라는 서명 체인이 있을 수 있습니다.

참고

전송 바인딩(예: HTTPS)을 사용하는 경우 메시지 서명은 실제로 Cryostat 메시지의 일부가 아니므로 이 경우 메시지 서명에 서명할 수 없습니다. 전송 바인딩을 사용하여 이 정책을 지정하면 종료 토큰은 대신 타임스탬프에 서명합니다.

주의

이 정책은 토큰의 서명 또는 암호화가 명시적으로 필요하지 않습니다. 그러나 일반적으로 서명 및 암호화를 통해 토큰을 보호하는 것이 중요합니다.

7.2.13. sp:SignedEndorsingSupportingTokens

이 정책은 토큰 무결성을 보장하기 위해 토큰에 서명해야 한다는 점을 제외하고 토큰을 지원하는 승인 정책과 동일합니다.

주의

이 정책은 토큰을 명시적으로 암호화할 필요가 없습니다. 그러나 일반적으로 서명 및 암호화를 통해 토큰을 보호하는 것이 중요합니다.

7.2.14. sp:EndorsingEncryptedSupportingTokens

이 정책은 토큰 기밀성을 보장하기 위해 토큰을 암호화해야 한다는 점을 제외하고 토큰을 지원하는 승인 정책과 동일합니다.

주의

이 정책에는 토큰에 서명할 필요가 명시적으로 필요하지 않습니다. 그러나 일반적으로 서명 및 암호화를 통해 토큰을 보호하는 것이 중요합니다.

7.2.15. sp:SignedEndorsingEncryptedSupportingTokens

이 정책은 토큰 무결성과 기밀성을 보장하기 위해 토큰 서명 및 암호화가 필요하다는 점을 제외하고 토큰 지원 정책 승인과 동일합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.