Notas de la versión de Oracle OpenSSO Update 2

Capítulo 4 Uso de Oracle OpenSSO Fedlet

En esta sección se proporciona información sobre Oracle OpenSSO Fedlet:

Acerca de Oracle OpenSSO Fedlet

Oracle OpenSSO Fedlet es una implementación de proveedor de servicios de peso ligero (SP) que puede desplegarse en una aplicación de proveedor de servicios de Java o .NET, lo que permite a la aplicación comunicarse con un proveedor de servicios (IDP) como, por ejemplo, Oracle OpenSSO 8.0 Update 2 mediante el protocolo SAMLv2. Fedlet presenta dos versiones en función de la plataforma utilizada:

En Oracle OpenSSO 8.0 Update 2, el Fedlet está disponible de la siguiente forma:

Requisitos de Oracle OpenSSO Fedlet

El Fedlet presenta los siguientes requisitos:

Configuración de Oracle OpenSSO Fedlet

En esta sección se describe cómo configurar inicialmente el Fedlet con una aplicación de proveedor de servicios:

Una vez finalizada la configuración inicial del Fedlet, continúe con cualquier tarea de configuración adicional que desee realizar. Debe tener en cuenta las siguientes consideraciones:

ProcedurePara configurar el Fedlet de Java

  1. En el proveedor de identidades, genere los metadatos XML para este proveedor y guárdelos en un archivo denominado idp.xml.

    En Oracle OpenSSO 8.0 Update 2, utilice exportmetadata.jsp. Por ejemplo:

    http://opensso-idp.example.com:8080/opensso/saml2/jsp/exportmetadata.jsp
  2. En el proveedor de servicios, descomprima el archivo ZIP del Fedlet (si es necesario).

  3. Cree el directorio principal del Fedlet, es decir, el directorio en el que el Fedlet leerá sus metadatos, el círculo de confianza y los archivos de propiedades de configuración.

    La ubicación predeterminada es el subdirectorio del Fedlet en el directorio principal del usuario que ejecuta el contenedor web del Fedlet (indicado por la propiedad user.home de JVM). Por ejemplo, si este directorio principal es /home/webservd, el directorio principal del Fedlet será el siguiente:

    /home/webservd/fedlet

    Para cambiar el directorio principal predeterminado del Fedlet, establezca el valor de la propiedad de tiempo de ejecución com.sun.identity.fedlet.home de JVM en la ubicación que desee. Por ejemplo:

    -Dcom.sun.identity.fedlet.home=/export/fedlet/conf

    A continuación, el Fedlet lee sus metadatos, el círculo de confianza y los archivos de configuración del directorio /export/fedlet/conf.

  4. Copie los siguientes archivos del directoriojava/conf del Fedlet de Java en el directorio principal del Fedlet:

    • sp.xml-template

    • sp-extended.xml-template

    • idp-extended.xml-template

    • fedlet.cot-template

  5. En el directorio principal del Fedlet, cambie los nombres de los archivos copiados y elimine -template en cada uno de ellos.

  6. En los archivos del directorio principal del Fedlet que ha copiado y cuyo nombre ha cambiado, sustituya las etiquetas, tal y como se muestra en la siguiente tabla:

    Etiqueta 

    Sustituir por 

    FEDLET_COT

    El nombre del círculo de confianza (COT) del que son miembros el proveedor de identidades remoto y la aplicación del proveedor de servicios del Fedlet de Java. 

    FEDLET_ENTITY_ID

    El Id. (nombre) de la aplicación del proveedor de servicios del Fedlet de Java. Por ejemplo: fedletsp

    FEDLET_PROTOCOL

    El protocolo del contenedor web de la aplicación del proveedor de servicios del Fedlet de Java como, por ejemplo, fedlet.war. Por ejemplo: https

    FEDLET_HOST

    El nombre de host del contenedor web de la aplicación del proveedor de servicios del Fedlet de Java como, por ejemplo, fedlet.war. Por ejemplo: fedlet-host.example.com

    FEDLET_PORT

    El número de puerto del contenedor web de la aplicación del proveedor de servicios del Fedlet de Java como, por ejemplo, fedlet.war. Por ejemplo: 80

    FEDLET_DEPLOY_URI

    La URL de la aplicación del proveedor de servicios del Fedlet de Java. Por ejemplo: http://fedletsp.example.com/myFedletApp

    IDP_ENTITY_ID

    El Id. (nombre) del proveedor de identidades remoto. Por ejemplo: openssoidp

    Nota: si el Id. de entidad del proveedor de servicios o identidades del Fedlet contiene un símbolo de porcentaje (%) o una coma (,), debe establecer una secuencia de escape para el carácter antes de sustituirlo en el archivo fedlet.cot. Por ejemplo, cambie "%"por "%25" y "," por "%2C".

  7. Copie el archivo FedletConfiguration.properties del directorio java/conf del Fedlet de Java en el directorio principal del Fedlet.

  8. Copie el archivo XML de metadatos estándar del proveedor de identidades (indicado en el paso 1) en el directorio principal del Fedlet. A este archivo se le debe asignar el nombre idp.xml.

  9. Importe el archivo de metadatos XML del Fedlet de Java (sp.xml) en el proveedor de identidades.

    En Oracle OpenSSO 8.0 Update 2, utilice el flujo de trabajo de registro del proveedor de servicios remoto que se encuentra debajo de Tareas comunes en la consola de administración de OpenSSO 8.0 para importar los metadatos del proveedor de servicios del Fedlet de Java y agregar este proveedor a un círculo de confianza.

