A linguagem SAML (Security Assertion Markup Language), desenvolvida pelo Security Services Technical Committee (SSTC) da organização de normas OASIS, oferece uma solução promissora para conexão única (SSO) via Web; também tem potencial para uso em autenticação e autorização de processos de negócios de ponta a ponta que abrangem vários sistemas. Na SSO, o usuário pode acessar diversos aplicativos da Web sem ter que se reautenticar em cada um deles. Um token SAML é emitido para o cliente pelo STS, com o qual o provedor de aplicativos da Web tem um relacionamento de confiança.
Este artigo mostra como configurar a comunicação segura usando o perfil de token SAML com o IBM® O WebSphere® Application Server V7 (de agora em diante chamado de Application Server) servindo de host para cliente e servidor de serviço da Web, e o WebSphere Message Broker V7 (de agora em diante chamado de Message Broker) agindo como barramento de serviço corporativo para mediar a comunicação de aplicativo e assegurar que os requisitos de segurança sejam cumpridos. O Message Broker e o Application Server usam o IBM Tivoli® Federated Identity Manager V6.2 (de agora em diante chamado de Identity Manager) como STS.
O Application Server introduziu o suporte a tokens de segurança SAML no V7 Fix Pack 7, e o Message Broker introduziu o recurso de passagem SAML na V7 Fix Pack 1. Este artigo mostra como configurar conjuntos de políticas e ligações para tokens SAML 2.0 assinados ou não com o método de confirmação sujeito ao portador. Veremos também como desenvolver cadeias confiáveis apropriadas em um STS para emitir tokens SAML com o método de confirmação sujeito ao portador, usando STS. A comunicação entre o cliente e o STS ocorre por SSL (Secure Socket Layer), e também veremos como configurá-la. Depois de vermos essas etapas, estaremos preparados para usar aplicativos seguros com o perfil SAML 2.0.
Antes de começar com a configuração, devemos entender como um token SAML flui do STS para o cliente e provedor de serviço da Web, como mostrado na Figura 1. O cliente e o provedor podem ser desenvolvidos no Application Server ou no Message Broker.
Figura 1. Fluxo do token SAML do STS para o cliente e provedor de serviço da Web

Como mostrado na Figura 1, o cliente envia uma solicitação WS-Trust para o STS emitir o token SAML. O cliente envia então a solicitação de serviço da Web ao provedor no Application Server ou Message Broker, juntamente com o token SAML recebido do STS. No Application Server, o provedor valida as informações no token SAML, como o tempo de expiração, assinatura, e assim por diante, antes de processar sua lógica de negócios. No Message Broker, o provedor faz uma chamada para o STS para validar o token SAML, visto que ele não pode executar a validação ele mesmo. O token SAML sempre flui em um sentido, do cliente ao provedor. Para que esses fluxos de comunicação funcionem corretamente, é preciso configurar os diversos componentes do sistema mostrados na Figura 1. As seções a seguir mostram como fazer isso.
Configurando a comunicação entre o Application Server e o STS
Para começar, é preciso configurar a comunicação entre o Application Server e o STS para que o STS emita um token de segurança. Primeiro, é preciso configurar os conjuntos de políticas e as ligações, além da comunicação SSL.
- No console do Application Server, navegue até Services => Policy sets => Application policy sets.
- Selecione Username WSHTTPS default e clique em Copy.
- Digite um nome exclusivo ― SampleUsernameWSHTTPS, neste exemplo ― e clique em OK.
- Clique em SampleUsernameWSHTTPS => WS-Security => Main policy.
- A Figura 2 mostra a caixa de diálogo das políticas de segurança de mensagens que veremos a seguir. Desmarque Message level protection e clique em Apply:
Figura 2. Estabelecendo políticas de segurança de mensagens

- Salve as mudanças clicando em Save.
- No console do Application Server, navegue até Applications => Application Types => WebSphere enterprise applications => your_application_deployed => Service client policy sets and bindings.
A Figura 3 mostra a janela para configurar as propriedades do aplicativo implementado, com o link adequado em destaque:
Figura 3. Configurando propriedades de serviço da Web

- Marque a caixa correspondente ao seu serviço de aplicativo.
- No menu suspenso Attach Client Policy Set , escolha SampleUsernameWSHTTPS.
- Marque a caixa correspondente ao seu serviço de aplicativo.
- No menu suspenso Assign Binding , escolha New Application Specific Binding, como mostrado na Figura 4:
Figura 4. Selecionando uma ligação específica de aplicativo

