Propriedades de Ligação e Política do WSSecurity
Utilize o parâmetro attributes dos comandos setPolicyType e setBinding para especificar informações de configuração adicionais para as configurações de ligação e política do WSSecurity. Os conjuntos de políticas de aplicativo e de sistema podem usar a configuração de ligação e de política do WSSecurity.
Antes de utilizar os comandos neste tópico, verifique se você está utilizando a versão mais recente da ferramenta wsadmin. Os comandos de gerenciamento de conjunto de política que aceitam um objeto propriedades como valor para os parâmetros attributes ou bindingLocation não são suportados nas versões anteriores da ferramenta wsadmin. Por exemplo, os comandos não são executados em um nó da Versão 6.1.0.x.
- Use o parâmetro -attributes para os comandos getPolicyType e getBinding para visualizar as propriedades para a configuração de política e ligação. Para obter um atributo, transmita o nome da propriedade para o comando getPolicyType ou getBinding.
- Use o parâmetro -attributes para os comandos setPolicyType e setBinding para incluir, atualizar ou remover propriedades das configurações de política e ligação. Para incluir ou atualizar um atributo, especifique o nome da propriedade e o valor. Os comandos setPolicyType e setBinding atualizarão o valor se o atributo existir, ou incluirão o atributo e o valor se o atributo não existir. Para remover um atributo, especifique o valor como uma cadeia vazia (""). O parâmetro -attributes aceita um objeto de propriedades.