Pasos siguientes

En función de los requisitos, continúe con las tareas de configuración adicionales del Fedlet de Java.

ProcedurePara configurar el Fedlet de .NET

  1. En el proveedor de identidades, genere los metadatos XML para este proveedor y guárdelos en un archivo denominado idp.xml.

    En Oracle OpenSSO 8.0 Update 2, utilice exportmetadata.jsp. Por ejemplo:

    http://opensso-idp.example.com:8080/opensso/saml2/jsp/exportmetadata.jsp
  2. En el proveedor de servicios, descomprima el archivo ZIP del Fedlet (si es necesario).

  3. Copie los siguientes archivos de la carpeta asp.net/conf del Fedlet de .NET en la carpeta App_Data de la aplicación.

    • sp.xml-template

    • sp-extended.xml-template

    • idp-extended.xml-template

    • fedlet.cot-template

  4. En la carpeta App_Data, cambie el nombre de los archivos y elimine -template en cada uno de ellos.

  5. En los archivos de la carpeta App_Data que ha copiado y cuyo nombre ha cambiado, sustituya las etiquetas, tal y como se muestra en la siguiente tabla:

    Etiqueta 

    Sustituir por 

    FEDLET_COT

    El nombre del círculo de confianza (COT) del que son miembros el proveedor de identidades remoto y la aplicación del proveedor de servicios del Fedlet de .NET. 

    FEDLET_ENTITY_ID

    El Id. (nombre) de la aplicación del proveedor de servicios del Fedlet de .NET. Por ejemplo: fedletsp

    FEDLET_DEPLOY_URI

    La URL de la aplicación del proveedor de servicios del Fedlet de .NET. Por ejemplo: http://fedletsp.example.com/myFedletApp

    IDP_ENTITY_ID

    El Id. (nombre) del proveedor de identidades remoto. Por ejemplo: openssoidp

  6. Copie el archivo XML de metadatos estándar del proveedor de identidades (indicado en el paso 1) en la carpeta App_Data de la aplicación. A este archivo se le debe asignar el nombre idp.xml.

  7. Copie los archivos Fedlet.dll y Fedlet.dll.config de la carpeta asp.net/bin del Fedlet de .NET en la carpeta bin de la aplicación.

  8. Importe el archivo de metadatos XML del Fedlet de .NET (sp.xml) en el proveedor de identidades.

    En Oracle OpenSSO 8.0 Update 2, utilice el flujo de trabajo de registro del proveedor de servicios remoto que se encuentra debajo de Tareas comunes en la consola de administración de OpenSSO 8.0 para importar los metadatos del proveedor de servicios del Fedlet de .NET y agregar este proveedor a un círculo de confianza.

