UsernameToken을 암호화하도록 정책 세트 및 바인딩 구성

이 예제에서는 JAX-WS 요청에서 사용자 이름 토큰을 전송하고 비대칭 암호화를 사용해 사용자 이름 토큰을 암호화하도록 메시지 레벨 WS-Security 정책 세트 및 바인딩을 구성하는 방법을 보여줍니다.

시작하기 전에

사용자 이름 WS-Security 기본 정책 세트의 사본을 작성하고 고유 이름을 지정합니다. 이 예제에서는 기본 정책 세트의 사본을 수정하는 방법을 보여줍니다. 자세한 정보는 기본 정책 세트 및 바인딩 설정 복사를 참조하십시오.

이 태스크 정보

기본적으로 사용자 이름 WS-Security 정책 세트는 요청과 응답에서 WS-Addressing 헤더 및 본문에 서명하고 요청과 응답에서 본문 및 서명을 암호화합니다. 그러나 이 예제에서의 목표는 클라이언트에서 서비스로 보낸 요청에서 사용자 이름 토큰만 암호화하고 서비스에서 클라이언트로 보낸 응답의 파트는 암호화하지 않는 것입니다. 또한 요청이나 응답의 파트에 서명하지 않습니다. 따라서 여러 메시지 보호 파트를 제거하도록 정책 세트도 수정해야 합니다. 또한 클라이언트 및 서버 바인딩도 구성해야 합니다.

먼저 사용자 이름 WS-Security 기본 정책 세트의 사본을 수정하여 정책 세트를 구성하십시오.

