No
WebSphere MQ Publicação/Assinatura, todas as verificações de autoridade de publicação e assinatura são
executadas na fila de fluxo:
- Aplicativos de publicação requerem autoridade para colocar mensagens na
fila de fluxo.
- O intermediário WebSphere MQ Publicação/Assinatura também verifica a autoridade de aplicativos
de assinatura que desejam pesquisar a fila de fluxo.
- Aplicativos de assinatura requerem a autoridade para colocar mensagens na
fila nomeada para receber suas publicações.
A mesma verificação é feita por intermediários do WebSphere Message Broker, mas a autoridade
de assinatura (pesquisa) não é mais verificada.
Pelo contrário, o WebSphere Message Broker permite que o acesso de publicação e assinatura
seja definido de uma maneira hierárquica, descendo direto para um nível de
tópico individual.Para fazer isso, utilize o workbench para criar ACLs (Access Control Lists).
Antes de migrar um
intermediário
WebSphere MQ Publicação/Assinatura para um intermediário
WebSphere Message Broker de substituição ou antes de migrar os aplicativos
WebSphere MQ Publicação/Assinatura para executar no
WebSphere Message Broker,
considere as implicações de segurança:
- Aplicativos de publicação são sujeitos às mesmas verificações, mesmo se o
seu intermediário não estiver sendo executado com segurança de tópico
ativada, porque a autoridade para colocar uma mensagem no fluxo ou fila de publicação continua sendo verificada pelo WebSphere MQ.
Entretanto, publicações de fluxo podem ser processadas pelo WebSphere Message Broker em qualquer fila de entrada, porque os publicadores não precisam mais
colocá-las em uma fila com o mesmo nome do fluxo. Portanto, você deve
configurar ACLs equivalentes para todos os fluxos utilizando seus
qualificadores de nível de tópico correspondentes.
- O intermediário WebSphere Message Broker não verifica se aplicativos de assinatura
têm autoridade para pesquisar a fila de fluxo. Em vez disso, o WebSphere Message Broker modela streams prefixando todos os tópicos que não fazem parte do
stream padrão com o prefixo exclusivo, $SYS/STREAM/<nome_do_stream>/.
Isto mantém as características de partição dos fluxos e possibilita
que ACLs específicas de fluxos sejam definidas. Os tópicos no fluxo padrão não
são alterados pelo intermediário. Portanto, o tópico raiz pode ser
utilizado para especificar autoridades para tópicos de fluxo padrão.
O diagrama a seguir mostra as autoridades de fluxo que são necessárias. O
exemplo assume que você tenha atualizado a ACL padrão na raiz de tópicos para o
PublicGroup principal com autoridade para publicação, assinatura e entrega
persistente, todos definidos como
deny.
Usando esse exemplo, suponha que os seguintes grupos estejam
definidos:
- PDefault: o grupo de usuários autorizados a publicar no fluxo padrão.
- SDefault: o grupo de usuários autorizados a assinar o fluxo padrão.
- PStreamX: o grupo de usuários autorizados a publicar no StreamX.
- SStreamX: o grupo de usuários autorizados a assinar o StreamX.
- PStreamY: o grupo de usuários autorizados a publicar no StreamY.
- SStreamY: o grupo de usuários autorizados a assinar o StreamY.
Você deve conceder e negar autoridades definindo ACLs da seguinte
maneira:
- PDefault deve conceder autoridade de publicação na raiz; SDefault deve
conceder autoridade de assinatura na raiz.
- PDefault deve ter autoridade de publicação negada em $SYS/STREAM/; SDefault deve ter autoridade
de assinatura negada em $SYS/STREAM/.
Essas definições asseguram que publicadores e assinantes no fluxo
padrão não possam publicar em outros fluxos ou assiná-los; uma ACL deve ser
definida explicitamente para substituir essa definição.
- PStreamX deve conceder autoridade de publicação em $SYS/STREAM/StreamX, SStreamX deve conceder autoridade de
assinatura em $SYS/STREAM/StreamX.
Estas definições sobrepõem qualquer definição em tópicos pais e
limitam as atividades de publicação e assinatura para usuários
dentro destes grupos específicos.
- PStreamY deve conceder autoridade de publicação em $SYS/STREAM/StreamY, SStreamY deve conceder autoridade de
assinatura em $SYS/STREAM/StreamY.
Estas definições sobrepõem qualquer definição em tópicos pais e
limitam as atividades de publicação e assinatura para usuários
dentro destes grupos específicos.
Se quiser configurar exceções a esta situação, você poderá fazê-lo
introduzindo uma ACL no ponto adequado. Por exemplo, se desejar conceder
autoridade para publicadores para o fluxo padrão (PDefault) para
publicar no StreamX, você deverá criar uma ACL explícita no ponto (3)
para conceder esta autoridade, sobrepondo assim a negação no ponto (2). Neste
cenário, os usuários no PDefault ainda não podem publicar no StreamY.