Oracle OpenSSO 업데이트 2 릴리스 노트

Procedure서명 및 암호화를 위해 Java Fedlet을 구성하는 방법

  1. keytool 유틸리티를 사용하여 keystore.jks라는 키 저장소 파일을 만듭니다.

  2. 서명에 사용되는 개인 키(및 해당되는 경우 공용 인증서)와 암호화에 사용되는 개인 키(및 해당되는 경우 공용 인증서)를 keystore.jks 파일에 추가합니다.

  3. .storepass 파일을 만듭니다.

  4. .storepass 파일에 비밀번호를 추가합니다. 비밀번호를 암호화하려면 fedletEncode.jsp를 사용합니다.

  5. .keypass 파일을 만듭니다.

  6. .keypass 파일에 비밀번호를 추가합니다. 비밀번호를 암호화하려면 fedletEncode.jsp를 사용합니다.

  7. 일반 텍스트 비밀번호를 사용하는 경우 FederationConfig.properties 파일에 다음 줄을 주석으로 추가합니다.

    com.sun.identity.saml.xmlsig.passwordDecoder=
        com.sun.identity.fedlet.FedletEncodeDecode
  8. FederationConfig.properties 파일에서 다음 속성의 전체 경로를 설정합니다. path는 각 파일에 대한 전체 경로입니다.

    com.sun.identity.saml.xmlsig.keystore=path/keystore.jks
    com.sun.identity.saml.xmlsig.storepass=path/.storepass
    com.sun.identity.saml.xmlsig.keypass=path/.keypass
  9. keytool을 사용하여 서명 인증서를 내보냅니다. 예:

    keytool -export -keystore keystore.jks -rfc -alias test

    도구에 keystore.jks에 액세스하는 데 사용되는 비밀번호를 입력하라는 메시지가 표시되고 인증서가 생성됩니다.

  10. 암호화 인증서가 필요한 경우 이전 단계에 표시된 대로 keytool을 사용하여 인증서를 내보냅니다. 또는 서명과 암호화 모두에 동일한 인증서를 사용합니다.

  11. KeyDescriptor XML 블록을 만들고 암호화 인증서를 블록에 추가합니다. 예를 들어 KeyDescriptor 요소의 use="signing" 태그를 보십시오.

    <KeyDescriptor use="signing">
          <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:X509Data>
              <ds:X509Certificate>
    MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
    bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
    ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
    CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
    BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
    AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
    RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
    Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
    QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
    cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
    /FfwWigmrW0Y0Q==
              </ds:X509Certificate>
            </ds:X509Data>
          </ds:KeyInfo>
    </KeyDescriptor>
  12. 다른 KeyDescriptor XML 블록을 만들고 암호화 인증서를 이 블록에 추가합니다. 예를 들어 KeyDescriptor 요소의 use="encryption" 태그를 보십시오.

    <KeyDescriptor use="encryption">
          <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
            <X509Data>
              <X509Certificate>
    MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
    bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
    ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
    CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
    BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
    AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
    RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
    Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
    QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
    cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
    /FfwWigmrW0Y0Q==
              </X509Certificate>
            </X509Data>
          </KeyInfo>
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc">
      <KeySize xmlns="http://www.w3.org/2001/04/xmlenc#">128</KeySize>
    </EncryptionMethod>
    </KeyDescriptor>
  13. Java Fedlet sp.xml 파일에서 서명 및 암호와 인증서가 포함된 XML 블록을 SPSSODescriptor 요소 아래에 추가합니다. SPSSODescriptor 요소 샘플은 예 4–1을 참조하십시오.

    AuthnRequestsSigned 속성이 true로 설정되어 모든 인증 요청을 서명하도록 Java Fedlet을 구성합니다.

  14. Java Fedlet sp-extended.xml 파일에서 다음 요소에 대한 값을 설정합니다.

    • signingCertAlias는 키 저장소에 있는 XML 서명 인증서의 별칭을 포함합니다.

    • encryptionCertAlias는 키 저장소에 있는 XML 암호화 인증서의 별칭을 포함합니다.

  15. Java Fedlet 서비스 공급자가 암호화하는 항목을 적용하려면 sp-extended.xml 파일에서 다음 속성을 true로 설정합니다.

    • wantAssertionEncrypted

    • wantNameIDEncrypted

    • wantAttributeEncrypted

  16. Java Fedlet 서비스 공급자가 서명하고 서명되기를 원하는 항목을 적용하려면 다음 속성을 true로 설정합니다.

    • idp.xml 파일의 wantAuthnRequestsSigned는 Fedlet에 서명할 항목을 알려줍니다.

    • sp.xml 파일의 AuthnRequestsSignedWantAssertionsSigned는 아이디 공급자에게 Fedlet이 서명하게 될 항목을 알려줍니다.

    • sp-extended.xml 파일의 wantArtifactResponseSigned는 Fedlet에 서명할 항목을 알려줍니다.

    • sp-extended.xml 파일의 wantPOSTResponseSigned

    • sp-extended.xml 파일의 wantLogoutRequestSigned

    • sp-extended.xml 파일의 wantLogoutResponseSigned

    아이디 공급자가 특정 메시지에 대한 서명을 요구하는 경우 idp-extended.xml 파일에서 각 속성을 true로 설정합니다. wantLogoutRequestSigned wantLogoutResponseSigned가 그 예에 해당합니다.


    주 –

    sp-extended.xml 파일에서 속성을 설정하는 경우 이 정보를 아이디 공급자 관리자에게 전달하여 필요에 따라 아이디 공급자의 구성을 변경할 수 있습니다.


  17. Java Fedlet 웹 컨테이너를 다시 시작합니다.

  18. Java Fedlet sp.xml 파일을 아이디 공급자로 가져옵니다.


예 4–1 Java Fedlet 샘플 SPSSODescriptor 요소

<EntityDescriptor entityID="fedlet"
xmlns="urn:oasis:names:tc:SAML:2.0:metadata">

<SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="false"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<b><KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>
MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
/FfwWigmrW0Y0Q==
          </ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>

</KeyDescriptor></b>
<b><KeyDescriptor use="encryption">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <X509Data>
          <X509Certificate>
MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
/FfwWigmrW0Y0Q==
          </X509Certificate>
        </X509Data>
      </KeyInfo>

<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc">
<KeySize xmlns="http://www.w3.org/2001/04/xmlenc#">128</KeySize>
</EncryptionMethod>
</KeyDescriptor></b>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat
><AssertionConsumerService index="1"
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="http://server.sun.com:7070/fedlet/fedletapplication"/>
</SPSSODescriptor>
</EntityDescriptor>