Propiedades de enlaces y políticas de WSSecurity
Utilice el parámetro attributes para los mandatos setPolicyType y SetBinding para especificar información de configuración adicional para las configuraciones de enlaces y políticas WSSecurity. Los conjuntos de políticas de aplicaciones y del sistema pueden utilizar la configuración de enlaces y políticas de WSSecurity.
Antes e utilizar los mandatos de este tema, verifique que utiliza la versión más reciente de la herramienta wsadmin. Los mandatos de gestión de conjuntos de políticas que aceptan un objeto de propiedades como valor para los parámetros attributes o bindingLocation no se admiten en versiones anteriores de la herramienta wsadmin. Por ejemplo, los mandatos no se ejecutan en un nodo de la versión 6.1.0.x.
- Utilice el parámetro -attributes para los mandatos getPolicyType y getBinding para ver las propiedades de la configuración de las políticas y de enlace. Para obtener un atributo, pase el nombre de la propiedad al mandato getPolicyType o getBinding.
- Utilice el parámetro -attributes para los mandatos setPolicyType y setBinding para añadir, actualizar o eliminar propiedades de las configuraciones de políticas y enlaces. Para añadir o actualizar un atributo, especifique el nombre y el valor de la propiedad. Los mandatos setPolicyType y setBinding actualizan el valor si el atributo existe, o añaden el atributo y el valor si el atributo no existe. Para eliminar un atributo, especifique el valor como serie vacía (""). El parámetro -attributes acepta un objeto de propiedades.
Para dar soporte al entorno de células mezcladas, WebSphere Application Server tiene soporte para enlaces de las versiones 7.0 y 6.1. Los enlaces generales a nivel de célula son específicos para la versión 7.0 y posterior. Los enlaces específicos de aplicación permanecen en la versión que necesita la aplicación. Cuando el usuario crea un enlace específico de aplicación, el servidor de aplicaciones determina la versión del enlace que la aplicación tiene que utilizar.
SignatureProtection.response:
int_body.SignedParts.Body,SignatureProtection.response:int_body.SignedParts.Header_0.Name
y SignatureProtection.response:int_body.SignedParts.Header_0.Namespace
Propiedades de políticas de WSSecurity
- AsymmetricBinding
- Puede especificar cero o una aserción de enlace.
- SymmetricBinding
- Puede especificar cero o una aserción de enlace. AsymmetricBinding y SymmetricBinding no pueden coexistir en un archivo de políticas de seguridad.
- Wss11
- Puede especificar cero o una aserción de Wss11.
- Wss10
- Puede especificar cero o una aserción de Wss10.
- Trust10
- Puede especificar cero o una aserción de Trust10.
- SignatureProtection
- Puede especificar cero o cualquier número de aserciones de protección de firma.
- EncryptionProtection
- Puede especificar cero o cualquier número de aserciones de protección de cifrado.
- SupportingTokens
- Puede especificar cero o cualquier número de aserciones de señales de soporte.
<sp:AsymmetricBinding>
<wsp:Policy>
<sp:InitiatorSignatureToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy
/200512/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssX509V3Token10 />
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:InitiatorSignatureToken>
<sp:RecipientSignatureToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy
/200512/IncludeToken/AlwaysToInitiator">
<wsp:Policy>
<sp:WssX509V3Token10 />
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:RecipientSignatureToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic256/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
</wsp:Policy>
</sp:AsymmetricBinding><sp:AsymmetricBinding>
<wsp:Policy>
<sp:InitiatorSignatureToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy
/200512/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssX509V3Token10 />
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:InitiatorSignatureToken>
<sp:RecipientSignatureToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy
/200512/IncludeToken/AlwaysToInitiator">
<wsp:Policy>
<sp:WssX509V3Token10 />
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:RecipientSignatureToken>
</wsp:Policy>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic256/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
</sp:AsymmetricBinding>
AsymmetricBinding.Layout = Strict
AsymmetricBinding.AlgorithmSuite.Basic256 = true
AsymmetricBinding.RecipientSignatureToken.X509Token_0.IncludeToken = http://docs.oasis-open.org
/ws-sx/ws-securitypolicy/200512/IncludeToken/AlwaysToInitiator
AsymmetricBinding.InitiatorSignatureToken.X509Token_0.WssX509V3Token10 = true
AsymmetricBinding.InitiatorSignatureToken.X509Token_0.IncludeToken = http://docs.oasis-open.org
/ws-sx/ws-securitypolicy/200512/IncludeToken/AlwaysToRecipient
AsymmetricBinding.RecipientSignatureToken.X509Token_0.WssX509V3Token10 = true
<sp:SupportingTokens>
<wsp:Policy wsu:Id="request:custom_auth">
<spe:CustomToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/
ws-securitypolicy/200512/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<spe:WssCustomToken uri=http://bar.com/MyCustomToken localname="tokenv1">
</spe:WssCustomToken>
</wsp:Policy>
</spe:CustomToken>
</wsp:Policy>
</sp:SupportingTokens
SupportingTokens.request:custom_auth.CustomToken_0.WssCustomToken.uri=http://bar.com
/MyCustomToken
SupportingTokens.request:custom_auth.CustomToken_0.IncludeToken=http://docs.oasis-open.org
/ws-sx/ws-securitypolicy/200512/IncludeToken/AlwaysToRecipient
SupportingTokens.request:custom_auth.CustomToken_0.WssCustomToken.localname=tokenv1
- El elemento wsu:IdEste elemento utiliza el valor real para el ID, en lugar de utilizar Id como el nombre de atributo. La siguiente propiedad de ejemplo de archivo de políticas:
El ejemplo wsu:Id anterior devuelve las propiedades siguientes:<wsp:Policy wsu:Id="response:int_body"> <sp:SignedParts> <sp:Body/> </sp:SignedParts> </wsp:Policy>
SignatureProtection.response:int_body.SignedParts.Body = true
- El elemento HeaderDebido a que pueden haber varios elementos Header, se utiliza la anotación Header_n para representar esta propiedad. Consulte el siguiente ejemplo de archivo de políticas:
El ejemplo de Header anterior devuelve las propiedades siguientes:<wsp:Policy wsu:Id="request:conf_body"> <sp:EncryptedParts> <sp:Body/> <sp:Header Name="MyElement" Namespace="http://foo.com/MyNamespace" /> </sp:EncryptedParts> </wsp:Policy>
EncryptionProtection.request:conf_body.EncryptedParts.Header_0.Name=MyElement EncryptionProtection.request:conf_body.EncryptedParts.Header_0.Namespace=http:// foo.com/MyNamespace
- El elemento XPathSe utiliza la anotación XPath_n para representar esta propiedad ya que pueden haber varios elementos XPath. Consulte el siguiente ejemplo de archivo de políticas:
El ejemplo de XPath anterior devuelve las propiedades siguientes:<wsp:Policy wsu:Id="request:int_body"> <sp:SignedElements> <sp:XPath>SomeXPathExpression</sp:XPath> <sp:XPath>SomeOtherXPathExpression</sp:XPath> </sp:EncryptedElements> </wsp:Policy>
SignatureProtection.request:int_body.SignedElements.XPath_0=SomeXPathExpression SignatureProtection.request:int_body.SignedElements.XPath_1=SomeOtherXPathExpression
- El elemento X509Token
Debido a que pueden existir varios elementos X509Token, debe utilizar la anotación X509Tokenn para representar esta propiedad. Para ver un ejemplo, consulte la aserción de AsymmetricBinding.
- El elemento CustomToken
Debido a que pueden existir varios elementos CustomToken, debe utilizar la anotación CustomTokenn para representar esta propiedad. Para ver un ejemplo, consulte la aserción de SupportingTokens.
Propiedades de enlace de WSSecurity
Utilice el mandato getBinding para revisar un objeto de propiedades con las propiedades configuradas en el archivo de enlaces de WSSecurity actual. También puede utilizar la consola administrativa para configurar enlaces de WSSecurity. Para obtener más información, consulte los temas del Information Center relacionados con la configuración de los enlaces de WSSecurity con la consola administrativa.
Las propiedades definidas en esta sección reflejan la jerarquía del esquema de enlaces. Cada parte del nombre de la propiedad es una versión en minúsculas del tipo de esquema. Por ejemplo, la propiedad application.securityinboundbindingconfig.tokenconsumer_0.jaasconfig.configname sigue el formato jerárquico. Los atributos comienzan por application o bootstrap. Los atributos que comienzan por application representan enlaces que están asociados a la política WS-Security principal. Los atributos que comienzan por bootstrap representan los enlaces asociados con la política de rutina de arranque de WS-Security, en los que la política de WS-Security utiliza Secure Conversation.
application.securityinboundbindingconfig.tokenconsumer_0.callbackhandler.
certpathsettings.certstoreref.reference
application.securityinboundbindingconfig.tokenconsumer_0.callbackhandler.
certpathsettings.trustanchorref.reference
application.securityinboundbindingconfig.tokenconsumer_0.callbackhandler.classname
application.securityinboundbindingconfig.tokenconsumer_0.classname
application.securityinboundbindingconfig.tokenconsumer_0.jaasconfig.configname
application.securityinboundbindingconfig.tokenconsumer_0.name
application.securityinboundbindingconfig.tokenconsumer_0.valuetype.localname
application.securityinboundbindingconfig.tokenconsumer_0.valuetype.uri
Adicionalmente, algunas propiedades del archivo de enlaces de seguridad devuelven un valor true cuando se consultan. Para establecer estas propiedades, establezca el valor en true para incluir la propiedad o establezca el valor en una serie vacía ("") para suprimir la propiedad. Por ejemplo, las propiedades de indicación de la hora, nonce y trustAnyCertificate siguen este patrón.
- Para añadir una propiedad, utilice el mandato setBinding para pasar el nombre de la propiedad con un valor de serie de longitud distinta a cero. Para añadir un elemento de lista, utilice la anotación _n para que refleje un valor numérico que sea mayor que cualquier valor numérico actual para la propiedad. Por ejemplo, si las propiedades tokenconsumer_0 y tokenconsumer_1 ya existen en la configuración, especifique la nueva propiedad tokenconsumer como tokenconsumer_2. Después de añadir una propiedad, utilice el mandato getBinding para ver la lista más reciente de propiedades configuradas.
- Para suprimir una propiedad, utilice el mandato setBinding para pasar el nombre de propiedad con una serie vacía (""). Por ejemplo, para suprimir todas las propiedades tokenconsumer_0, especifique la propiedad siguiente con el parámetro attributes:
El ejemplo anterior suprime todas las propiedades que comienzan por el nombre de propiedad application.securityinboundbindingconfig.tokenconsumer_0.application.securityinboundbindingconfig.tokenconsumer_0=""
Los ejemplos siguientes muestran varios conjuntos de propiedades para configurar el enlace. Esta lista no incluye todas las propiedades para configurar el enlace de WSSecurity. Utilice esta información como referencia para determinar cómo se forman los nombres de propiedades específicos.
- Elemento signinginfo
- Utilice esta propiedad para configurar la información de firmas. Para un enlace
personalizado, puede existir un número ilimitado de elementos
signinginfo especificados para las aserciones
securityoutboundbindingconfig y
securityinboundbindingconfig. En los enlaces predeterminados, el
sistema permite un máximo de dos elementos signinginfo para las
aserciones securityoutboundbindingconfig y
securityinboundbindingconfig.
El ejemplo siguiente muestra el formato de los dos elementos signinginfo:
application.securityinboundbindingconfig.signinginfo_0.signingkeyinfo_0 .reference=con_signkeyinfo application.securityinboundbindingconfig.signinginfo_0.signingpartreference_0 .reference=request:int_body application.securityoutboundbindingconfig.signinginfo_0.signingpartreference_0 .reference=response:int_body application.securityoutboundbindingconfig.signinginfo_0.signingpartreference_0.timestamp=true
- Elemento encryptioninfo
- Utilice esta propiedad para configurar la información de cifrado. Para un enlace personalizado, puede existir un número ilimitado de elementos encryptioninfo especificados para las confirmaciones securityoutboundbindingconfig y securityinboundbindingconfig. En los enlaces predeterminados, el sistema acepta un máximo de dos elementos encryptioninfo para las aserciones securityoutboundbindingconfig y securityinboundbindingconfig.
El ejemplo siguiente muestra el formato de los dos elementos encryptioninfo:
application.securityinboundbindingconfig.encryptioninfo_0.encryptionpartreference .nonce=true application.securityinboundbindingconfig.encryptioninfo_0.encryptionpartreference .reference=request:conf_body application.securityoutboundbindingconfig.encryptioninfo_0.encryptionpartreference .nonce=true application.securityoutboundbindingconfig.encryptioninfo_0.encryptionpartreference .timestamp=true
- Elemento tokengenerator
- En los enlaces predeterminados, los elementos tokengenerator a los que no hacen referencia los elementos signinginfo o encryptioninfo se consideran generadores de señales de autenticación.
Cada generador de señales de autenticación debe tener un elemento valuetype exclusivo.
El ejemplo siguiente muestra un ejemplo de un generador para una señal de protección X.509:
application.securityoutboundbindingconfig.tokengenerator_0.name=gen_signtgen application.securityoutboundbindingconfig.tokengenerator_0.classname=com.ibm.ws.wssecurity.wssapi.token .impl.CommonTokenGenerator application.securityoutboundbindingconfig.tokengenerator_0.valuetype.uri= application.securityoutboundbindingconfig.tokengenerator_0.valuetype.localname=http://docs.oasis-open.org /wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3 application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.classname=com.ibm.websphere.wssecurity .callbackhandler.X509GenerateCallbackHandler application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.key.alias=soaprequester application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.key.keypass={xor}PDM2OjEr application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.key.name=CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.keystore.path=${USER_INSTALL_ROOT} /etc/ws-security/samples/dsig-sender.ks application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.keystore.storepass={xor}PDM2OjEr application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.keystore.type=JKS application.securityoutboundbindingconfig.tokengenerator_0.jaasconfig.configname=system.wss.generate.x509
el siguiente ejemplo muestra un generador para una señal de autenticación de nombre de usuario:application.securityoutboundbindingconfig.tokengenerator_1.name=gen_usernametoken application.securityoutboundbindingconfig.tokengenerator_1.classname=com.ibm.ws.wssecurity .wssapi.token.impl.CommonTokenGenerator application.securityoutboundbindingconfig.tokengenerator_1.valuetype.uri= application.securityoutboundbindingconfig.tokengenerator_1.valuetype.localname=http://docs .oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken application.securityoutboundbindingconfig.tokengenerator_1.callbackhandler.classname=com.ibm .websphere.wssecurity.callbackhandler.UNTGenerateCallbackHandler application.securityoutboundbindingconfig.tokengenerator_1.callbackhandler.basicAuth.userid=user1 application.securityoutboundbindingconfig.tokengenerator_1.callbackhandler.basicAuth.password=myPassword application.securityoutboundbindingconfig.tokengenerator_1.securityTokenReference.reference=request:uname_token application.securityoutboundbindingconfig.tokengenerator_1.jaasconfig.configname=system.wss.generate.unt
- Elemento tokenconsumer
- En los enlaces predeterminados, los elementos tokenconsumer a los que no hacen
referencia los elementos signinginfo o encryptioninfo son consumidores de
señales de autenticación. Cada consumidor de señales de autenticación debe tener un elemento valuetype exclusivo.
El ejemplo siguiente muestra el formato de los dos elementos tokenconsumer:
application.securityinboundbindingconfig.tokenconsumer_0.name=con_unametoken application.securityinboundbindingconfig.tokenconsumer_0.classname=com.ibm.ws.wssecurity.wssapi .token.impl.CommonTokenConsumer application.securityinboundbindingconfig.tokenconsumer_0.valuetype.localname=http://docs.oasis-open.org /wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken application.securityinboundbindingconfig.tokenconsumer_0.valuetype.uri= application.securityinboundbindingconfig.tokenconsumer_0.callbackhandler.classname=com.ibm.websphere .wssecurity.callbackhandler.UNTConsumeCallbackHandler application.securityinboundbindingconfig.tokenconsumer_0.jaasconfig.configname=system.wss.consume.unt application.securityinboundbindingconfig.tokenconsumer_0.securitytokenreference.reference=request:uname_token
- Elemento actor
- Define el URI (Uniform Resource Identifier) del actor que se ha de incluir en las cabeceras de
WSSecurity de un mensaje generado, como se muestra en el ejemplo siguiente:
application.securityinboundbindingconfig.actor=http://myActor.com application.securityoutboundbindingconfig.actor=http://myActor.com
- Elemento certstorelist
- Define las configuración del almacén de certificados y la información de firmas, como se muestra en el ejemplo siguiente:
application.securityinboundbindingconfig.certstorelist.collectioncertstores_0 .name=DigSigCertStore application.securityinboundbindingconfig.certstorelist.collectioncertstores_0 .provider=IBMCertPath application.securityinboundbindingconfig.certstorelist.collectioncertstores_0 .x509certificates_0.path=${USER_INSTALL_ROOT}/etc/ws-security/samples/intca2.cer
- Elemento keyinfo
- Define la información de claves para las configuraciones de firmas y cifrado, como se muestra en el ejemplo siguiente:
application.securityinboundbindingconfig.keyinfo_0.classname=com.ibm.ws.wssecurity.wssapi .CommonContentConsumer application.securityinboundbindingconfig.keyinfo_0.name=con_signkeyinfo application.securityinboundbindingconfig.keyinfo_0.tokenreference.reference=con_tcon application.securityinboundbindingconfig.keyinfo_0.type=STRREF
- Propiedad trustanchor
- Define la información de configuración que se utiliza para validar la confianza del certificado de firmante, como se muestra en el ejemplo siguiente:
application.securityinboundbindingconfig.trustanchor_0.keystore.path=${USER_INSTALL_ROOT} /etc/ws-security/samples/dsig-receiver.ks application.securityinboundbindingconfig.trustanchor_0.keystore.storepass={xor}LDotKTot application.securityinboundbindingconfig.trustanchor_0.keystore.type=JKS application.securityinboundbindingconfig.trustanchor_0.name=DigSigTrustAnchor
- Elemento timestampexpires
- Define una fecha de caducidad para la configuración, como se muestra en el ejemplo siguiente:
application.securityoutboundbindingconfig.timestampexpires.expires=5
- application.securityinboundbindingconfig.caller_X.order
- Especifica el orden de un interlocutor cuando se utilizan scripts wsadmin, donde X es la única serie que identifica la instancia del interlocutor:
-attributes [[application.securityinboundbindingconfig.caller_0.order 2]]
Ejemplos de los mandatos setPolicyType y setBinding
Utilice la información de consulta anterior con los mandatos setPolicyType y setBinding para modificar los datos de configuración de enlaces y políticas.