- Sua tela deve agora estar parecida como a Figura 5 abaixo, onde se podem configurar propriedades de ligação específicas do aplicativo. Digite um nome adequado sob Bindings e um nome de configuração, como NewHttpS.
- Selecione WS-Security no menu suspenso Add .
Figura 5. Configurando políticas de ligação específicas do aplicativo

- Clique em Authentication and protection e depois selecione Authentication tokens => request:uname_token, como mostra a Figura 6:
Figura 6. Configurando um token em uma ligação específica do aplicativo

- Aparecerá a tela mostrada na Figura 7, com as informações importantes preenchidas. Clique em Apply e, a seguir, clique em Callback handler.
Figura 7. Gerador de token

- A Figura 8 mostra a próxima tela. Digite o nome de usuário e a senha para autenticar com o STS que estará usando.
- Clique em OK e, a seguir, clique em Save:
Figura 8. Concluindo as etapas de ligação específicas do aplicativo

- Navegue até Security => SSL certificate and key management => Manage endpoint security configurations => node endpoint (ou server endpoint).
- Clique em Key stores and certificates e, a seguir, clique em NodeDefaultTrustStore, como mostrado na Figura 9:
Figura 9. Selecionando um armazenamento de confiança para keystores e certificados

- Agora deve aparecer a janela para recuperar os certificados assinados do Identity Manager, como mostrado na Figura 10. Clique em Sign certificates e, a seguir, clique em Retrieve from port.
- Digite o host apropriado, a porta e o nome de alias, e depois clique em Retrieve Signer Information.
- Clique em Apply e em Save.
Figura 10. Recuperar o certificado de assinatura do Identity Manager

- Navegue até Applications => Application Types => WebSphere enterprise applications => your_application_deployed => Service client policy sets and bindings.
- Marque o quadro correspondente ao serviço e clique em Detach Client Policy Set.
Configurando a comunicação entre o cliente o serviço da Web no Application Server
Você precisa criar conjuntos de políticas e ligações adequados a fim de implementar comunicações seguras SAML entre seu cliente e seu serviço da Web. O cliente e o serviço terão o mesmo conjunto de políticas, enquanto as ligações dos dois serão diferentes. Comece criando os conjuntos de políticas SAML 2.0:
- No console do Application Server, navegue até Services => Policy sets => Application policy sets.
- Selecione SAML20 Bearer WSSecurity default e clique em Copy.
- Digite um nome exclusivo ― SAML20BearerPolicySet, neste exemplo ― e clique em OK.
- Clique em SAML20BearerPolicySet => WS-Security => Main policy.
- Desmarque Message Level Protection e clique em Apply.
- Salve as alterações.
A seguir, é preciso criar ligações de conjuntos de políticas SAML 2.0 para o cliente.
- No console do Application Server, navegue até Services => Policy sets => General client policy set bindings.
- Selecione SAML Bearer Client Sample e clique em Copy.
- Digite um nome exclusivo ― SAML20BearerClientBinding, neste exemplo ― e clique em OK.
- Clique em Saml20BearerHttpSClientPSB => WS-Security => Authentication and protection.
- Em Authentication Tokens, clique em gen_saml20token.
- Clique em Callback handler.
- Em Basic Authentication, digite os detalhes de autenticação para se comunicar com o STS.
- Em Custom Properties, edite:
- stsURI para apontar para o caminho completo do host STS. Se não for preciso configurar o SSL, o stsURI deve apontar para uma porta não SSL, como http://<stshost>:9080/.....
- wstrustClientPolicy e wstrustClientBinding para apontar para o conjunto de políticas e ligação criados anteriormente para comunicação com o STS.
- Clique em Apply e, em seguida, em Save A tela deve ser parecida à Figura 11:
Figura 11. Configurando o manipulador de retorno de chamada de gen_saml20token

Agora é preciso criar mais ligações de conjuntos de políticas SAML 2.0, desta vez para o serviço da Web.
- No console do Application Server, navegue até Services => Policy sets => General provider policy set bindings.
- Selecione SAML Bearer Provider Sample e clique em Copy.
- Digite um nome exclusivo ― SAML20BearerProviderBinding, neste exemplo ― e clique em OK.
- Clique em SAML20BearerProviderBinding => WS-Security => Authentication and protection.
- Clique em con_saml20token em Authentication Tokens.
- Clique em Callback handler.
- É preciso estabelecer o que fazer caso um token SAML 2.0 não assinado seja encontrado:
- Exclua trustStoreType, trustStorePasswordetrustStorePath.
- Clique em New e digite signatureRequired em Name e falso em Value.
- Clique em New e digite trustedAlias em Name e sts_alias em Value.
No final, deve aparecer uma tela como a da Figura 12:
Figura 12. Configurando o manipulador de retorno de chamada para con_saml20token a fim de manusear um token SAML não assinado

