Propiedades de configuración del emisor de SAML
Cuando cree una señal SAML autoemitida, puede especificar propiedades de configuración para controlar cómo se configura la señal. Las propiedades de configuración son pares de nombre/valor que describen información del lado del proveedor, como la ubicación de emisor y las vías de acceso de archivo almacén de claves y de almacén de confianza.
Las propiedades de configuración del emisor de SAML pueden almacenarse en un archivo de propiedades llamado SAMLIssuerConfig.properties. El archivo SAMLIssuerConfig.properties está en desuso en WebSphere Application Server versión 8.
A partir de WebSphere Application Server versión 8, también puede especificar estas propiedades en enlaces de política seguridad de servicios Web o en las API (interfaz de programación de aplicaciones) WSSGenerationContext de WSS (seguridad de servicios Web).
En la consola administrativa, las propiedades se establecen en las Propiedades personalizadas de salida de seguridad de servicios Web. Una ruta de ejemplo es
. También puede establecer las propiedades en los enlaces de política de seguridad de servicios Web mediante la tarea administrativa setSAMLIssuerConfigInBinding. Para obtener más información, consulte Gestión de la configuración de señales autoemitidas SAML utilizando mandatos de wsadmin.En los enlaces de WS-Security, estas propiedades también pueden establecerse en el consumidor de señales SAML o el manejador de devolución de llamada del consumidor de señales SAML. La prioridad, de mayor a menor, es: manejador de devolución de llamada, consumidor de señales, propiedades personalizadas generales.
- Generar la señal autoemitida a partir de cero.
- Generar la señal autoemitida basándose en una señal ya existente en el sujeto runAs. Si no hay ninguna señal presente en el sujeto, la señal se creará a partir de cero.

