검색

5.2. 정책 표현식

download PDF

5.2.1. 개요

일반적으로 wsp:Policy 요소는 여러 다른 정책 설정으로 구성됩니다. 개별 정책 설정은 정책 어설션으로 지정됩니다. 따라서 wsp:Policy 요소에 의해 정의된 정책은 실제로 복합 오브젝트입니다. wsp:Policy 요소의 내용은 정책 표현식 이라고 하며, 여기서 정책 표현식은 기본 정책 어설션의 다양한 논리적 조합으로 구성됩니다. 정책 표현식의 구문을 조정하면 전체적으로 정책을 충족하기 위해 런타임 시 충족해야 하는 정책 어설션의 조합을 결정할 수 있습니다.

이 섹션에서는 정책 표현식의 구문 및 의미 체계에 대해 자세히 설명합니다.

5.2.2. 정책 어설션

정책 주장은 정책을 생성하기 위해 다양한 방법으로 결합할 수 있는 기본 빌딩 블록입니다. 정책 어설션에는 두 가지 주요 특성이 있습니다. 즉, 정책 제목에 기본 기능 단위를 추가하고 런타임 시 평가할 부울 어설션을 나타냅니다. 예를 들어 WS-Security 사용자 이름 토큰이 요청 메시지와 함께 전파되어야 하는 다음 정책 어설션을 고려하십시오.

<sp:SupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
  <wsp:Policy>
    <sp:UsernameToken/>
  </wsp:Policy>
</sp:SupportingTokens>

엔드 포인트 정책 주체와 관련된 경우 이 정책 어설션은 다음과 같은 영향을 미칩니다.

  • 웹 서비스 엔드포인트는 UsernameToken 자격 증명을 마샬링/마이클합니다.
  • 런타임에 정책 어설션은 true 를 반환합니다. UsernameToken 자격 증명이 클라이언트 측에 제공되거나 들어오는 메시지(서버의 경우)에서 수신되는 경우 정책 어설션이 false 를 반환합니다.

정책 어설션에서 false 를 반환하는 경우 오류가 반드시 발생하지는 않습니다. 특정 정책 주장의 순 영향은 정책에 어떻게 삽입되는지와 다른 정책 주장과 어떻게 결합되는지에 따라 달라집니다.

5.2.3. 정책 대안

정책 어설션은 wsp:Optional 특성과 wsp:Allwsp:ExactlyOne 요소의 다양한 중첩된 조합을 사용하여 추가로 인증할 수 있는 정책 어설션을 사용하여 구축됩니다. 이러한 요소 구성의 순 영향은 허용 가능한 정책 대안 의 범위를 생성하는 것입니다. 이러한 허용 가능한 정책 대안 중 하나가 충족되는 한 전체 정책도 충족됩니다( true로 평가됨).

5.2.4. WSP: 모든 요소

정책 어설션 목록이 wsp:All 요소로 래핑되면 목록의 모든 정책 어설션이 true 로 평가되어야 합니다. 예를 들어 인증 및 권한 부여 정책 어설션의 다음과 같은 조합을 고려하십시오.

<wsp:Policy wsu:Id="AuthenticateAndAuthorizeWSSUsernameTokenPolicy">
  <wsp:All>
    <sp:SupportingTokens>
      <wsp:Policy>
        <sp:UsernameToken/>
      </wsp:Policy>
    </sp:SupportingTokens>
    <sp:SupportingTokens>
      <wsp:Policy>
        <sp:SamlToken/>
      </wsp:Policy>
    </sp:SupportingTokens>
  </wsp:All>
</wsp:Policy>

다음 조건이 모두 적용되는 경우 이전 정책은 특정 들어오는 요청에 대해 충족됩니다.

  • WS-Security UsernameToken 인증 정보가 있어야 하며
  • SAML 토큰이 있어야 합니다.
참고

wsp:Policy 요소는 wsp:All 과 의미적으로 동일합니다. 따라서 이전 예제에서 wsp:All 요소를 제거한 경우 의미 체계적으로 동일한 예제를 얻을 수 있습니다.