- A seguir, é preciso definir a configuração para manusear um token SAML 2.0 não assinado. Mas primeiro é preciso já ter gerado um keystore com certificado de assinatura.
A senha do keystore usada neste exemplo é keystorepass e o keystore é dsig_sts.jks. Para esses atributos, trustStoreType até jks, trustStorePassword até keystorepass, e trustStorePath até ${USER_INSTALL_ROOT}/etc/dsig_sts.jks, como mostrado na Figura 13 (embora obviamente seja necessário alterar esses atributos para atender aos seus requisitos). Copie o keystore para o local apropriado se já não estiver lá.
Figura 13. Configurando o manipulador de retorno de chamada de con_saml20token para manusear tokens SAML assinados

- Clique em Apply e, em seguida, em Save.
Os conjuntos de políticas e ligações foram configurados. Aplique-os ao cliente e ao serviço. Agora, ao chamar o cliente, uma solicitação WS-Trust será enviada para o STS solicitando que ele emita um token SAML 2.0. Essa solicitação é mostrada na Listagem 1.
Listagem 1. Mensagem de solicitação WS-Trust do cliente para o STS
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Header>
<wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">
https://HostnameForSTS:9443/TrustServerWST13/services/RequestSecurityToken
</wsa:To>
<wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">
urn:uuid:F81EA90D3F125892041274943526169
</wsa:MessageID>
<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">
http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue
</wsa:Action>
</soapenv:Header>
<soapenv:Body>
<wst:RequstSecurityToken
xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
<wst:TokenType>
http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAML2.0
</wst:TokenType>
<wst:RequestType>
http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue
</wst:RequestType>
<wst:KeyType>
http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer
</wst:KeyType>
<wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>
http://localhost:9080/MyService/HelloService
</wsa:Address>
</wsa:EndpointReference>
</wsp:AppliesTo>
</wst:RequstSecurityToken >
</soapenv:Body>
</soapenv:Envelope>
|
Configurando uma cadeia confiável no Identity Manager
O Identity Manager usa os atributos RequestType, AppliesTo e TokenType da mensagem de solicitação WS-Trust para mapear uma solicitação recebida para a cadeia confiável apropriada. Na mensagem de solicitação WS-Trust da Listagem 1, esses atributos têm os seguintes valores:
RequestType:http://docs.oasis-open.org/ws-sx/ws-trust/200512/IssueAppliesTo:http://localhost:9080/MyService/HelloServiceTokenType:http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0
Agora é preciso criar uma cadeia confiável no Identity Manager.
- No console do Identity Manager, navegue até Tivoli Federated Identity Manager => Configure Trust Service => Trust Service Chains.
- Clique em Create e, a seguir, clique em Next .
- Deve aparecer uma janela como a da Figura 14. Dê um nome apropriado à cadeia ― Issue SAML2.0 for WAS Service, neste exemplo ― e clique em Next .
Figura 14. Criando uma cadeia

- Agora, selecione Issue Oasis URI no menu suspenso Request Type . Digite a URL acima em AppliesTo e selecione SAML2.0 no menu suspenso Token Type .
A tela deve ser parecida à Figura 15. Clique em Next e, em seguida, em Next novamente.
Figura 15. Configurando a cadeia confiável com atributos específicos