Pasos siguientes

En función de los requisitos, continúe con las tareas de configuración adicionales del Fedlet de .NET.

Nuevas funciones del Fedlet en OpenSSO 8.0 Update 2

Oracle OpenSSO 8.0 Update 2 incluye las siguientes nuevas funciones para el Fedlet:

Información sobre la versión del Fedlet (CR 6941387)

Oracle OpenSSO Fedlet incluye información sobre la versión. Después de extraer los archivos del paquete (archivo ZIP) del Fedlet, consulte los siguientes archivos para determinar la versión del Fedlet:

Cifrado y descifrado de contraseñas del Fedlet de Java (CR 6930477)

El Fedlet de Java proporciona el archivo fedletEncode.jsp de fedlet.war para cifrar las contraseñas storepass y keypass. De manera predeterminada se genera una clave de cifrado diferente para cada Fedlet. Para cambiar esta clave de cifrado, establezca la propiedad am.encryption.pwd en el archivo FederationConfig.properties del Fedlet.

Compatibilidad del Fedlet de Java con las firmas y el cifrado

El Fedlet de Java admite la verificación de firmas XML y el descifrado de elementos assertion y NameID cifrados y sus correspondientes atributos.

ProcedurePara configurar el Fedlet de Java para las firmas y el cifrado

  1. Cree un archivo de almacén de claves denominado keystore.jks mediante la utilidad keytool.

  2. Agregue las claves privadas (y los certificados públicos si corresponde) utilizadas para las firmas y el cifrado en el archivo keystore.jks.

  3. Cree un archivo .storepass.

  4. Agregue la contraseña al archivo .storepass. Para cifrar la contraseña, utilice fedletEncode.jsp.

  5. Cree un archivo .keypass.

  6. Agregue la contraseña al archivo .keypass. Para cifrar la contraseña, utilice fedletEncode.jsp.

  7. Si utiliza contraseñas de texto no cifrado, incluya entre comentarios la siguiente línea del archivo FederationConfig.properties:

    com.sun.identity.saml.xmlsig.passwordDecoder=
        com.sun.identity.fedlet.FedletEncodeDecode
  8. Establezca la ruta completa para los siguientes atributos del archivo FederationConfig.properties , donde path hace referencia a la ruta completa al archivo respectivo:

    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. Utilice keytool para exportar el certificado de firma. Por ejemplo:

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

    La herramienta le solicita que especifique la contraseña utilizada para acceder a keystore.jks y, a continuación, genera el certificado.

  10. Si necesita un certificado de cifrado, utilice keytool para exportarlo, como se muestra en el paso anterior (o utilice el mismo certificado para las firmas y el cifrado).

  11. Cree un bloque XML de KeyDescriptor y agregue el certificado de cifrado a este. Por ejemplo, tenga en cuenta la etiqueta use="signing" del elemento KeyDescriptor:

    <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. Cree otro bloque XML de KeyDescriptor y agregue el certificado de cifrado a este. Por ejemplo, tenga en cuenta la etiqueta use="encryption" del elemento KeyDescriptor:

    <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. En el archivo sp.xml del Fedlet de Java, agregue los bloques XML con los certificados de firma y cifrado en el elemento SPSSODescriptor . Para obtener un elemento SPSSODescriptor de muestra, consulte el Ejemplo 4–1.

    El atributo AuthnRequestsSigned se establece en true (verdadero), lo que configura el Fedlet de Java para que firme todas las solicitudes de autenticación.

  14. En el archivo sp-extended.xml del Fedlet de Java, establezca los valores de los siguientes elementos:

    • signingCertAlias contiene el alias del certificado de firma XML del almacén de claves.

    • encryptionCertAlias contiene el alias del certificado de cifrado XML del almacén de claves.

  15. Para forzar el cifrado de determinados elementos por parte del proveedor de servicios del Fedlet de Java, establezca los siguientes atributos del archivo sp-extended.xml en true (verdadero):

    • wantAssertionEncrypted

    • wantNameIDEncrypted

    • wantAttributeEncrypted

  16. Para forzar la firma de determinados elementos por parte del proveedor de servicios del Fedlet de Java, así como de los elementos que el proveedor desea que se firmen, establezca los siguientes atributos en true (verdadero):

    • wantAuthnRequestsSigned del archivo idp.xml le indica al Fedlet los elementos que debe firmar.

    • AuthnRequestsSigned y WantAssertionsSigned del archivo sp.xml le indica al proveedor de identidades los elementos que el Fedlet tiene intención de firmar.

    • wantArtifactResponseSigned del archivo sp-extended.xml le indica al Fedlet los elementos que debe firmar.

    • wantPOSTResponseSigned del archivo sp-extended.xml

    • wantLogoutRequestSigned del archivo sp-extended.xml

    • wantLogoutResponseSigned del archivo sp-extended.xml

    Si el proveedor de identidades requiere que se firmen determinados mensajes, establezca los atributos respectivos en true (true) en el archivo idp-extended.xml . Por ejemplo, wantLogoutRequestSigned y wantLogoutResponseSigned.


    Nota –

    Si establece atributos en el archivo sp-extended.xml, proporcione esta información al administrador del proveedor de identidades para que puedan realizarse los cambios de configuración necesarios en este.


  17. Reinicie el contenedor web del Fedlet de Java.

  18. Importe el archivo sp.xml del Fedlet de Java en el proveedor de identidades.