AdminTask.setBinding('[-bindingLocation "" -bindingName cellWideBinding2 -policyType
WSSecurity
-attributes [[application.securityinboundbindingconfig.caller_0.order 2][inResponsewithSSL:configAlias NodeDefaultSSLSettings]
[inResponsewithSSL:config properties_directory/ssl.client.props]
[outAsyncResponsewithSSL:configFile properties_directory/ssl.client.props]
[outAsyncResponsewithSSL:configAlias NodeDefaultSSLSetings]
[outRequestwithSSL:configFile properties_directory/ssl.client.props]
[outRequestwithSSL:configAlias NodeDefaultSSLSettings]]]')
AdminTask.setPolicyType('-policySet myPolicySet -policyType WSSecurity -attributes
"[[enabled true][provides
Una_cantidad_de_seguridad][SignatureProtection.request:app_signparts.SignedElements.XPath_0
SignatureProtectionV2]]"')
AdminTask.setBinding('-policyType WSSecurity -bindingLocation "[[server server1][node
node01]]"
-attributes "[[application.securityinboundbindingconfig.keyinfo_0.name dec_server_keyinfo]
[application.securityinboundbindingconfig.keyinfo_0.classname
com.ibm.ws.wssecurity.wssapi.CommonContentGenerator]
[application.securityinboundbindingconfig.keyinfo_0.type STRREF]]"')
AdminTask.setBinding('-policyType WSSecurity -bindingLocation "[[application PolicySet]
[attachmentId 999]]"
-attributes "[[application.securityinboundbindingconfig.keyinfo_0.name dec_app_keyinfo]
[application.securityinboundbindingconfig.keyinfo_0.classname
com.ibm.ws.wssecurity.wssapi.CommonContentGenerator]
[application.securityinboundbindingconfig.keyinfo_0.type STRREF]]" -attachmentType application
-bindingName myBindingName')
AdminTask.setBinding('-policyType WSSecurity -bindingLocation "" -attributes
"[application.securityinboundbindingconfig.trustanchor_0.name DigSigTrustAnchor2]"')