Executando a Amostra Security Identity Propagation
Para executar a amostra Security Identity Propagation, você coloca
cada uma das mensagens de amostra através do nó de entrada de transporte apropriado
nos fluxos de mensagens de Security Identity Propagation principal.
Você pode executar a amostra para saber o que ocorre nas seguintes situações:
- A mensagem de entrada do WebSphere MQ contém um token de identidade do usuário no cabeçalho da
mensagem MQMD.
- A mensagem de entrada do WebSphere MQ contém um conjunto de credenciais de identidade do usuário
no corpo da mensagem.
- A mensagem de entrada do WebSphere MQ contém um elemento de pedido que é usado pelo nó Compute no
fluxo principal para configurar as credenciais de identidade mapeadas.
As credenciais de identidade mapeadas são baseadas no token de identidade do usuário que é
apresentado no cabeçalho MQMD da mensagem de entrada.
- A mensagem do pedido de entrada a partir do HTTP contém o
token de identidade e senha de um usuário.
O token de identidade e
senha do usuário estão presente no cabeçalho de Autenticação Básica
HTTP.
Para obter informações adicionais, consulte
Sobre a amostra Security Identity Propagation.
Se você encontrar algum problema ao executar a amostra, consulte
Resolvendo problemas ao executar amostras na
documentação do WebSphere Message Broker.
Executando a amostra com uma mensagem do WebSphere MQ que contém um token de identidade do usuário
no cabeçalho da mensagem MQMD
O cabeçalho de mensagem MQMD nas mensagens do WebSphere MQ
oferece as seguintes partes de informação para o sistema de segurança
no intermediário:
- A cadeia "nome de usuário" do campo ID do usuário.
- A cadeia "emitido por" do campo Nome do aplicativo PUT.
Para executar a amostra com a mensagem do WebSphere MQ que contém um token de identidade do usuário no
cabeçalho MQMD:
- Na visualização Desenvolvimento do Broker,
expanda o projeto SecurityIdentitySampleFlowProject. Expanda o diretório Testes de Fluxo
e clique duas vezes em Security_Identity_MQ_ID.mbtest
para abrir o arquivo no Cliente de Teste.
- Clique em Enfileirar na barra de ferramentas de eventos de teste do fluxo de mensagens.
Observe que a mensagem XML não
contém elementos no corpo da mensagem.
- Expanda o Cabeçalho na seção
Propriedades Detalhadas.
Observe que o Cabeçalho da Mensagem
selecionado é Enviar Identidade.
Se alternar para a guia Configuração no
Cliente de Teste e selecionar Cabeçalho da Mensagem MQ "Enviar
Identidade", será possível visualizar os detalhes do cabeçalho.
Esses detalhes incluem
mqmdUID como o ID do usuário e
Cliente de Teste como o Nome do aplicativo PUT.
- Na guia Eventos, clique em Enviar
Mensagem.
A
mensagem é colocada na fila SECURITYIDFROMMQIN.
- Procure nos resultados:
- Pegue a mensagem de resultado na fila SECURITYIDFROMMQOUT.
- No Cliente de Teste, clique em Desenfileirar.
- Clique em Obter Mensagem.
A mensagem de saída é exibida sob
Mensagem.
- É possível ver novos elementos sob PropagatedIdentityReport, que relata os detalhes da identidade
propagada que foram passados ao fluxo de mensagens SecurityIdentityReportFlow a partir da mensagem de
entrada.
- Observe que a identidade relatada na mensagem de saída é o nome de usuário mqmdUID.
Como não há nenhum
campo para a senha no MQMD, o campo Senha está em branco na mensagem.
IssuedBy é configurado para o valor arbitrário HTTP, pois o broker não configura a propriedade de cabeçalho
HTTP UserAgent.
Executando a amostra com uma mensagem do WebSphere MQ que contém credenciais de identidade no corpo
da mensagem
Para superar a restrição que o MQMD do WebSphere MQ pode fornecer somente o emissor e o token de identidade
do usuário, um nó MQInput adicional é fornecido.
Este nó é configurado para extrair um
conjunto completo de credenciais de segurança a partir de campos
dentro do corpo da mensagem.
Para executar a amostra com a mensagem do WebSphere MQ que contém um token de identidade do usuário no
corpo da mensagem:
- Na visualização Desenvolvimento do Broker,
expanda o projeto SecurityIdentitySampleFlowProject. Expanda o diretório Testes de Fluxo
e clique duas vezes em Security_Identity_MSG_ID.mbtest para abrir o arquivo no Cliente de Teste.
- Clique em Enfileirar.
Observe que a mensagem contém
elementos na pasta Body.MessageIdentity, que definem as seguintes
credenciais de Identidade:
- Username: IdInMsg
- Password: PwdInMsg
- IssuedBy: InMsgIssuer
- Expanda o Cabeçalho na seção
Propriedades Detalhadas.
Observe que o Cabeçalho da Mensagem
selecionado é Cabeçalho Padrão.
Se alternar para a guia Configuração no
Cliente de Teste e selecionar Cabeçalho da Mensagem MQ "Cabeçalho
Padrão", será possível visualizar os detalhes do cabeçalho. O ID do
usuário e o Nome do aplicativo PUT estão em branco.
- Na guia Eventos, clique em Enviar
Mensagem.
A
mensagem é colocada na fila SECURITYIDFROMMSGIN.
- Procure nos resultados:
- Pegue a mensagem de resultado na fila SECURITYIDFROMMSGOUT.
- No Cliente de Teste, clique em Desenfileirar.
- Clique em Obter Mensagem. A mensagem de saída é exibida sob Mensagem.
- É possível ver os elementos do corpo criados no fluxo de
mensagens SecurityIdentityReportFlow a partir da mensagem de entrada.
- Observe que a identidade relatada na mensagem de saída
corresponde aos detalhes nos elementos MessageIdentity da mensagem de
entrada.
O emissor é configurado para o valor arbitrário HTTP, pois o emissor não é propagado.
Executando a amostra com uma mensagem do WebSphere MQ que solicita que uma identidade mapeada seja
configurada
Ao trabalhar com mensagens do WebSphere MQ que contém somente o
nome do usuário e do emissor, é freqüentemente necessário chamar um
mapeamento de identidade associado nas credenciais.
As credenciais
podem então ser mapeadas em um formato que seja adequado para chamada
de uma solicitação de serviço como, por exemplo, uma que exija um
nome de usuário e uma senha.
Tipicamente, um gerenciador de
identidade federada externo é chamado para execução desta operação.
Esta
amostra fornece uma solução simples na qual um nó Compute é
utilizado para mapear a identidade de entrada, para que as
credenciais de segurança a seguir sejam criadas:
- O tipo de token é o nome de usuário e a senha.
- O nome de usuário é criado como "minúsculas(ID
recebido)" + "@company.com".
- A senha é criada como "p_" + "minúsculas(ID
recebido)" + "ano(registro de data e hora atual)".
Para executar a amostra com a mensagem de entrada do WebSphere MQ
que contém um pedido para configurar a identidade mapeada com base no
nome do usuário passado no MQMD da mensagem:
- Na visualização Desenvolvimento do Broker,
expanda o projeto SecurityIdentitySampleFlowProject. Expanda o diretório Testes de Fluxo
e clique duas vezes em Security_Identity_Mapped.mbtest para abrir o arquivo no Cliente de Teste.
- Clique em Enfileirar.
Observe que a mensagem contém
o elemento Body.MapIdentity.
A presença deste elemento na mensagem
faz com que o ESQL no fluxo de mensagens SecurityIdentitySampleFlow
configure as credenciais de Identidade mapeadas conforme descrito
anteriormente.
- Expanda o Cabeçalho na seção
Propriedades Detalhadas.
Observe que o Cabeçalho da Mensagem
selecionado é Enviar Identidade.
Se alternar para a guia Configuração no
Cliente de Teste e selecionar Cabeçalho da Mensagem MQ "Enviar
Identidade", será possível visualizar os detalhes do cabeçalho. Esses detalhes incluem
TESTUSER como o ID do usuário e
BRKTSTCLNT como o Nome do aplicativo PUT.
- Na guia Eventos, clique em Enviar
Mensagem.
A
mensagem é colocada na fila SECURITYIDFROMMQIN.
- Procure nos resultados:
-
Obtenha a mensagem de resultado na fila SECURITYIDFROMMQOUT:
- No Cliente de Teste, clique em
Desenfileirar
-
Clique em Obter Mensagem. A mensagem de saída é exibida sob Mensagem.
É possível ver os elementos do corpo criados no fluxo de
mensagens SecurityIdentityReportFlow a partir da mensagem de entrada.
Observe que a identidade relatada na mensagem de saída foi
criada a partir do mapeamento do nome do usuário enviado no MQMD da
mensagem de entrada:
- Token: "testuser@company.com"
- Senha: "p_testuser2011"
O emissor é configurado para o valor arbitrário HTTP, pois o emissor não é propagado.
Executando a amostra com uma mensagem de pedido de HTTP
O transporte HTTP permite que as credenciais de segurança como nome de usuário e
senha sejam transmitidas no cabeçalho HTTP.
Um aplicativo Java foi fornecido para executar a amostra com uma mensagem de pedido HTTP
que contém uma identidade do usuário e token de senha no cabeçalho de Autenticação Básico HTTP.
O
aplicativo Java permite submeter o conteúdo de um arquivo texto ,
incluindo um nome de usuário e uma senha, para a Entrada HTTP do
Fluxo de Mensagens da Amostra.
O programa de amostra possui os seguintes argumentos:
java BasicAuthHttpPost <URLHost> <URLPort>
<URLPathSuffix> <arquivo XML> [<ID do usuário>
<Senha> ]
Onde os argumentos são:
- <URLHost> - Nome do host para o qual enviar pedidos HTTP,
que é configurado como localhost.
- <URLPort> - Porta de serviço HTTP, cujo padrão do
Intermediário é 7080.
- <URLPathSuffix> - Sufixo URL HTTP, que é
/Security/IdentityFromHttp.
- <Arquivo XML> - O caminho para o arquivo que contém os dados
a serem enviados como o corpo do pedido de HTTP será
"Messages\Simple.xml" desde de que o arquivo de dados de
mensagem de amostra "Simple.xml" esteja localizado no mesmo
projeto que a origem Java no pacote de "Mensagens"
Esse arquivo é
Messages\Simple.xml porque o arquivo de dados da mensagem de amostra
Simple.xml está localizado no mesmo projeto que a origem Java no pacote
Messages.
- <UserId> - ID do usuário em texto comum a ser enviado no
cabeçalho do Pedido HTTP.
- <Password> - Senha em texto comum a ser enviada no
cabeçalho do Pedido HTTP.
Para executar a amostra com uma mensagem de pedido HTTP:
- No WebSphere Message Broker Toolkit, alterne para a perspectiva Java.
- Na visualização Package Explorer, expanda o pacote
com.ibm.wmb.sample.httpClient
expandindo o projeto SecurityIdentitySampleApplicationProject.
- Clique com o botão direito do mouse em HttpPostFileWithBAuth.java sob
com.ibm.wmb.sample.httpClient e selecione Executar
como > Executar Configurações para abrir o assistente Executar Configurações.
- Dê um clique duplo em Aplicativo Java na visualização em árvore à
esquerda e selecione a configuração chamada HttpPostFileWithBAuth.
- Na guia Principal, certifique-se de que
Projeto esteja configurado como
SecurityIdentitySampleApplicationProject.
- Certifique-se de que a classe
Principal esteja configurada como
com.ibm.wmb.sample.httpClient.HttpPostFileWithBAuth.
- Alterne para a guia Argumentos no
assistente de Execução, e digite o seguinte em
Argumentos de Programa:
No Windows:
localhost 7080 /Security/IdentityFromHttp Messages\Simple.xml
HttpUserName HttpPassword
No Linux ou Unix:
localhost
7080 /Security/IdentityFromHttp Messages/Simple.xml HttpUserName
HttpPassword
- Você criou a Configuração de Execução.
Inicie o aplicativo para enviar o pedido HTTP à amostra clicando em
Executar.
Procure nos resultados:
- A saída do aplicativo Java HttpPostFileWithBAuth é exibida na
visualização de Console. A visualização Console
exibe a resposta HTTP recebida ou detalha a falha de enviar ou receber.
- A mensagem de resposta HTTP exibida tem elementos na pasta Body que foram criados no fluxo de mensagens
SecurityIdentityReportFlow.
- A identidade relatada na mensagem de saída é HttpUserName e
HttpPassword.
Estes são os valores que foram passados como argumentos
para o aplicativo de teste e enviados no cabeçalho da mensagem de
pedido HTTP.
A presença destes valores demonstra que a identidade foi
propagada através dos pedidos HTTP a partir do intermediário.
Voltar para o Início da Amostra