Ejemplo 4–1 Elemento SPSSODescriptor de muestra del Fedlet de Java

<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>

Compatibilidad del Fedlet de Java con la consulta de atributos (CR 6930476)

El Fedlet de Java admite la consulta de atributos SAMLv2, lo que permite realizar una consulta en un proveedor de identidades como, por ejemplo, Oracle OpenSSO 8.0 Update 2 para buscar valores de atributos de identidad específicos. Puede configurar el Fedlet para que firme y cifre la consulta. La firma es necesaria para emitir la consulta del Fedlet, aunque el cifrado es opcional.

ProcedurePara configurar el Fedlet de Java para una consulta de atributos

  1. Habilite la firma XML para firmar la consulta de atributos, como se describe en Compatibilidad del Fedlet de Java con las firmas y el cifrado.

  2. Agregue el certificado generado en el paso anterior al elemento RoleDescriptor del archivo sp.xml del Fedlet. En el siguiente ejemplo, hay dos etiquetas KeyDescriptor en las que se debe pegar el certificado. Una es para la firma y la otra para el cifrado. Si no va a habilitar el cifrado, la etiqueta KeyDescriptor use="encryption" no es necesaria.

    <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>
  3. En el archivo sp-extended.xml del Fedlet de Java, especifique un valor para el atributo signingCertAlias y para el atributo encryptionCertAlias si se ha configurado.

    Si tiene intención de configurar el proveedor de identidades para cifrar la aserción, cifre también el elemento NameID. De este modo, el valor del atributo wantNameIDEncrypted debe establecerse en true (verdadero). Agregue el código XMl al elemento AttributeQueryConfig. Por ejemplo:

    <Attribute name="signingCertAlias">
          <Value>test</Value>
    </Attribute>
    <Attribute name="encryptionCertAlias">
          <Value>test</Value>
    </Attribute>
    <Attribute name="wantNameIDEncrypted">
          <Value>true</Value>
    </Attribute>

    En este ejemplo, test es el alias de la clave de ejemplo.

  4. Importe el archivo de metadatos del Fedlet de Java (sp.xml) en el proveedor de identidades.

    Además, realice los siguientes pasos de configuración en el proveedor de identidades para admitir la consulta de atributos del Fedlet.

Cifrado y descifrado de solicitudes y respuestas por parte del Fedlet de .NET (CR 6939005)

El Fedlet de .NET puede cifrar las solicitudes XML salientes y descifrar las respuestas entrantes de los elementos de Id. de nombre, atributo y aserción.

