7.2. 인증 정책 지정
7.2.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
끝점에서 인증을 지원하려면 지원 토큰 정책 어설션 을 관련 끝점 바인딩과 연결합니다. 여러 종류의 지원 토큰 정책 어설션이 있으며, 여기에는 모두 *지원Tokens (예: SupportingTokens
,Signed
등) 형식의 이름이 있습니다. 전체 목록은 “SupportingTokens 어설션” 에서 참조하십시오.
SupportingTokens
지원 토큰 어설션을 끝점과 연결하면 다음과 같은 효과가 있습니다.
-
엔드포인트에서 또는 끝점에 대한 메시지는 지정된 토큰 유형을 포함해야 합니다(여기서 토큰의 방향이
sp:IncludeToken
특성에 의해 지정됨). - 사용하는 특정 유형의 지원 토큰 요소에 따라 토큰에 서명 및/또는 암호화해야 할 수 있습니다.
지원 토큰 어설션은 런타임에서 이러한 요구 사항이 충족되는지 확인하는 것을 의미합니다. 그러나 WS-SecurityPolicy 정책은 런타임에 자격 증명을 제공하는 메커니즘을 정의하지 않습니다. 블루프린트 XML 구성을 사용하여 인증 정보를 지정해야 합니다( 7.3절. “클라이언트 인증 정보 제공”참조).
7.2.2. 구문 링크 복사링크가 클립보드에 복사되었습니다!
*지원Tokens
요소(즉, SupportingTokens
접미사가 있는 모든 요소)에는 다음과 같은 구문이 있습니다. “SupportingTokens 어설션”
여기서 SupportingTokens Cryostat는 지원 토큰 요소 *지원Tokens
. typically, 보안 헤더에 토큰 (또는 토큰)을 포함하려는 경우 하나 이상의 토큰 어설션, [토큰 지원]
을 정책에 포함합니다. 특히 인증에 필요한 모든 것입니다.
토큰이 적절한 유형인 경우(예: X.509 인증서 또는 대칭 키) 이론적으로 sp:AlgorithmSuite
,sp:SignedParts
, sp:Signed Cryostats , sp:Encrypted Cryostats ,
할 수 있습니다. 그러나 이 기능은 현재 Apache CXF에서 지원되지 않습니다.
sp:Encrypted#159
하거나 암호화s 요소를 사용하여 현재 메시지의
특정 부분을 서명
7.2.3. 정책 샘플 링크 복사링크가 클립보드에 복사되었습니다!
예 7.1. “지원 토큰 정책 예” 보안 헤더에 포함될 WS-Security UsernameToken 토큰(사용자 이름/암호 자격 증명 포함)이 필요한 정책의 예를 보여줍니다. 또한 토큰이 sp:SignedSupportingTokens
요소 내에 지정되기 때문에 정책에 따라 토큰에 서명해야 합니다. 이 예에서는 전송 바인딩을 사용하므로 메시지에 서명해야 하는 기본 전송입니다.
예를 들어 기본 전송이 HTTPS인 경우 적절한 알고리즘 모음으로 구성된 SSL/TLS 프로토콜에서 지정된 토큰이 포함된 보안 헤더를 포함하여 전체 메시지에 서명해야 합니다. 이는 지원 토큰이 서명되는 요구 사항을 충족하기에 충분합니다.
예 7.1. 지원 토큰 정책 예
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
속성입니다.
현재 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 값은 다음과 같습니다.
- 한 번
토큰은 개시자에서 수신자로 전송된 하나의 메시지에만 포함되어야 합니다. 토큰에 대한 참조는 내부 참조 메커니즘을 사용할 수 있습니다. 수신자와 이니시에이터 간에 전송된 후속 관련 메시지는 외부 참조 메커니즘을 사용하여 토큰을 참조할 수 있습니다. 유효한 URI 값은 다음과 같습니다.
- AlwaysToRecipient
토큰은 이니시에이터에서 수신자로 전송된 모든 메시지에 포함되어야 합니다. 토큰은 수신자에서 이니시에이터로 전송된 메시지에 포함되지 않아야 합니다. 유효한 URI 값은 다음과 같습니다.
- AlwaysToInitiator
토큰은 수신자에서 이니시에이터로 전송된 모든 메시지에 포함되어야 합니다. 토큰은 개시자에서 수신자로 전송된 메시지에 포함되지 않아야 합니다. 유효한 URI 값은 다음과 같습니다.
- Always
토큰은 개시자와 수신자 간에 전송된 모든 메시지에 포함되어야 합니다. 이는 기본 동작입니다. 유효한 URI 값은 다음과 같습니다.
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 링크 복사링크가 클립보드에 복사되었습니다!
이 정책은 토큰 무결성과 기밀성을 보장하기 위해 토큰 서명 및 암호화가 필요하다는 점을 제외하고 토큰 지원 정책 승인과 동일합니다.