Para suportar um ambiente de célula mista, o WebSphere Application Server suporta ligações de Versão 7.0 e Versão 6.1. As ligações gerais no nível da célula são específicas à Versão 7.0 e posterior e as ligações específicas do aplicativo permanecem na versão que aplicativo requer. Quando o usuário cria uma ligação específica do aplicativo, o servidor de aplicativos determina a versão de ligação exigida para uso do aplicativo.
SignatureProtection.response:
int_body.SignedParts.Body,SignatureProtection.response:int_body.SignedParts.Header_0.Name
e a SignatureProtection.response:int_body.SignedParts.Header_0.Namespace
Propriedades de Política do WSSecurity
- AsymmetricBinding
- Você não pode especificar uma asserção de ligação ou pode especificar apenas uma.
- SymmetricBinding
- Você não pode especificar uma asserção de ligação ou pode especificar apenas uma. AsymmetricBinding e SymmetricBinding não podem coexistir em um arquivo de políticas de segurança.
- Wss11
- Você não pode especificar uma asserção Wss11 ou pode especificar apenas uma.
- Wss10
- Você não pode especificar uma asserção Wss10 ou pode especificar apenas uma.
- Trust10
- Você não pode especificar uma asserção Trust10 ou pode especificar apenas uma.
- SignatureProtection
- Você não pode especificar nenhuma asserção de proteção de assinatura ou pode especificar qualquer número de asserções de proteção de assinatura.
- EncryptionProtection
- Você não pode especificar nenhuma asserção de proteção de criptografia ou pode especificar qualquer número de asserções de proteção de criptografia.
- SupportingTokens
- Você não pode especificar nenhuma asserção de token de suporte ou pode especificar qualquer número de asserções de token de suporte.
<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
- O elemento wsu:IdEsse elemento utiliza o valor real para o ID, em vez de utilizar Id como o nome do atributo. A seguinte propriedade de exemplo de arquivo de políticas:
O exemplo wsu:Id anterior retorna as seguintes propriedades:<wsp:Policy wsu:Id="response:int_body"> <sp:SignedParts> <sp:Body/> </sp:SignedParts> </wsp:Policy>
SignatureProtection.response:int_body.SignedParts.Body = true
- O elemento HeaderComo pode haver vários elementos Header, a notação Header_n é utilizada para representar essa propriedade. Consulte o seguinte exemplo de arquivo de políticas:
O exemplo Header anterior retorna as seguintes propriedades:<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
- O elemento XPathThe XPath_n notation is used to represent this property because there can be multiple XPath elements. Consulte o seguinte exemplo de arquivo de políticas:
O exemplo XPath anterior retorna as seguintes propriedades:<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
- O elemento X509Token
Utilize a notação X509Token_n para representar essa propriedade porque vários elementos X509Token podem existir. Para obter um exemplo, consulte a asserção AsymmetricBinding.
- O elemento CustomToken
Utilize a notação CustomToken_n para representar essa propriedade porque vários elementos CustomToken podem existir. Para obter um exemplo, consulte a asserção SupportingTokens.
Propriedades de Ligação do WSSecurity
Utilize o comando getBinding para revisar um objeto properties com as propriedades que estão configuradas na configuração de ligação atual do WSSecurity. É possível também utilizar o console administrativo para configurar as ligações do WSSecurity. Utilize os tópicos do centro de informações para configurar as ligações do WSSecurity com o console administrativo para obter mais informações.
As propriedades definidas nesta seção refletem a hierarquia do esquema de ligação. Cada parte do nome da propriedade é uma versão em letra minúscula do tipo de esquema. Por exemplo, a propriedade application.securityinboundbindingconfig.tokenconsumer_0.jaasconfig.configname segue o formato hierárquico. Os atributos começam com application ou bootstrap. Os atributos que começam com application representam ligações que estão associadas à política principal do WS-Security. Os atributos que começam com bootstrap representam ligações que estão associadas à política de auto-inicialização do WS-Security, em que a política do WS-Security utiliza Conversação Segura.
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
Além disso, algumas propriedades no arquivo de ligação de segurança retornam um valor true quando consultadas. Para configurar essas propriedades, configure o valor como true para incluir a propriedade ou como o valor para uma cadeia vazia ("") para remover a propriedade. Por exemplo, as propriedades time stamp, nonce e trustAnyCertificate seguem este padrão.
- Para incluir uma propriedade, utilize o comando setBinding para transmitir o nome da propriedade com um valor de cadeia de comprimento diferente de zero. Para incluir um item da lista, utilize a notação _n para refletir um valor numérico que seja maior que qualquer valor numérico atual para a propriedade. Por exemplo, se as propriedades tokenconsumer_0 e tokenconsumer_1 existirem em sua configuração, especifique a nova propriedade tokenconsumer como tokenconsumer_2. Depois de incluir uma propriedade, utilize o comando getBinding para visualizar a lista mais recente de propriedades configuradas.
- Para remover uma propriedade, utilize o comando setBinding para transmitir o nome da propriedade com uma cadeia vazia (""). Por exemplo, para remover todas as propriedades tokenconsumer_0, especifique a seguinte propriedade com o parâmetro attributes:
O exemplo anterior remove todas as propriedades que começam com o nome da propriedade application.securityinboundbindingconfig.tokenconsumer_0.application.securityinboundbindingconfig.tokenconsumer_0=""
Os exemplos a seguir exibem vários conjuntos de propriedades a serem configurados para a ligação. Esta lista não inclui todas as propriedades a serem configuradas para a ligação do WSSecurity. Utilize estas informações como uma referência para determinar como formatar nomes de propriedade específicos.
- Elemento signinginfo
- Utilize essa propriedade para configurar informações sobre assinatura. Para uma ligação customizada, pode existir um número ilimitado de elementos signinginfo especificado para as asserções securityoutboundbindingconfig e securityinboundbindingconfig. Nas ligações padrão, o sistema permite um máximo de dois elementos signinginfo para as asserções securityoutboundbindingconfig e securityinboundbindingconfig. O exemplo a seguir exibe o formato para dois 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
- Utilize essa propriedade para configurar informações sobre criptografia. Para uma ligação customizada, pode existir um número ilimitado de elementos encryptioninfo especificado para as asserções securityoutboundbindingconfig e securityinboundbindingconfig. Nas ligações padrão, o sistema aceita um máximo de dois elementos encryptioninfo para as asserções securityoutboundbindingconfig e securityinboundbindingconfig. O exemplo a seguir exibe o formato para duas propriedades 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
- Nas ligações padrão, os elementos tokengenerator a que os elementos signinginfo ou encryptioninfo não fazem referência são considerados para serem geradores de token de autenticação. Cada gerador de token de autenticação deve ter um elemento valuetype exclusivo. O exemplo a seguir exibe um exemplo de um gerador para um token de proteção 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
O exemplo a seguir exibe um gerador para um token de autenticação de nome do usuário: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
- Nas ligações padrão, os elementos tokenconsumer a que os elementos signinginfo ou encryptioninfo não fazem referência são consumidores de token de autenticação. Cada consumidor de token de autenticação deve ter um elemento valuetype exclusivo. O exemplo a seguir exibe o formato para um conjunto de 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 o URI (Identificador Uniforme de Recursos) do ator a ser incluído nos cabeçalhos do WSSecurity de uma mensagem gerada, conforme exibido pelo seguinte exemplo:
application.securityinboundbindingconfig.actor=http://myActor.com application.securityoutboundbindingconfig.actor=http://myActor.com
- Elemento certstorelist
- Define configurações de armazenamento de certificados e informações sobre assinatura, conforme exibido pelo seguinte exemplo:
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 informações chave para configurações de assinatura e criptografia, conforme exibido pelo seguinte exemplo:
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
- Propriedade trustanchor
- Define as informações de configuração que são utilizadas para validar a confiança do certificado do signatário, conforme exibido pelo exemplo a seguir:
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 uma data de expiração para a configuração, conforme exibido pelo seguinte exemplo:
application.securityoutboundbindingconfig.timestampexpires.expires=5
- application.securityinboundbindingconfig.caller_X.order
- Especifica a ordem para um responsável pela chamada ao utilizar scripts wsadmin, em que X é
a cadeia exclusiva que identifica a instância do responsável pela chamada:
-attributes [[application.securityinboundbindingconfig.caller_0.order 2]]
Exemplos de Comando setPolicyType e setBinding
Utilize as informações de referência anteriores com os comandos setPolicyType e setBinding para modificar os dados de configuração de ligação e de política.

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
Some_amount_of_security][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]"')