Tenha em mente que o Application Server não envia um emissor em sua mensagem de solicitação WS-Trust. Portanto, o campo Issuer do Identity Manager precisa ser mantido em branco, e qualquer entrada nesse campo causará uma exceção de ponteiro nulo. Pode-se usar expressões regulares nesses campos. Por exemplo, para Address, poderia ser digitado REGEXP:(http://.*:.*/MyService/HelloService). O asterisco é caractere curinga. - Agora, selecione Default Map Module para Module Instance e map para o Mode e depois selecione Add selected module instance to chain, como mostrado na Figura 16.
Figura 16. Selecionando as instâncias de módulo para a cadeia confiável

Para emitir um token SAML 2.0, é necessário mapeamento adequado. O arquivo de mapeamento define o método de confirmação, as instruções de autenticação, e assim por diante, que serão incluídos no token SAML 2.0 emitido. A Listagem 2 mostra o arquivo de mapeamento de amostra do token SAML 2.0 no nosso sistema de exemplo.
Listagem 2. Arquivo de mapeamento de amostra<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:stsuuser="urn:ibm:names:ITFIM:1.0:stsuuser" version="1.0"> <xsl:strip-space elements="*" /> <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" /> <!-- Start with a copy of the document --> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()" /> </xsl:copy> </xsl:template> <xsl:template match="//stsuuser:AttributeList"></xsl:template> <xsl:template match="//stsuuser:Principal"> <stsuuser:Principal> <stsuuser:Attribute name="name"> <stsuuser:Value>WAS</stsuuser:Value> </stsuuser:Attribute> <stsuuser:Attribute name="SamlSubjectConfirmationMethod" type="urn:oasis:names:tc:SAML:2.0:assertion"> <stsuuser:Value>urn:oasis:names:tc:SAML:2.0:cm:bearer</stsuuser:Value> </stsuuser:Attribute> <stsuuser:Attribute name="Issuer" type="urn:oasis:names:tc:SAML:2.0:assertion"> <stsuuser:Value>UsernamePasswordToSAML</stsuuser:Value> </stsuuser:Attribute> </stsuuser:Principal> </xsl:template> </xsl:stylesheet> - A seguir, selecione Default SAML2.0 Token no menu suspenso Module Instance e issue no menu suspenso Mode . Clique em Add selected module instance to chain. A tela deve ser parecida à Figura 17. Clique em Next .
Figura 17. Acrescentando duas instâncias de módulo

- Pode aparecer um aviso neste ponto. Se isso acontecer, clique em Continue e, em seguida, em Next .
- Será solicitada a escolha do arquivo de mapeamento. Copie e cole o código da Listagem 2 em um editor de texto e salve-a como arquivo com a extensão .xsl. Selecione o local para esse arquivo e clique em Next .
- Agora deve ser possível ver a janela mostrada na Figura 18. Digite um nome para a organização emissora ― pode-se usar qualquer coisa específica para o STS que estamos usando ― e mude o período no qual o token SAML será válido, se necessário:
Figura 18. Configurando as propriedades SAML

- Na mesma página (na parte mostrada na Figura 19) marque a caixa Sign SAML Assertions se estiver usando um token SAML assinado. Selecione o keystore no menu suspenso Keystore .
Digite a senha do keystore selecione List Keys; depois selecione a chave na lista. Clique em Next :
Figura 19. Configurando um token SAML assinado

Aparecerá então uma página de resumo, onde é possível verificar as opções selecionadas. Clique em Finish. - O keystore deve ser importado então para o Identity Manager. Navegue até Tivoli Federated Identity Manager => Configure Key Service => Keystores. Clique em Import e selecione as propriedades, como mostrado na Figura 20.
Figura 20. Importando o keystore

- A cadeia criada estará listada sob Console => Configure Trust Service => Trust Service Chains. Para verificar ou alterar as propriedades, selecione a cadeia e clique nas propriedades.
Nesse ponto, a cadeia confiável está concluída. Agora, o STS responde ao cliente com um token SAML 2.0 nos cabeçalhos wsse da mensagem de resposta SOAP, mostrada na Listagem 3:
Listagem 3. Cabeçalhos wsse da resposta SOAP
<wsse:Security xmlns:wsse=
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
soapenv:mustunderstand="1">
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ID="Assertion-uuiddee4b651-0128-1af0--9afe9-b4f4978a7ee1"
IssueInstant="2010-05-28T12:30:50Z"
Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
UsernamePasswordToSAML2.0
</saml:Issuer>
<saml:Subject>
<saml:NameID>WAS</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2010-05-28T12:20:50Z"
NotOnOrAfter="2010-05-29T12:20:50Z">
<saml:AudienceRestriction>
<saml:Audience>http://localhost:9080/MyService/HelloService
</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2010-05-28T12:20:50Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:Password
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</wsse:Security>
|
Seu cliente integrará esse token SAML 2.0 ao cabeçalho wsse da solicitação SOAP que ele envia ao serviço da Web. No serviço, o token SAML 2.0 é validado e a resposta é enviada de volta ao cliente. Já vimos como proteger a comunicação entre um cliente e um serviço da Web no Application Server usando o Identity Manager como STS.
Em seguida, aprenderemos como configurar os conjuntos de políticas e ligações para um cliente de serviço da Web e um servidor no Message Broker.
Configurando conjuntos de políticas e ligações para serviços da Web
Os serviços da Web no Message Broker são desenvolvidos usando nós SOAP. O Message Broker V7 with Fix Pack 1 suporta o recurso de passagem SAML para os nós SOAP; em outras palavras, quando um provedor de serviços da Web (um fluxo com um nó SOAPInput no início) é desenvolvido, o nó SOAPInput aceita o token SAML 2.0 na mensagem de solicitação SOAP recebida. Ele pode validar o token com o STS externo ou pode simplesmente deixar o token se propagar pelo fluxo. De forma similar, no cliente de serviço da Web (um fluxo com o nó SOAPRequest ou AsyncRequest), o nó SOAPRequest ou AsyncRequest pode propagar o token SAML 2.0 na mensagem de solicitação SOAP de saída. Visto que o Message Broker oferece passagem SAML, os tokens SAML, assinados ou não, são manuseados de forma similar; sem nenhuma necessidade de configuração extra a ser feita.
Nesta seção, aprenderemos a criar os conjuntos de políticas e ligações que são aplicados aos nós SOAP e aos perfis de segurança. Os exemplos encontrados aqui incluem fluxos de amostra para ambos os cenários. Comece criando conjuntos de políticas para a passagem SAML 2.0.
- Abra o Message Broker Explorer, dê um clique com o botão direito do mouse no broker e selecione Properties => Security => Policy Sets.
- Selecione Policy Sets e clique em Add.
- Dê um nome adequado ao conjunto de políticas ― SAMLPolicySet, neste exemplo ― e clique em Rename.
- Navegue até SAMLPolicySet => WS-Security => Authentication Tokens.
- A tela deve ser parecida à Figura 21. Em Other authentication tokens, clique em Add e dê um nome ao token ― SAML20, neste exemplo. Depois, selecione SAMLv2.0Passthrough no menu suspenso Token Type e clique em Finish:
Figura 21. Criando um conjunto de políticas SAML 2.0 em um message broker

A seguir, criaremos ligações de conjuntos de políticas SAML 2.0 para o cliente de serviço da Web (o nó SOAPRequest no fluxo).
- Abra o Message Broker Explorer, dê um clique com o botão direito do mouse no broker e selecione Properties => Security => Policy Sets. Deve ser possível ver a janela mostrada na Figura 22.
- Selecione Policy Set Bindings e clique em Add.
- Selecione um nome apropriado ― SAMLPolicySetBindingsC, neste exemplo ― e clique em Rename.
- Selecione SAMLPolicySet no menu suspenso Associated Policy Set .
- Selecione o botão de opções Consumer para a configuração de ligação e depois clique em Finish:
Figura 22. Criando ligações dos conjuntos de políticas SAML 2.0 no message broker

Agora é preciso criar ligações de conjuntos de políticas SAML 2.0 para o provedor de serviços da Web.
- Abra o Message Broker Explorer, dê um clique com o botão direito do mouse no broker e selecione Properties => Security => Policy Sets.
- Selecione Policy Set Bindings e clique em Add.
- Digite um nome apropriado ― SAMLPolicySetBindingsP, neste exemplo ― e clique em Rename.
- Selecione SAMLPolicySet no menu suspenso Associated Policy Set .
- Selecione o botão de opções Provider para a configuração de ligação e clique em Finish.
Os conjuntos de políticas e ligações estão prontos. Eles podem ser aplicados a nós SOAPInput e SOAPRequest de forma adequada nos arquivos BAR antes de implementá-los no broker. Para criar conjuntos de políticas para SAML 1.1, selecione SAMLv1.1 Passthrough no menu suspenso Token Type em Other authentication tokens.
Agora, estamos prontos para criar um perfil de segurança para a validação SAML 2.0 usando o STS.
- Abra o Message Broker Explorer, dê um clique com o botão direito do mouse no broker e selecione Properties => Security => Security Profiles.
- A tela deve ser parecida à Figura 23 abaixo. Selecione Security Profiles e clique em Add. Pressione F2 para renomear esse perfil como ValidateSAML20.
- Selecione WS-Trust v1.3 STS no menu suspenso Authentication .
- Digite uma URL de STS adequada para a configuração de autenticação e clique em Finish:
Figura 23. Criando um perfil de segurança em um message broker para autenticação

Por fim, é preciso criar um perfil de segurança para emitir tokens SAML 2.0 com o Identity Manager como STS.
- Abra o Message Broker Explorer, dê um clique com o botão direito do mouse no broker e selecione Properties => Security => Security Profiles.
- Selecione Security Profiles e clique em Add. Pressione F2 para renomear o perfil como IssueSAML20.
- Selecione WS-Trust v1.3 STS no menu suspenso Mapping .
- Digite uma URL de STS adequada para a configuração de mapeamento e clique em Finish.
Agora é possível aplicar esses perfis de segurança ao nó SOAPInput no arquivo BAR antes de implementá-los no broker.
Um cliente de serviço da Web desenvolvido no Message Broker terá um nó SOAPRequest para fazer solicitações ao serviço da Web. O nó SOAPRequest no Message Broker V7.0.0.1 pode chamar o serviço da Web com um token SAML; assim, deve-se disponibilizar um token SAML para ele usando o nó MQInput, HTTPInput ou SecurityPEP. O SecurityPEP é um novo tipo de nó do Message Broker 7.0.0.1, de modo que as etapas para configurá-lo para emitir tokens SAML 2.0 são explicadas aqui.
É preciso criar um fluxo de mensagens para servir como um cliente de serviços da Web, como mostrado na Figura 24, e definir as propriedades do nó SecurityPEP em conformidade com isso. A Figura 24 mostra o fluxo do cliente de serviços da Web no message broker e as propriedades do nó SecurityPEP:
Figura 24. Fluxo do cliente de serviço da Web

O fluxo é chamado por um cliente HTTP que envia uma mensagem como a da Listagem 4. Preencha o nome de usuário e a senha conforme apropriado para sua configuração.
Listagem 4. Chamando o fluxo
<Sample> <Username>dummyuser</Username> <Password>dummypasswd</Password> <IssuedBy>dummyissue</IssuedBy> </Sample> |
Crie um arquivo BAR usando o fluxo acima e configure suas propriedades como segue:
- Para as propriedades de SecurityPEP, defina securityProfileName para IssueSAML20.
- Para o nó SOAPRequest, defina Policy Set para SAMLPolicySet, defina Policy Set Binding para SAMLPolicySetBindingC e defina Security profile para Default Propagation, como mostrado na Figura 25:
Figura 25. Configurando as propriedades do nó SOAPRequest

Em seguida, crie um fluxo de mensagens que seja um serviço da Web e defina as propriedades do nó SOAPInput do arquivo BAR, usando os valores da Figura 26:
Figura 26. Configurando as propriedades do nó SOAPInput

Agora, os fluxos de mensagens, juntamente com seus conjuntos de políticas e ligações associados, estão prontos para serem implementados no Message Broker.
Configurando cadeias confiáveis no Identity Manager para emitir e validar os tokens SAML 2.0
Quando o cliente de serviço da Web é chamado, o nó SecurityPEP faz uma solicitação WS-Trust para o Identity Manager com os seguintes atributos:
RequestType:http://docs.oasis-open.org/ws-sx/ws-trust/200512/IssueAppliesTo:urn:<BrokerName>.<EGName>.<MessageFlowName>Issuer:dummyissue(também é possível configurar isso comoREGEXP:(.*)para aceitar qualquer emissor)TokenType:http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken
AppliesTo deveria ser wmq:/msg/queue/<inputqueue>@<queuemanager> se estiver sendo usado o nó MQInput e http://localhost:7080/<url-on-HttpInput-Node> se estiver sendo usado o nó HTTPInput.
Usando esses atributos, é possível criar a cadeia para emitir tokens SAML 2.0 usando as etapas descritas na seção anterior.
Visto que o Message Broker V7.0.0.1 oferece recurso de passagem SAML, é necessário um provedor de segurança externo para validar o token SAML, o que não acontece com o Application Server. Quando o serviço da Web é invocado com o token SAML na solicitação, o nó SOAPInput faz uma solicitação WS-Trust para o Identity Manager validar o token SAML com os seguintes atributos na solicitação:
RequestType:http://docs.oasis-open.org/ws-sx/ws-trust/200512/ValidateAppliesTo:http://localhost:7800/Secure/services/HelloIssuer:SOAP_WS_SECURITY(também é possível configurar isso comoREGEXP:(.*)para aceitar qualquer emissor)TokenType:http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0
Veja como criar a cadeia confiável no Identity Manager para validar o token SAML 2.0.
- No console do Identity Manager, navegue até Tivoli Federated Identity Manager => Configure Trust Service => Trust Service Chains.
- Clique em Create e, a seguir, clique em Next para abrir a página de Introdução.
- Dê um nome adequado à cadeia ― Validate SAML2.0 for Broker Service, neste exemplo ― e clique em Next .
- Selecione Validate Oasis URI no menu suspenso Request Type . Para AppliesTo, digite a URL e o Emissor mencionados acima e selecione SAML2.0 na lista suspensa Token Type . Clique em Next e, em seguida, em Next novamente.
- Selecione Default SAML2.0 Token para Module Instance e Validate para Mode e depois selecione Add selected module instance to chain.
- Na próxima página, desmarque Enable one-time assertion use enforcement e Enable Signature Validation.
- Clique em Next . Deverá aparecer então uma página de resumo, onde é possível verificar as opções que acabaram de ser selecionadas. Clique em Finish.
- A cadeia que acabou de ser criada será listada em Tivoli Federated Identity Manager => Configure Trust Service => Trust Service Chains. Para verificar ou alterar as propriedades, selecione a cadeia e clique nas propriedades.
Agora, as cadeias confiáveis estão configuradas no Federated Identity Manager para aceitar solicitações confiáveis do Message Broker.
Este artigo mostrou como configurar comunicação segura por SAML 2.0, assinado ou não, no Application Server e Message Broker, com o Identity Manager usado como Security Token Service. Embora este artigo tenha abrangido a comunicação segura entre cliente e serviço da Web no Application Server e no Message Broker separadamente, também é possível configurar a comunicação entre um cliente no Message Broker e um serviço da Web no Application Server, ou vice-versa, usando as etapas descritas aqui de modo que o Message Broker aja como ESB.
Muito obrigada a Martin Boag, da equipe de desenvolvimento do WebSphere Message Broker, por revisar este artigo e fornecer feedback valioso.
- Recursos do WebSphere Application Server
- Página de recursos do desenvolvedor do WebSphere Application Server
Recursos técnicos para ajudá-lo a usar o WebSphere Application Server. - Página de produto do WebSphere Application Server
Descrições do produto, notícias sobre o produto, informações de treinamento, informações de suporte, etc. - Centro de informações do WebSphere Application Server V7
Um único portal na Web para toda a documentação do WebSphere Application Server, com informações conceituais, de tarefas e de referência sobre como instalar, configurar e usar o WebSphere Application Server. - Roteiros de informações do WebSphere Application Server
Roteiro de artigos e recursos para ajudá-lo com a instalação, migração, administração, desenvolvimento, resolução de problemas e entendimento da tecnologia subjacente. - Biblioteca de documentação do WebSphere Application Server
Manuais de produto do WebSphere Application Server. - Suporte do WebSphere Application Server
Um banco de dados para pesquisa de problemas de suporte e suas soluções, além de downloads, correções e rastreamento de problemas. - Faça o download de uma versão gratuita de teste do WebSphere Application Server V7
O WebSphere Application Server V7 é uma plataforma de aplicativo certificada para Java EE 5 e suportada por EJB 3.0 que impulsiona a agilidade dos negócios com uma base fundada no desempenho e inovadora para seu ambiente SOA, na mais ampla variedade de plataformas do mercado. - Suporte a SML no IBM Education Assistant for WebSphere Application Server V7.0.0.7
Um tutorial multimídia de 13 minutos sobre o novo suporte a SAML no WebSphere Application Server.
- Página de recursos do desenvolvedor do WebSphere Application Server
- Recursos do WebSphere Message Broker
- Página de recursos para desenvolvedor do WebSphere Message Broker
Recursos técnicos para ajudar a usar o WebSphere Message Broker para conectividade, transformação de dados universal e integração em nível corporativo de serviços, aplicativos e plataformas diversos, para reforçar sua SOA. - Página do produto WebSphere Message Broker
Descrições do produto, notícias sobre o produto, informações de treinamento, informações de suporte, etc. - Centro de informações do WebSphere Message Broker V7
Um portal da Web único que reúne toda a documentação do WebSphere Message Broker V7, com conceitos, tarefas e informações de referência sobre a instalação, a configuração e o uso do seu ambiente WebSphere Message Broker. - O que há de novo no WebSphere Message Broker V7
O WebSphere Message Broker V7 fornece conectividade universal com sua capacidade de rotear e transformar mensagens de qualquer lugar para qualquer lugar. Por meio de seu modelo de programação simples e uma poderosa interface de gerenciamento operacional, ele facilita muito o desenvolvimento, a implementação e a manutenção de soluções complexas de integração de aplicativos. Esse artigo descreve os principais aprimoramentos na V7. - Faça download de uma versão de teste gratuita do WebSphere Message Broker V7
O WebSphere Message Broker V7 é uma compilação ESB para conectividade universal e transformação em ambientes heterogêneos de TI. Ele distribui informações e dados gerados por eventos de negócio em tempo real para pessoas, aplicativos e dispositivos por todo a sua empresa, e além dela. - Biblioteca de documentações do WebSphere Message Broker
Especificações e manuais do WebSphere Message Broker. - Fórum do WebSphere Message Broker
Obtenha respostas para as suas perguntas técnicas e compartilhe seu conhecimento com outros usuários do Message Broker. - Página de suporte do WebSphere Message Broker
Um banco de dados para pesquisa de problemas de suporte e suas soluções, além de downloads, correções e rastreamento de problemas.
- Página de recursos para desenvolvedor do WebSphere Message Broker
- Recursos do Tivoli Federated Identity Manager
- Página de recursos do desenvolvedor do Tivoli
Recursos técnicos para ajudar a usar os produtos Tivoli. - Centro de informações do Tivoli Federated Identity Manager
Um único portal na Web para toda a documentação do Tivoli Federated Identity Manager, com informações conceituais, de tarefas e de referência sobre como instalar, configurar e usar o Tivoli Federated Identity Manager. - Página de produto do Tivoli Federated Identity Manager
Descrição do produto, notícias sobre ele, informação de treinamento e suporte, e muito mais. - Biblioteca do Tivoli Federated Identity Manager
Relatórios de analistas, guia do comprador, planilhas de dados, planilhas de solução e white papers. - Página de suporte do Tivoli Federated Identity Manager
Um banco de dados para pesquisa de problemas de suporte e suas soluções, além de downloads, correções e rastreamento de problemas.
- Página de recursos do desenvolvedor do Tivoli
- Recursos do WebSphere
- Recursos para desenvolvedores WebSphere no developerWorks
Informações técnicas e recursos para desenvolvedores que usam produtos WebSphere. O WebSphere no developerWorks fornece downloads de produtos, informações de instruções, recursos de suporte e uma biblioteca técnica grátis com mais de 2.000 artigos técnicos, tutoriais, melhores práticas, IBM Redbooks e manuais on-line de produtos. - Recursos para desenvolvedores de conectividade de aplicativos WebSphere no developerWorks
Artigos de instruções, downloads, tutoriais, educação, informações sobre o produto e outros recursos para ajudá-lo a desenvolver conectividade de aplicativos e soluções de integração de negócios em WebSphere. - Recursos de desenvolvedor de SOA e serviços da Web do WebSphere no developerWorks
Artigos de instruções, downloads, tutoriais, educação, informações de produtos e outros recursos para ajudá-lo a projetar e desenvolver soluções de SOA e serviços da Web do WebSphere. - Downloads de avaliação de WebSphere mais populares
Downloads de avaliação gratuita dos principais produtos do WebSphere. - Fóruns do WebSphere
Fóruns específicos do produto nos quais é possível obter respostas de perguntas técnicas e compartilhar o seu conhecimento com outros usuários de WebSphere. - Demos On Demand do WebSphere
Faça o download e assista esses demos de execução automática, e saiba como os produtos e tecnologias WebSphere podem ajudar sua empresa a responder a um ambiente de negócios em rápida mudança e com complexidade crescente. - Boletim semanal sobre o WebSphere do developerWorks
O boletim do developerWorks oferece artigos e informações mais recentes somente naqueles tópicos que interessam a você. Além do WebSphere, é possível selecionar entre Java, Linux, Open source, Rational, SOA, serviços da Web e outros tópicos. Inscreva-se agora e indique as mensagens que deseja receber. - Livros da IBM Press relacionados ao WebSphere
Compras on-line convenientes por meio da Barnes & Noble. - Eventos relacionados ao WebSphere
Conferências, exposições, Webcasts e outros eventos em todo o mundo que são do interesse dos desenvolvedores WebSphere.
- Recursos para desenvolvedores WebSphere no developerWorks
- Recursos do developerWorks
- Downloads de teste de produtos de software IBM
Downloads de teste sem custo de produtos do IBM® O DB2®, Lotus®, Rational®, Tivoli®e WebSphere® selecionados. - blogs do developerWorks
Participe de uma conversa com os usuários e autores do developerWorks, e com editores e desenvolvedores da IBM. - Webcasts do developerWorks
Sessões técnicas gratuitas por especialistas da IBM que podem acelerar sua curva de aprendizado e ajudá-lo a ser bem-sucedido em seus projetos de software mais difíceis. As sessões variam de Webcasts de uma hora a sessões ao vivo com duração de um dia ou metade de um dia em cidades de todo o mundo. - Podcasts do developerWorks
Ouça entrevistas e discussões interessantes com inovadores de software. - IBM Education Assistant
Uma coleção de módulos educacionais multimídia que ajudam a entender melhor os produtos de software IBM e usá-los de forma mais efetiva para atender aos seus requisitos de negócios.
- Downloads de teste de produtos de software IBM
Rashmi Katagall é Engenheira de Software de Sistema na equipe de Teste WebSphere Message Broker. Ela tem dois anos de experiência no trabalho em várias versões do WebSphere Message Broker. Ela se formou em Engenharia Eletrônica e de Comunicação pelo Gogte Institute of Technology, na Bélgica. É possível entrar em contato com Rashmi pelo endereço rashmikatagall@in.ibm.com.