A amostra Security Identity Propagation demonstra como utilizar alguns dos recursos de Segurança de Identidade fornecidos no WebSphere Message Broker.
Como uma implementação de segurança real depende de um provedor de segurança externo centralizado para definir as identidades e autorizações, essa amostra não implementa a execução da segurança. A amostra pré-construída mostra como extrair credenciais de segurança de mensagens em nós MQInput e HTTPInput, como manipular as credenciais de segurança usando ESQL e como relatar e, como opção, mapear as mesmas. A amostra também mostra como propagar a identidade usando os nós MQOutput e HTTPRequest.
A seção "Estendendo a Amostra" fornece detalhes sobre como incluir um provedor de segurança externo na amostra.
A amostra Security Identity Propagation demonstra as seguintes tarefas:
O diagrama a seguir mostra o fluxo de mensagens principal da Amostra Security Propagation, que é o SecurityIdentitySampleFlow.msgflow no projeto do Message Broker SecurityIdentitySampleFlowProject. O fluxo de mensagens consiste em um nó HTTPInput e dois nós MQInput que invocam um subfluxo comum.
O nó HTTPInput, chamado HTTP_ID, extrai a Identidade passada no cabeçalho de Autenticação Básica HTTP, que codifica um token de nome de usuário e senha para pedidos de entrada. O nó HTTPInput é configurado, no arquivo BAR fornecido, SecurityIdentityPropagation.bar, para ter uma configuração de perfil de segurança igual a Propagação Padrão.
O nó MQInput MQ_ID extrai a Identidade, somente com um nome de usuário, que é passada no cabeçalho da mensagem MQMD do WebSphere MQ da mensagem recebida. O nó MQ_ID é configurado no arquivo BAR fornecido, SecurityIdentityPropagation.bar, para ter uma configuração de perfil de segurança igual a Propagação Padrão.
O nó MQInput MSG_ID extrai um conjunto de credenciais de Identidade, que consiste em um nome de usuário e uma senha. As propriedades de Segurança do nó MSG_ID são configuradas de forma que as credenciais de Identidade sejam passadas no corpo da mensagem do WebSphere MQ. O nó MSG_ID é configurado no arquivo BAR fornecido, SecurityIdentityPropagation.bar, para ter uma configuração de perfil de segurança igual a Propagação Padrão.
O diagrama a seguir mostra o subfluxo Propagação da Identidade de Segurança, SecurityIdentitySubFlow.msgflow, que é chamado por cada nó de entrada.
O subfluxo contém um nó Compute, chamado MapIdentity, que pode configurar a Identidade Mapeada na pasta de propriedades da mensagem se o conteúdo da mensagem de entrada exigir que a Identidade Mapeada seja configurada. O nó HTTPRequest, chamado HTTP_ReqAsID, usa a identidade de origem ou mapeada na pasta de propriedades para emitir um pedido ao fluxo de mensagens SecurityIdentityReportFlow. Este nó substitui a árvore de mensagens pela resposta de tal fluxo. O HTTPRequestNode propaga a origem da identidade mapeada, pois é configurado no arquivo BAR fornecido, SecurityIdentityPropagation.bar, para ter um perfil de segurança igual a Propagação Padrão. O nó Compute final, chamado ClearHdrs, é fornecido para limpar o cabeçalho do pedido de HTTP caso o fluxo principal envia uma mensagem de resposta através do WebSphere MQ.
O diagrama a seguir mostra o fluxo de mensagens Identidade do Relatório da Amostra Security Propagation, chamado SecurityIdentityReportFlow.msgflow, que é invocado pelo subfluxo. Este fluxo de mensagens propaga a identidade relevante.
O nó Report Identity Compute no fluxo de mensagens Identidade do Relatório da Amostra Security Propagation relata a identidade recebida nos campos de elemento de corpo da mensagem, se a pasta body estiver presente.
São fornecidas três mensagens de entrada para execução da amostra de Propagação de Segurança:
<?xml version="1.0" encoding="UTF-8"?> <Envelope> <Body> </Body> </Envelope>Consulte Simple.xml, Security_Identity_MQ_ID.mbtest
<?xml version="1.0" encoding="UTF-8"?> <Envelope> <Body> <MessageIdentity> <Username>IdInMsg</Username> <Password>PwdInMsg</Password> <IssuedBy>InMsgIssuer</IssuedBy> </MessageIdentity> </Body> </Envelope>Consulte Security_Identity_MSG_ID.mbtest
<?xml version="1.0" encoding="UTF-8"?> <Envelope> <Body> <MapIdentity>true</MapIdentity> </Body> </Envelope>Consulte Security_Identity_Mapped.mbtest