ProcedurePara configurar el Fedlet de .NET para el cifrado y el descifrado de solicitudes y respuestas

  1. Importe el certificado X.509 en la carpeta Personal de la cuenta de equipo local mediante el complemento de certificados de Microsoft Management Console. Para utilizar este complemento, consulte el siguiente artículo de Microsoft:

    http://msdn.microsoft.com/es-es/library/ms788967.aspx

  2. Especifique un nombre descriptivo para este certificado. Para ello, acceda al cuadro de diálogo Propiedades e introduzca un valor. (Guarde este valor para el paso 4).

  3. Consulte los permisos adecuados para permitir el acceso de lectura al certificado para la cuenta de usuario utilizada por los Servicios de Internet Information Server (IIS), como se describe en el artículo de Microsoft. Por ejemplo:

    1. En el complemento de certificados, acceda a Acción, Todas las tareas y, a continuación, en Administrar claves privadas.

    2. Especifique los permisos de acceso de lectura para la cuenta de usuario que ejecute ISS (normalmente SERVICIO DE RED).

  4. En el archivo de metadatos ampliado del Fedlet de .NET (sp-extended.xml ), especifique el nombre descriptivo indicado en el paso 2 como valor del atributo encryptionCertAlias. Por ejemplo:

    <Attribute name="encryptionCertAlias">
    <Value>MyFedlet</Value>
  5. En el archivo de metadatos del proveedor de servicios del Fedlet de .NET (sp.xml ), agregue KeyDescriptor en la clave de cifrado.

    Utilice el complemento de certificados de la instancia de Microsoft Management Console utilizada anteriormente para exportar la clave pública del certificado con codificación Base64 para incluirla en el bloque XML de KeyDescriptor. Esta instancia de KeyDescriptor debe ser el primer elemento principal en SPSSODescriptor. Por ejemplo:

    <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>
  6. Reinicie el conjunto de aplicaciones asociado a la aplicación de .NET.

Pasos siguientes

Para probar esta configuración, utilice la aplicación de muestra. Además, establezca los siguientes atributos para cifrar las solicitudes y descifrar las respuestas con el proveedor de identidades y los cambios adecuados efectuados en los metadatos configurados:

Firma de solicitudes y respuestas por parte del Fedlet de .NET (CR 6928530)

El Fedlet de .NET admite la firma de solicitudes XML entrantes como, por ejemplo, las solicitudes Authn y de cierre de sesión.

ProcedurePara configurar el Fedlet de .NET para la firma de solicitudes y respuestas:

  1. Importe el certificado X.509 en la carpeta Personal de la cuenta de equipo local mediante el complemento de certificados de Microsoft Management Console. Para utilizar este complemento, consulte el siguiente artículo de Microsoft:

    http://msdn.microsoft.com/es-es/library/ms788967.aspx

  2. Especifique un nombre descriptivo para este certificado. Para ello, acceda al cuadro de diálogo Propiedades e introduzca un valor. (Guarde este valor para el paso 4).

  3. Consulte los permisos adecuados para permitir el acceso de lectura al certificado para la cuenta de usuario utilizada por los Servicios de Internet Information Server (IIS), como se describe en el artículo de Microsoft. Por ejemplo:

    1. En el complemento de certificados, acceda a Acción, Todas las tareas y, a continuación, a Administrar claves privadas.

    2. Especifique los permisos de acceso de lectura para la cuenta de usuario que ejecute ISS (normalmente SERVICIO DE RED).

  4. En el archivo de metadatos ampliado del Fedlet de .NET (sp-extended.xml ), especifique el nombre descriptivo indicado en el paso 2 como valor del atributo signingCertAlias. Por ejemplo:

    <Attribute name="signingCertAlias">
    <Value>MyFedlet</Value>
  5. En el archivo de metadatos del proveedor de servicios del Fedlet de .NET (sp.xml ), agregue KeyDescriptor en la clave de firma.

    Utilice el complemento de certificados de la instancia de Microsoft Management Console utilizada anteriormente para exportar la clave pública del certificado con codificación Base64 para incluirla en el bloque XML de KeyDescriptor. Esta instancia de KeyDescriptor debe ser el primer elemento principal en SPSSODescriptor. Por ejemplo:

    <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>
  6. Reinicie el conjunto de aplicaciones asociado a la aplicación de .NET.