프로시저

  1. 관리 콘솔에서 서비스 > 정책 세트 > 애플리케이션 정책 세트 > policy_set_name을 클릭하십시오. 정책 세트 설정 패널에서 설명과 같은 정책 세트에 대한 정보를 지정할 수 있습니다.
  2. request:app_signparts, response:app_signparts, response:app_encparts와 같은 메시지 보호 파트를 제거하십시오.
    1. 애플리케이션 정책 세트> policy_set_name > WS-Security > 기본 정책 > 응답 메시지 파트 보호를 클릭하십시오.
    2. 암호화된 파트 상자에서 app_encparts를 클릭하고 삭제 단추를 클릭하십시오.
    3. 서명된 파트 상자에서 app_signparts를 클릭하고 삭제 단추를 클릭하십시오.
    4. 애플리케이션 정책 세트> policy_set_name > WS-Security > 기본 정책 > 요청 메시지 파트 보호를 클릭하십시오.
    5. 서명된 파트 상자에서 app_signparts를 클릭하고 삭제 단추를 클릭하십시오.
  3. request:app_encparts에 대해 지정된 보호 파트를 업데이트하십시오. 기본적으로 이 메시지 보호 파트는 본문 및 서명 요소를 암호화하고 사용자 이름 토큰을 암호화하도록 수정해야 합니다.
    1. 애플리케이션 정책 세트 > policy_set_name > WS-Security > 기본 정책 > 요청 메시지 파트 보호 > 암호화된 파트 - app_encparts > 편집을 클릭하십시오.
    2. 파트 패널의 요소에서 기존 요소를 삭제하고 사용자 이름 토큰을 암호화하는 데 두 개의 XPath 표현식을 추가하십시오.

      표현식 1:

      /*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' 
              and local-name()='Envelope']/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' 
              and local-name()='Header']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
              and local-name()='Security']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
              and local-name()='UsernameToken']

      표현식 2:

      /*[namespace-uri()='http://www.w3.org/2003/05/soap-envelope' 
              and local-name()='Envelope']/*[namespace-uri()='http://www.w3.org/2003/05/soap-envelope' 
              and local-name()='Header']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
              and local-name()='Security']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
              and local-name()='UsernameToken']

다음에 수행할 작업

프로세스의 두 번째 파트에서는 클라이언트 및 서버 바인딩을 구성합니다.
문제점 방지 문제점 방지: 클라이언트 바인딩에 대한 작업을 수행하는 경우 편집하려는 보호 토큰을 선택할 때 주의하십시오. 토큰 이름은 보호자의 관점에서 표시됩니다. 예를 들어, 클라이언트에서 recipient라는 단어가 해당 이름에 있어도 AsymmetricBindingRecipientEncryptionToken0은 생성기입니다. 올바른 토큰을 선택하기 위한 가장 좋은 방법은 보호 토큰 테이블에서 사용 열을 보는 것입니다. gotcha
  1. 다음과 같이 클라이언트 바인딩을 구성하십시오.
    1. 서비스 자원에 정책을 첨부하고 WSSecurity 정책을 포함하는 해당 자원에 대한 새 바인딩을 작성하십시오.
    2. 새 바인딩에서 WSSecurity를 클릭하고 기본 WSSecurity 바인딩 패널을 표시하십시오. 예를 들어, 엔터프라이즈 애플리케이션 > WSSampleServiceSei > 서비스 클라이언트 정책 세트 및 바인딩 > binding_name > WS-Security를 클릭하십시오.
    3. 인증 및 보호를 클릭하십시오.
    4. 보호 토큰에서 AsymmetricBindingRecipientEncryptionToken0(비대칭 암호화 생성기)을 클릭하십시오.
    5. 적용을 클릭하십시오.
    6. 콜백 핸들러를 클릭하십시오.
    7. 키 저장소 메뉴에서 사용자 정의를 선택하십시오.
    8. 사용자 정의 키 저장소 구성을 클릭하십시오.
    9. 키 저장소 경로를 입력하십시오. (예: ${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks).
    10. 유형으로 JCEKS를 선택하십시오.
    11. 비밀번호 및 비밀번호 확인 필드에 비밀번호를 입력하십시오. 예: storepass.
    12. 키 이름을 입력하십시오. 예: CN=Bob,O=IBM,C=US.
    13. 키 별명을 입력하십시오. 예: bob.
    14. 확인을 클릭하십시오.
    15. 다시 확인을 클릭하십시오.
    16. 확인을 다시 한 번 클릭하여 엔터프라이즈 애플리케이션 > WSSampleServicesSei > 서비스 클라이언트 정책 세트 및 바인딩 > binding_name > WS-Security > 인증 및 보호 패널로 돌아가십시오.
    17. AsymmetricBindingRecipientEncryptionToken0의 상태가 구성됨으로 표시되어야 합니다.
  2. 다음과 같이 클라이언트 바인딩에 대해 암호화된 파트 설정을 수정하십시오.
    1. 요청 메시지 서명 및 암호화 보호에서 request:app_encparts를 클릭하십시오.
    2. 이름을 입력하십시오. 예: MyEncPart.
    3. 키 정보에서 새로 작성을 클릭하십시오.
    4. 이름을 채우십시오. 예: MyEncKeyInfo.
    5. 확인을 클릭하십시오.
    6. 사용 가능 상자에서 MyEncKeyInfo 또는 암호화된 파트에 지정한 이름을 선택하고 추가를 클릭하십시오. MyEncKeyInfo가 지정됨 상자에 나타납니다.
    7. 확인을 클릭하여 엔터프라이즈 애플리케이션 > WSSampleServicesSei > 서비스 클라이언트 정책 세트 및 바인딩 > binding_name > WS-Security > 인증 및 보호 패널로 돌아가십시오.
    8. request:app_encparts의 상태가 구성됨으로 표시되어야 합니다.
  3. 다음과 같이 클라이언트 바인딩에서 사용자 이름 토큰 설정을 구성하십시오.
    1. 인증 토큰에서 request:myUserNameToken을 클릭하십시오.
    2. 적용을 클릭하십시오.
    3. 콜백 핸들러를 클릭하십시오.
    4. 사용자 이름을 지정하십시오. 예: LDAPSunuser6.
    5. 비밀번호를 지정한 후 비밀번호를 확인하십시오.
    6. 확인을 클릭하십시오.
    7. 사용자 정의 특성에서 새로 작성을 클릭하여 난스(nonce) 및 시간소인을 사용하도록 특성을 추가하십시오.
    8. 특성 이름 com.ibm.wsspi.wssecurity.token.username.addNonce를 입력하여 난스(nonce)를 사용 가능하게 하고 특성 값 true를 입력하십시오.
    9. 특성 이름 com.ibm.wsspi.wssecurity.token.username.addTimestamp를 입력하여 시간소인을 사용 가능하게 하고 특성 값 true를 입력하십시오.
    10. 다시 확인을 클릭하십시오.
    11. 이제 request:myUserNameToken의 상태가 구성됨으로 표시되어야 합니다.
    12. 저장을 클릭하여 클라이언트 바인딩을 저장하십시오.
  4. 다음과 같이 서버 바인딩을 구성하십시오.
    1. 서비스 자원에 정책을 첨부하고 WSSecurity 정책을 포함하는 해당 자원에 대한 새 바인딩을 작성하십시오.
    2. 새 바인딩에서 WSSecurity를 클릭하고 기본 WSSecurity 바인딩 패널을 표시하십시오. 예를 들어, 엔터프라이즈 애플리케이션 > WSSampleServiceSei > 서비스 클라이언트 정책 세트 및 바인딩 > binding_name > WS-Security를 클릭하십시오.
    3. 인증 및 보호를 클릭하십시오.
    4. 보호 토큰에서 AsymmetricBindingRecipientEncryptionToken0(비대칭 암호화 이용자)을 클릭하십시오.
    5. 적용을 클릭하십시오.
    6. 콜백 핸들러를 클릭하십시오.
    7. 키 저장소 메뉴에서 사용자 정의를 선택하십시오.
    8. 사용자 정의 키 저장소 구성을 클릭하십시오.
    9. 키 저장소 경로를 입력하십시오. (예: ${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks).
    10. 유형으로 JCEKS를 선택하십시오.
    11. 비밀번호 및 비밀번호 확인 필드에 비밀번호를 입력하십시오. 예: storepass.
    12. 키 이름을 입력하십시오. 예: CN=Bob,O=IBM,C=US.
    13. 키 별명을 입력하십시오. 예: bob.
    14. 비밀번호 및 비밀번호 확인 필드에 keypass의 비밀번호를 입력하십시오.
    15. 확인을 클릭하십시오.
    16. 다시 확인을 클릭하십시오.
    17. 확인을 다시 한 번 클릭하여 엔터프라이즈 애플리케이션 > WSSampleServicesSei > 서비스 클라이언트 정책 세트 및 바인딩 > binding_name > WS-Security > 인증 및 보호 패널로 돌아가십시오.
    18. AsymmetricBindingRecipientEncryptionToken0의 상태가 구성됨으로 표시되어야 합니다.
  5. 다음과 같이 서버 바인딩에 대해 암호화된 파트 설정을 수정하십시오.
    1. 요청 메시지 서명 및 암호화 보호에서 request:app_encparts를 클릭하십시오.
    2. 이름을 입력하십시오. 예: MyEncPart.
    3. 키 정보에서 새로 작성을 클릭하십시오.
    4. 이름을 채우십시오. 예: MyEncKeyInfo.
    5. 확인을 클릭하십시오.
    6. 사용 가능 상자에서 MyEncKeyInfo 또는 암호화된 파트에 지정한 이름을 선택하고 추가를 클릭하십시오. MyEncKeyInfo가 지정됨 상자에 나타납니다.
    7. 확인을 클릭하여 엔터프라이즈 애플리케이션 > WSSampleServicesSei > 서비스 클라이언트 정책 세트 및 바인딩 > binding_name > WS-Security > 인증 및 보호 패널로 돌아가십시오.
    8. request:app_encparts의 상태가 구성됨으로 표시되어야 합니다.
  6. 다음과 같이 서버 바인딩에서 사용자 이름 토큰 설정을 구성하십시오.
    1. 인증 토큰에서 request:myUserNameToken을 클릭하십시오.
    2. 적용을 클릭하십시오.
    3. 콜백 핸들러를 클릭하십시오.
    4. 확인을 클릭하십시오.
    5. 사용자 정의 특성에서 새로 작성을 클릭하여 난스(nonce) 및 시간소인을 확인하도록 특성을 추가하십시오.
    6. 특성 이름 com.ibm.wsspi.wssecurity.token.username.verifyNonce를 입력하여 난스(nonce)를 확인하고 특성 값 true를 입력하십시오.
    7. 특성 이름 com.ibm.wsspi.wssecurity.token.username.verifyTimestamp를 입력하여 시간소인을 확인하고 특성 값 true를 입력하십시오.
    8. 다시 확인을 클릭하십시오.
    9. request:myUserNameToken의 상태가 구성됨으로 표시되어야 합니다.
    10. 저장을 클릭하여 서버 바인딩을 저장하십시오.

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configmsglvlpolicyset
파일 이름:twbs_configmsglvlpolicyset.html