Si se utiliza el generador de señales SAML para autoemitir una señal SAML utilizando las WSSAPI, las propiedades personalizadas se añaden directamente a com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext utilizando un HashMap. Consulte el javadoc correspondiente a com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext para obtener más información.
Si va a crearse una señal SAML autoemitida mediante la WSSAPI com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory, el método SAMLTokenFactory.newDefaultProviderConfig() devuelve un objeto com.ibm.wsspi.wssecurity.saml.config.ProviderConfig que contiene valores de objeto establecidos en las propiedades especificadas en el archivo SAMLIssuerConfig.properties. Si no se especifica ningún archivo SAMLIssuerConfig.properties, que es el tipo de programación recomendado, se devolverá un objeto ProviderConfig con contenido vacío. Utilice métodos de establecimiento ProviderConfig para llenar su contenido. Consulte el javadoc de com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory para obtener más información.
Ubicación del archivo SAMLIssuerConfig.properties
En cada servidor se crea y se almacena un solo archivo de configuración, SAMLIssuerConfig.properties, que contiene las propiedades del lado del proveedor. En un servidor WebSphere, el archivo está ubicado en el repositorio a nivel de servidor o en el repositorio a nivel de célula. En un entorno que no está basado en WebSphere, la ubicación del archivo la define una propiedad del sistema Java™. El nombre de esta propiedad es com.ibm.webservices.wssecurity.platform.SAMLIssuerConfigDataPath.
Por ejemplo, la ubicación del archivo en el nivel de servidor en un servidor WebSphere es: raíz_servidor_aplicaciones/profiles/$PROFILE/config/cells/$CELLNAME/nodes/$NODENAME/servers/$SERVERNAME/SAMLIssuerConfig.properties
La ubicación del archivo en el nivel de célula en un servidor WebSphere es: raíz_servidor_aplicaciones/profiles/$PROFILE/config/cells/$CELLNAME/sts/SAMLIssuerConfig.properties
Propiedades de la señal SAML
Nombre de propiedad de SAMLIssuerConfig.properties | Nombre de la propiedad de enlaces de política | Valor de propiedad de ejemplo | Descripción de la propiedad |
---|---|---|---|
com.ibm.wsspi.wssecurity.dsig.oldEnvelopedSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.oldEnvelopedSignature | true | Utilícese solamente si está estableciendo la propiedad personalizada de JVM com.ibm.wsspi.wssecurity.dsig.enableEnvelopedSignatureProperty en true. Consulte el tema Propiedades personalizadas de la máquina virtual Java (JVM) si desea una descripción del momento en que puede utilizar esta propiedad personalizada de JVM. |
IssuerFormat | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerFormat | urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName | Valor para el atributo Format del elemento Emisor en la señal SAML. Nota: Si desea añadir el atributo Format al elemento Emisor, deberá especificar esta propiedad.
|
IssuerURI | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerURI | http://www.websphere.ibm.com/SAML/SelfIssuer | URI del emisor. |
TimeToLiveMilliseconds | com.ibm.wsspi.wssecurity.saml.config.issuer.TimeToLiveMilliseconds | 3600000 | Periodo de tiempo antes de que caduque la señal. Esta propiedad se utiliza para establecer los atributos de NotOnOrAfter en la señal. NotOnOrAfter se establece en (horaActual)+TiempoDeVida+(desfaseHorarioActual). |
KeyStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreRef | name=myKeyStoreRef managementScope=(cell):myCell:(node):myNode | Una referencia a un almacén de claves gestionado en security.xml que contiene la clave de firma. |
KeyStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePath | raíz_servidor_aplicaciones/etc/ws-security/samples/dsig-receiver.ks | La ubicación del archivo de almacén de claves que contiene la clave de firma. Nota: Debe modificar el valor predeterminado para que coincida con la ubicación de vía
de acceso para el sistema.
|
KeyStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreType | JKS | El tipo de almacén de claves. |
KeyStorePassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePassword | contraseña | La contraseña del archivo de almacén de claves (la contraseña debe estar codificada con XOR). Para obtener más información, consulte la codificación de contraseñas en archivos. |
KeyAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyAlias | soapprovider | Alias de la clave privada de firma según se define en el archivo de almacén de claves. |
KeyName | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyName | CN=SOAPProvider, OU=TRL, O=IBM, ST=Kanagawa, C=JP | Nombre de la clave privada de firma según se define en el archivo de almacén de claves. Este nombre es para referencia y no se evalúa en tiempo de ejecución. |
KeyPassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyPassword | contraseña | La contraseña de la clave privada tal como se ha definido en el archivo de almacén de claves (la contraseña debe estar codificada con XOR). |
TrustStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreRef | name=myTrustStoreRef managementScope=(cell):myCell:(node):myNode | Una referencia a un almacén de claves gestionado en security.xml que contiene el certificado de cifrado. |
TrustStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePath | raíz_servidor_aplicaciones/etc/ws-security/samples/dsig-receiver.ks | La ubicación del archivo de almacén que contiene el certificado de cifrado. Nota: Debe modificar el valor predeterminado para que coincida con la ubicación de vía
de acceso para el sistema.
|
TrustStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreType | JKS | El tipo de almacén del archivo de almacén que contiene el certificado de cifrado. |
Contraseña de almacén de confianza | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePassword | contraseña | La contraseña del archivo de almacén que contiene el certificado de cifrado. |
AttributeProvider | com.ibm.wsspi.wssecurity.saml.config.issuer.AttributeProvider | com.mycompany.SAML.AttributeProviderImpl | Clase de implementación del proveedor de atributo. Nota: La clase debe implementar javax.security.auth.callback.CallbackHandler.
La clase debe recibir el objeto de devolución de llamada com.ibm.websphere.wssecurity.callbackhandler.Saml20AttributeCallback o com.ibm.websphere.wssecurity.callbackhandler.Saml11AttributeCallback y, a continuación, actualizar la lista SAMLAttribute recibida del método getSAMLAttributes invocado desde ese objeto.
Para obtener más información, consulte la sección Adición de atributos a señales SAML autoemitidas mediante la API. |
EncryptingAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptingAlias | soaprecipient | La entrada en el archivo de almacén proporcionado en la propiedad TrustStore que contiene el certificado público que se utilizará para cifrar la señal SAML. Cuando se genera una señal autoemitida con las API, un alias establecido en RequesterConfig utilizando el método setKeyAliasForAppliesTo tendrá prioridad sobre el valor proporcionado para esta propiedad. |
EncryptSAML | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptSAML | true | Establezca esta propiedad en true si desea generar una señal SAML cifrada. El valor predeterminado para esta propiedad es false. Cuando genera una señal autoemitida con las API, también puede indicar que desea cifrar la señal SAML utilizando el método setEncryptSAML(true) en el objeto RequesterConfig. La señal SAML se cifrará si setEncryptSAML=true en el objeto RequesterConfig o si la propiedad personalizada EncryptSAML se establece en true. |
NameIDProvider | com.ibm.wsspi.wssecurity.saml.config.issuer.NameIDProvider | com.mycompany.SAML.NameIDProviderImpl | Clase de implementación del proveedor de ID de nombre. Nota: La clase debe implementar javax.security.auth.callback.CallbackHandler.
La clase debe recibir el objeto de devolución de llamada com.ibm.websphere.wssecurity.callbackhandler.NameIDCallback y, a continuación, llamar al método setSAMLNameID en ese objeto para actualizar NameID.
Para obtener más información, consulte la sección Personalización de NameID para señales SAML autoemitidas mediante la API. |
UseSha2ForSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.UseSha2ForSignature | true | Establezca esta propiedad en true para utilizar el algoritmo de firma SHA-2, http://www.w3.org/2001/04/xmldsig-more#rsa-sha256, cuando se firme la señal SAML. |
Ejemplo
Consulte el ejemplo siguiente de un archivo de propiedades de configuración de señal SAML:IssuerURI=http://www.websphere.ibm.com/SAML/SelfIssuer
TimeToLiveMilliseconds=3600000
KeyStorePath=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-receiver.ks
KeyStoreType=JKS
KeyStorePassword={xor}LDotKTot
KeyAlias=soapprovider
KeyName=CN=SOAPProvider, OU=TRL, O=IBM, ST=Kanagawa, C=JP
KeyPassword={xor}LDotKTot
TrustStorePath=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-receiver.ks
TrustStoreType=JKS
TrustStorePassword={xor}LDotKTot