Cierre de sesión único del Fedlet de .NET (CR 6928528 y CR 6930472)

El Fedlet de .NET admite el cierre de sesión único de los proveedores de identidades y servicios iniciados. Para implementar el cierre de sesión único, la aplicación de muestra del Fedlet de .NET incluye los archivos logout.aspx y spinitiatedslo.aspx en la carpeta asp.net/SampleApp. Para comprobar el funcionamiento de la función de cierre de sesión único del Fedlet, implemente la aplicación de muestra del Fedlet de .NET.

ProcedurePara configurar la aplicación del proveedor de servicios del Fedlet de .NET para el cierre de sesión único:

  1. Si no ha configurado el Fedlet de .NET, siga los pasos indicados en el archivo Readme (Léame).

  2. Copie los archivos logout.aspx y spinitiatedslo.aspx en el contenido público de la aplicación de .NET.

  3. Realice los siguientes cambios en los archivos de configuración de la aplicación:

    • En el archivo sp.xml, asegúrese de que la ruta al archivo logout.aspx señale a la ubicación correcta del archivo de la aplicación.

    • En el archivo idp.xml (o durante la configuración del proveedor de identidades), asegúrese de que la ruta al archivo spinitiatedslo.aspx señale a la ubicación correcta del archivo de la aplicación.

  4. Si desea que se firmen la solicitud y la respuesta de cierre de sesión, establezca los siguientes atributos en true (verdadero) en los archivos sp-extended.xml y idp-extended.xml:

    • wantLogoutRequestSigned

    • wantLogoutResponseSigned

  5. Importe el archivo de metadatos del proveedor de servicios del Fedlet (sp.xml) en el proveedor de identidades.

    Además, informe al administrador del proveedor de identidades de que ha configurado el cierre de sesión único para el proveedor de servicios del Fedlet a fin de que puedan realizarse los cambios adicionales necesarios en la configuración del proveedor de identidades.

Inicio de sesión único del proveedor de servicios del Fedlet de .NET iniciado (CR 6928525)

El Fedlet de .NET admite el inicio de sesión único (SSO) para el proveedor de servicios SAMLv2 iniciado. Además, se necesita disponer de compatibilidad con artefactos para permitir que el Fedlet de .NET reciba un artefacto y, a continuación, lo resuelva mediante SOAP con el servicio de resolución de artefactos del proveedor de identidades emisor.

La aplicación de muestra del Fedlet de .NET muestra cómo configurar el inicio de sesión único. Una vez que la aplicación cuente con los artefactos necesarios instalados, se requiere un URI específico para recibir un elemento HTTP POST que contenga la respuesta SAMLv2 tras una autenticación con éxito por parte del proveedor de identidades. En el siguiente código de ejemplo, se indica cómo se puede recuperar esta información en una aplicación de .NET:


Ejemplo 4–2 Código de ejemplo para recuperar AuthnResponse en una aplicación del Fedlet de .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)
}

Si la aplicación recibe la respuesta SAMLv2, el objeto authnResponse se llenará con la información de aserción. La aplicación de muestra indica cómo recuperar la información de atributos y asunto desde este objeto.

Compatibilidad del Fedlet de .NET con varios proveedores de identidades y el servicio de detección (CR 6928524)

El Fedlet de .NET admite varios proveedores de identidades y su servicio de detección.

En algunas implementaciones, es recomendable configurar el Fedlet de .NET con varios proveedores de identidades como, por ejemplo, Oracle OpenSSO 8.0 Update 2. Realice la siguiente tarea para cada proveedor de identidades adicional que desee agregar.