5.2.5. WSP:ExactlyOne 요소

정책 어설션 목록이 wsp:ExactlyOne 요소로 래핑되면 목록에 있는 정책 어설션 중 하나 이상이 true 로 평가되어야 합니다. 런타임은 실제 를 반환하는 정책 어설션을 찾을 때까지 정책 어설션을 평가하는 목록을 진행합니다. 이 시점에서 wsp:ExactlyOne 표현식이 충족되고( true를 반환) 목록의 나머지 정책 어설션은 평가되지 않습니다. 예를 들어 인증 정책 어설션의 다음과 같은 조합을 고려하십시오.

<wsp:Policy wsu:Id="AuthenticateUsernamePasswordPolicy">
  <wsp:ExactlyOne>
    <sp:SupportingTokens>
      <wsp:Policy>
        <sp:UsernameToken/>
      </wsp:Policy>
    </sp:SupportingTokens>
    <sp:SupportingTokens>
      <wsp:Policy>
        <sp:SamlToken/>
      </wsp:Policy>
    </sp:SupportingTokens>
  </wsp:ExactlyOne>
</wsp:Policy>

다음 조건 하나에 해당하는 경우 이전 정책은 특정 들어오는 요청에 대해 충족됩니다.

  • WS-Security UsernameToken 인증 정보가 있습니다.
  • SAML 토큰이 있습니다.

특히 두 인증 정보 유형이 모두 존재하는 경우 어설션 중 하나를 평가한 후 정책이 충족되지만 정책 주장 중 어떤 것이 실제로 평가되는지에 대한 보장은 제공되지 않습니다.

5.2.6. 빈 정책

특별한 경우는 빈 정책 이며 그 예는 예 5.1. “빈 정책” 에 표시되어 있습니다.

예 5.1. 빈 정책

<wsp:Policy ... >
   <wsp:ExactlyOne>
      <wsp:All/>
   </wsp:ExactlyOne>
</wsp:Policy>

비어 있는 정책 대안인 < wsp:All/ >는 정책 어설션을 충족할 필요가 없는 대안을 나타냅니다. 즉, 항상 true 를 반환합니다. & lt;wsp:All/ >를 대안으로 사용할 수 있는 경우 정책 주장이 true 가 없는 경우에도 전체 정책을 만족시킬 수 있습니다.

5.2.7. null 정책

특수한 경우는 null 정책 이며 그 예는 예 5.2. “Null 정책” 에 표시되어 있습니다.

예 5.2. Null 정책

<wsp:Policy ... >
   <wsp:ExactlyOne/>
</wsp:Policy>

null 정책 대체인 &lt ;wsp:ExactlyOne/ > 가 충족되지 않는 대안을 나타냅니다. 즉, 항상 false 를 반환합니다.

5.2.8. 일반 양식

실제로 < wsp:All > 및 < wsp:ExactlyOne > 요소를 중첩하면 정책 대안이 작동하기 어려울 수 있는 상당히 복잡한 정책 표현식을 생성할 수 있습니다. 정책 표현식을 쉽게 비교할 수 있도록 WS-Policy 사양은 정책 표현식에 대한 표준 또는 일반 형식을 정의하므로 정책 대안 목록을 모호하게 읽을 수 있습니다. 유효한 모든 정책 표현식을 일반 형식으로 줄일 수 있습니다.

일반적으로 일반 양식 정책 표현식은 예 5.3. “일반 양식 구문” 에 표시된 구문을 준수합니다.

예 5.3. 일반 양식 구문

<wsp:Policy ... >
   <wsp:ExactlyOne>
        <wsp:All> <Assertion .../> ... <Assertion .../> </wsp:All>
        <wsp:All> <Assertion .../> ... <Assertion .../> </wsp:All>
        ...
   </wsp:ExactlyOne>
</wsp:Policy>

각 양식의 < wsp:All>…​</wsp:All > 에서는 유효한 정책 대안을 나타냅니다. 이러한 정책 대안 중 하나가 충족되면 전체적으로 정책이 충족됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.