Oracle OpenSSO 8.0 업데이트 2에는 다음과 같은 Fedlet의 새로운 기능이 포함되어 있습니다.
Oracle OpenSSO Fedlet에는 버전 정보가 포함되어 있습니다. Fedlet 패키지(ZIP 파일)의 파일을 추출한 후 다음 파일 중 하나를 확인하여 Fedlet 버전을 판별합니다.
Java Fedlet: java/conf/FederationConfig.properties
.NET Fedlet: asp.net/bin/Fedlet.dll.config
Java Fedlet은 fedlet.war 파일에 fedletEncode.jsp를 제공하여 storepass 및 keypass 비밀번호를 암호화합니다. 기본적으로 각 Fedlet에 대해 서로 다른 암호화 키가 생성됩니다. 이 암호화 키를 변경하려면 Fedlet FederationConfig.properties 파일에서 am.encryption.pwd 등록 정보를 설정합니다.
Java Fedlet은 암호화된 assertion 및 NameID 요소의 XML 서명 확인 및 해독과 해당 속성을 지원합니다.
keytool 유틸리티를 사용하여 keystore.jks라는 키 저장소 파일을 만듭니다.
서명에 사용되는 개인 키(및 해당되는 경우 공용 인증서)와 암호화에 사용되는 개인 키(및 해당되는 경우 공용 인증서)를 keystore.jks 파일에 추가합니다.
.storepass 파일을 만듭니다.
.storepass 파일에 비밀번호를 추가합니다. 비밀번호를 암호화하려면 fedletEncode.jsp를 사용합니다.
.keypass 파일을 만듭니다.
.keypass 파일에 비밀번호를 추가합니다. 비밀번호를 암호화하려면 fedletEncode.jsp를 사용합니다.
일반 텍스트 비밀번호를 사용하는 경우 FederationConfig.properties 파일에 다음 줄을 주석으로 추가합니다.
com.sun.identity.saml.xmlsig.passwordDecoder= com.sun.identity.fedlet.FedletEncodeDecode
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
keytool을 사용하여 서명 인증서를 내보냅니다. 예:
keytool -export -keystore keystore.jks -rfc -alias test
도구에 keystore.jks에 액세스하는 데 사용되는 비밀번호를 입력하라는 메시지가 표시되고 인증서가 생성됩니다.
암호화 인증서가 필요한 경우 이전 단계에 표시된 대로 keytool을 사용하여 인증서를 내보냅니다. 또는 서명과 암호화 모두에 동일한 인증서를 사용합니다.
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>
다른 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>
Java Fedlet sp.xml 파일에서 서명 및 암호와 인증서가 포함된 XML 블록을 SPSSODescriptor 요소 아래에 추가합니다. SPSSODescriptor 요소 샘플은 예 4–1을 참조하십시오.
AuthnRequestsSigned 속성이 true로 설정되어 모든 인증 요청을 서명하도록 Java Fedlet을 구성합니다.
Java Fedlet sp-extended.xml 파일에서 다음 요소에 대한 값을 설정합니다.
signingCertAlias는 키 저장소에 있는 XML 서명 인증서의 별칭을 포함합니다.
encryptionCertAlias는 키 저장소에 있는 XML 암호화 인증서의 별칭을 포함합니다.
Java Fedlet 서비스 공급자가 암호화하는 항목을 적용하려면 sp-extended.xml 파일에서 다음 속성을 true로 설정합니다.
wantAssertionEncrypted
wantNameIDEncrypted
wantAttributeEncrypted
Java Fedlet 서비스 공급자가 서명하고 서명되기를 원하는 항목을 적용하려면 다음 속성을 true로 설정합니다.
idp.xml 파일의 wantAuthnRequestsSigned는 Fedlet에 서명할 항목을 알려줍니다.
sp.xml 파일의 AuthnRequestsSigned 및 WantAssertionsSigned는 아이디 공급자에게 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 파일에서 속성을 설정하는 경우 이 정보를 아이디 공급자 관리자에게 전달하여 필요에 따라 아이디 공급자의 구성을 변경할 수 있습니다.
Java Fedlet 웹 컨테이너를 다시 시작합니다.
Java Fedlet sp.xml 파일을 아이디 공급자로 가져옵니다.
<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>
Java Fedlet은 SAMLv2 속성 쿼리를 지원하여 Oracle OpenSSO 8.0 업데이트 2와 같은 아이디 공급자에게 특정 아이디 속성 값을 쿼리합니다. Fedlet이 쿼리를 서명하고 암호화하도록 구성할 수 있습니다. 서명은 Fedlet 쿼리를 실행하는 데 반드시 필요하지만 암호화는 선택 사항입니다.
XML 서명을 사용하여 서명 및 암호화에 대한 Java Fedlet 지원에 설명된 대로 속성 쿼리를 서명합니다.
이전 단계에서 생성된 인증서를 Fedlet sp.xml 파일의 RoleDescriptor 요소에 추가합니다. 다음 예에는 인증서를 붙여넣는 두 개의 KeyDescriptor 태그가 있습니다. 하나는 서명에 사용되고 다른 하나는 암호화에 사용됩니다. 암호화를 사용하지 않는 경우 KeyDescriptor use="encryption" tag는 필요 없습니다.
<RoleDescriptor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query" xsi:type="query:AttributeQueryDescriptorType" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <KeyDescriptor use="signing"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate> --certificate-- </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </KeyDescriptor> <KeyDescriptor use="encryption"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate> --certificate-- </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"> <xenc:KeySize xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">128</xenc:KeySize> </EncryptionMethod> </KeyDescriptor> </RoleDescriptor>
Java Fedlet sp-extended.xml 파일에서 signingCertAlias 속성에 대한 값을 지정하고, 구성된 경우 encryptionCertAlias 속성에 대한 값도 지정합니다.
아이디 공급자가 명제를 암호화하도록 구성하려면 NameID 요소도 암호화합니다. 그러므로 wantNameIDEncrypted 속성의 값을 true로 설정해야 합니다. XML 코드를 AttributeQueryConfig 요소에 추가합니다. 예:
<Attribute name="signingCertAlias"> <Value>test</Value> </Attribute> <Attribute name="encryptionCertAlias"> <Value>test</Value> </Attribute> <Attribute name="wantNameIDEncrypted"> <Value>true</Value> </Attribute>
이 예에서 test는 샘플 키의 별칭입니다.
Java Fedlet 메타데이터 파일(sp.xml)을 아이디 공급자로 가져옵니다.
또한 Fedlet에 대한 속성 쿼리를 지원하도록 아이디 공급자에서 추가 구성 단계를 수행합니다.
.NET Fedlet은 NameID, Attribute 및 Assertion 요소에 대해 발신 XML 요청을 암호화하고 수신 응답을 해독할 수 있습니다.
Microsoft 관리 콘솔에 대한 인증서 스냅인을 사용하여 X.509 인증서를 로컬 컴퓨터 계정 내의 개인 폴더로 가져옵니다. 이 스냅인을 사용하려면 다음 Microsoft 문서를 참조하십시오.
등록 정보 대화 상자를 보고 값을 입력하여 이 인증서의 표시 이름을 지정합니다. 4단계를 수행하기 위해 이 값을 저장합니다.
Microsoft 문서에 설명된 대로 IIS(Internet Information Server)에서 사용하는 사용자 계정에 대해 인증서에 읽기 액세스 권한을 허용하도록 적절한 권한을 설정합니다. 예:
.NET Fedlet의 확장 메타데이터 파일(sp-extended.xml )에서 encryptionCertAlias 속성 값으로 2단계에서 지정한 표시 이름을 지정합니다. 예:
<Attribute name="encryptionCertAlias"> <Value>MyFedlet</Value>
.NET Fedlet의 서비스 공급자 메타데이터 파일(sp.xml )에서 암호화 키에 대한 KeyDescriptor를 추가합니다.
이전에 사용된 Microsoft 관리 콘솔에 대한 인증서 스냅인을 사용하여 KeyDescriptor XML 블록에 포함되도록 인증서의 공개 키를 Base64 인코딩으로 내보냅니다. 이 KeyDescriptor 는 SPSSODescriptor 내의 첫 번째 자식 요소여야 합니다. 예:
<KeyDescriptor use="encryption"> <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> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"> <KeySize xmlns="http://www.w3.org/2001/04/xmlenc#">128</KeySize> </EncryptionMethod> </KeyDescriptor>
.NET 응용 프로그램과 연결된 응용 프로그램 풀을 다시 시작합니다.
이 구성을 테스트하려면 샘플 응용 프로그램을 사용합니다. 또한 구성된 메타데이터를 적절하게 변경하여 아이디 공급자의 요청을 암호화하고 응답을 해독하도록 다음 속성을 설정합니다.
Assertion: sp-extended.xml 메타데이터 파일에서 wantAssertionEncrypted 속성을 true로 설정하여 .NET Fedlet이 아이디 공급자로부터 수신되는 응답의 EncryptedAssertion 요소를 해독하도록 합니다.
Attribute: sp-extended.xml 메타데이터 파일에서 wantAttributeEncrypted 속성을 true로 설정하여 .NET Fedlet이 아이디 공급자로부터 수신되는 응답의 EncryptedAttribute 요소를 해독하도록 합니다.
NameID: idp-extended.xml 메타데이터 파일에서 wantNameIDEncrypted 속성을 true로 설정하여 .NET Fedlet이 발신되는 요청의 NameID 요소를 암호화하도록 합니다. sp-extended.xml에서 이 동일한 속성을 설정하여 .NET Fedlet이 아이디 공급자로부터 수신되는 응답의 EncryptedID 요소를 해독하도록 합니다.
.NET Fedlet은 Authn 요청 및 로그아웃 요청과 같은 발신 XML 요청의 서명을 지원합니다.
Microsoft 관리 콘솔에 대한 인증서 스냅인을 사용하여 X.509 인증서를 로컬 컴퓨터 계정 내의 개인 폴더로 가져옵니다. 이 스냅인을 사용하려면 다음 Microsoft 문서를 참조하십시오.
등록 정보 대화 상자를 보고 값을 입력하여 이 인증서의 표시 이름을 지정합니다. 4단계를 수행하기 위해 이 값을 저장합니다.
Microsoft 문서에 설명된 대로 IIS(Internet Information Server)에서 사용하는 사용자 계정에 대해 인증서에 읽기 액세스 권한을 허용하도록 적절한 권한을 설정합니다. 예:
.NET Fedlet의 확장 메타데이터 파일(sp-extended.xml )에서 signingCertAlias 속성 값으로 2단계에서 지정한 표시 이름을 지정합니다. 예:
<Attribute name="signingCertAlias"> <Value>MyFedlet</Value>
.NET Fedlet의 서비스 공급자 메타데이터 파일(sp.xml )에서 서명 키에 대한 KeyDescriptor를 추가합니다.
이전에 사용된 Microsoft 관리 콘솔에 대한 인증서 스냅인을 사용하여 KeyDescriptor XML 블록에 포함되도록 인증서의 공개 키를 Base64 인코딩으로 내보냅니다. 이 KeyDescriptor는 SPSSODescriptor 내의 첫 번째 자식 요소여야 합니다. 예:
<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>
.NET 응용 프로그램과 연결된 응용 프로그램 풀을 다시 시작합니다.
.NET Fedlet은 아이디 공급자 시작 및 서비스 공급자 시작 단일 로그아웃을 모두 지원합니다. 단일 로그아웃을 구현하기 위해 .NET Fedlet 샘플 응용 프로그램은 asp.net/SampleApp 폴더에 logout.aspx 및 spinitiatedslo.aspx 파일을 포함하고 있습니다. Fedlet 단일 로그아웃 기능의 작동 방식을 보려면 .NET Fedlet 샘플 응용 프로그램을 배포하십시오.
.NET Fedlet을 구성하지 않은 경우 Readme 파일의 단계를 따릅니다.
.NET 응용 프로그램 공개 내용 내의 logout.aspx 및 spinitiatedslo.aspx 파일을 복사합니다.
응용 프로그램에 대한 구성 파일을 변경합니다.
sp.xml 파일에서 logout.aspx 파일의 경로가 응용 프로그램에 대한 파일의 올바른 위치를 가리키도록 합니다.
idp.xml 파일에서(또는 아이디 공급자를 구성하는 동안) spinitiatedslo.aspx 파일의 경로가 응용 프로그램에 대한 파일의 올바른 위치를 가리키도록 합니다.
로그아웃 요청 및 로그아웃 응답이 서명되도록 하려는 경우 sp-extended.xml 및 idp-extended.xml 파일에서 다음 속성을 true로 설정합니다.
wantLogoutRequestSigned
wantLogoutResponseSigned
Fedlet 서비스 공급자 메타데이터 파일(sp.xml)을 아이디 공급자로 가져옵니다.
또한 아이디 공급자 관리자에게 Fedlet 서비스 공급자에 대해 단일 로그아웃을 구성하여 아이디 공급자 구성에 필요한 추가 변경이 수행되도록 할 수 있다는 것을 알립니다.
.NET Fedlet은 SAMLv2 서비스 공급자에서 시작하는 단일 사인 온(SSO)을 지원합니다. 또한 .NET Fedlet이 아티팩트를 수신한 후 실행 중인 아이디 공급자의 아티팩트 해결 서비스를 사용하여 SOAP를 통해 이를 해결할 수 있도록 하려면 아티팩트 지원이 필요합니다.
.NET Fedlet 샘플 응용 프로그램은 단일 사인 온(SSO)을 구성할 수 있는 방법을 보여줍니다. 응용 프로그램에 필요한 아티팩트가 설치된 다음, 아이디 공급자가 인증을 성공적으로 수행한 후 SAMLv2 응답이 포함된 HTTP POST를 수신하려면 특정 URI가 필요합니다. 다음 코드 예는 .NET 응용 프로그램에서 이 정보를 검색할 수 있는 방법을 보여줍니다.
AuthnResponse authnResponse = null; try { ServiceProviderUtility spu = new ServiceProviderUtility(Context); authnResponse = spu.GetAuthnResponse(Context); } catch (Saml2Exception se) { // invalid AuthnResponse received } catch (ServiceProviderUtilityException spue) { // issues with deployment (reading metadata) }
응용 프로그램이 SAMLv2 응답을 수신하는 경우 authnResponse 객체에는 명제 정보가 입력됩니다. 샘플 응용 프로그램은 이 객체에서 속성 및 주제 정보를 검색하는 방법을 보여줍니다.
.NET Fedlet은 여러 아이디 공급자 및 아이디 공급자 검색 서비스를 지원합니다.
일부 배포에서는 Oracle OpenSSO 8.0 업데이트 2와 같은 여러 아이디 공급자로 .NET Fedlet을 구성해야 하는 경우가 있습니다. 추가할 각 아이디 공급자에 대해 다음 작업을 수행합니다.
추가 아이디 공급자에서 XML 메타데이터 파일을 가져옵니다.
추가 아이디 공급자 메타데이터 파일의 이름을 idp n.xml로 지정합니다. n은 추가하는 아이디 공급자입니다. 예를 들어 두 번째 아이디 공급자 파일을 idp2.xml로, 세 번째를 idp3.xml로 지정합니다. 이 절차에서는 idp2.xml을 파일 이름으로 사용합니다.
2단계의 idp2.xml 파일을 응용 프로그램의 App_Data 폴더로 복사합니다.
새 아이디 공급자를 .NET Fedlet 트러스트 그룹에 추가합니다.
새 아이디 공급자를 기존 트러스트 그룹에 추가하는 방법
응용 프로그램의 App_Data 폴더에 있는 fedlet.cot 파일에서 쉼표(,)를 구분 기호로 사용하여 새 IDP 엔티티 ID(idp2.xml 메타데이터 파일의 entityID 속성에 표시됨)를 sun-fm-trusted-providers 속성의 값에 추가합니다.
새 아이디 공급자를 새 트러스트 그룹에 추가하는 방법
응용 프로그램의 App_Data 폴더에 fedlet2.cot라는 새 파일을 만듭니다. 기존 fedlet.cot 를 서식 파일로 사용하지만 cot-name 속성의 값을 새 트러스트 그룹의 이름(예: cot2)으로 변경합니다. 새 아이디 공급자 엔티티 ID와 Fedlet 엔티티 ID를 모두 sun-fm-trusted-providers 속성의 값으로 포함합니다(두 엔티티 ID를 쉼표(,)로 구분).
sp-extended.xml 파일에서 새 트러스트 그룹 이름을 cotlist 속성의 값에 추가합니다. 예를 들어 cot2라는 트러스트 그룹의 경우 다음을 수행합니다.
<Attribute name="cotlist"> <Value>saml2cot</Value> <Value>cot2</Value> </Attribute>
응용 프로그램의 App_Data 폴더에서 새 아이디 공급자에 대한 확장 메타데이터로 새 idp2-extended.xml 파일을 만듭니다. 기존 idp-extended.xml 파일을 서식 파일로 사용하지만 entityID를 새 아이디 공급자 엔티티 ID로 변경합니다. 아이디 공급자에 대한 새 트러스트 그룹이 만들어진 경우 cotlist 속성의 값을 트러스트 그룹 이름으로 변경합니다. 추가 아이디 공급자는 원격 아이디여야 합니다.
Fedlet .NET 응용 프로그램과 연결된 응용 프로그램 풀을 다시 시작합니다.
Fedlet 메타데이터 XML 파일(sp.xml)을 추가 아이디 공급자로 가져오고 아이디 공급자 엔티티와 동일한 트러스트 그룹에 추가해야 합니다. sp.xml 파일을 아이디 공급자로 가져오거나 아이디 공급자 관리자에게 가져올 파일을 제공합니다.
이 시나리오에서 .NET Fedlet은 트러스트 그룹의 여러 아이디 공급자로 구성되어 있으며 아이디 공급자 검색 서비스를 사용하여 원하는 아이디 공급자를 확인하도록 Fedlet을 구성하려고 합니다.
.NET Fedlet에서 사용 중인 아이디 공급자에 대해 검색 서비스가 구성되어야 합니다. Oracle OpenSSO 8.0 업데이트 2에서의 아이디 공급자 검색 서비스 구성에 대한 자세한 내용은 http://docs.sun.com/coll/1767.1의 문서 모음을 참조하십시오.