ProcedurePara configurar el Fedlet de .NET para varios proveedores de identidades

  1. Obtenga el archivo de metadatos XML del proveedor de identidades adicional.

  2. Asigne al archivo de metadatos del proveedor de identidades adicional el nombre idp n.xml, donde n es el proveedor de identidades que va a agregar. Por ejemplo, asigne el nombre idp2.xml al segundo archivo del proveedor de identidades, idp3.xml al tercero y así sucesivamente. En este procedimiento se utiliza idp2.xml como nombre del archivo.

  3. Copie el archivo idp2.xml del paso 2 en la carpeta App_Data de la aplicación.

  4. Agregue este nuevo proveedor de identidades al círculo de confianza del Fedlet de .NET.

    Para agregar el nuevo proveedor de identidades a un círculo de confianza existente:

    En el archivo fedlet.cot de la carpeta App_Data de la aplicación, anexe el Id. de entidad del nuevo IDP (indicado por el atributo entityID del archivo de metadatos idp2.xml) al valor del atributo sun-fm-trusted-providers utilizando una coma (,) como separador.

    Para agregar el nuevo proveedor de identidades a un nuevo círculo de confianza:

    1. Cree un archivo nuevo denominado fedlet2.cot en la carpeta App_Data de la aplicación. Utilice el archivo fedlet.cot existente como plantilla. Sin embargo, cambie el valor del atributo cot-name por el nombre del nuevo círculo de confianza (por ejemplo, cot2). Incluya el Id. de entidad del nuevo proveedor de identidades y el del Fedlet como valor del atributo sun-fm-trusted-providers separándolos con una coma (,).

    2. En el archivo sp-extended.xml, agregue el nombre del nuevo círculo de confianza al valor del atributo cotlist. Por ejemplo, para un círculo de confianza denominado cot2:

      <Attribute name="cotlist">
      <Value>saml2cot</Value>
      <Value>cot2</Value>
      </Attribute>
  5. En la carpeta App_Data de la aplicación, cree un nuevo archivo idp2-extended.xml como metadatos ampliados del nuevo proveedor de identidades. Utilice el archivo idp-extended.xml existente como plantilla. Sin embargo, cambie el elemento entityID por el Id. de entidad del nuevo proveedor de identidades. Cambie el valor del atributo cotlist por el nombre del círculo de confianza si se ha creado un nuevo círculo para el proveedor de identidades. Asegúrese de que el proveedor de identidades adicional constituya una identidad remota.

  6. Reinicie el conjunto de aplicaciones asociado a la aplicación del Fedlet de .NET.

  7. El archivo XML de metadatos del Fedlet (sp.xml) debe importarse en el proveedor de identidades adicional y agregarse al mismo círculo de confianza que el de la entidad del proveedor de identidades. Importe el archivo sp.xml en el proveedor de identidades o indique el archivo que debe importarse al administrador del proveedor de identidades.

Compatibilidad del Fedlet de .NET con el servicio de detección del proveedor de identidades (CR 6928524)

En este caso, el Fedlet de .NET se configura con varios proveedores de identidades en un círculo de confianza y desea configurar el Fedlet para que utilice el servicio de detección a fin de determinar el proveedor de identidades preferido.

Debe configurarse el servicio de detección para los proveedores de identidades que se están utilizando con el Fedlet de .NET. Para obtener información sobre cómo configurar el servicio de detección del proveedor de identidades en Oracle OpenSSO 8.0 Update 2, consulte la siguiente colección de documentación: http://docs.sun.com/coll/1767.1.

ProcedurePara configurar el Fedlet de .NET con el objeto de que utilice el servicio de detección del proveedor de identidades:

  1. En el archivo fedlet.cot del Fedlet de .NET, establezca la propiedad sun-fm-saml2-readerservice-url en la URL del servicio de lector SAMLv2. Por ejemplo:

    sun-fm-saml2-readerservice-url=http://discovery.common.com/opensso/saml2reader
  2. Reinicie el conjunto de aplicaciones asociado a la aplicación del Fedlet de .NET.

Problemas generales y soluciones de Oracle OpenSSO Fedlet

Pendiente de desarrollo

Erratas en la documentación

La referencia de la API de Java del Fedlet está disponible en la referencia de la API de Java de Oracle OpenSSO 8.0 Update 2 en la siguiente colección de documentación: http://docs.sun.com/coll/1767.1.


Nota –

El método getPolicyDecisionForFedlet no se admite en la versión OpenSSO 8.0 Update 2.