Nella
WebSphere MQ Pubblicazione/Sottoscrizione, tutti i controlli di autorizzazione di pubblicazione e
sottoscrizione vengono eseguiti nella coda di flusso:
- Le applicazioni di pubblicazione
necessitano dell'autorizzazione ad inserire i messaggi nella coda di flusso.
- Il broker di WebSphere MQ Pubblicazione/Sottoscrizione
verifica l'autorizzazione delle applicazioni di sottoscrizione che desiderano sfogliare
la coda di flusso.
- Le applicazioni di sottoscrizione
necessitano dell'autorizzazione ad inserire i messaggi nella coda preposta a ricevere le relative pubblicazioni.
Lo stesso controllo viene eseguito dai broker WebSphere Message Broker,
ma l'autorizzazione di sottoscrizione (sfogliare) non viene controllata.
WebSphere Message Broker consente invece che l'accesso di pubblicazione e sottoscrizione venga definito in modo gerarchico fino al livello di un singolo argomento.
A tal fine, utilizzare il workbench per creare gli ACL (Access Control List).
Prima di eseguire la migrazione di un broker di
WebSphere MQ Pubblicazione/Sottoscrizione su un broker
WebSphere Message Broker di sostituzione oppure prima di eseguire la migrazione delle applicazioni di
WebSphere MQ Pubblicazione/Sottoscrizione per l'esecuzione su
WebSphere Message Broker,
è necessario considerare
le seguenti implicazioni relative alla sicurezza:
- Le applicazioni di pubblicazione sono soggette agli stessi controlli anche se il broker in uso
non è in esecuzione con la sicurezza dell'argomento abilitata, in quanto l'autorizzazione ad inserire
un messaggio nella coda di pubblicazione o di flusso continua ad essere verificata da WebSphere MQ.
Tuttavia, le pubblicazioni di flusso possono
essere elaborate da WebSphere Message Broker su una qualsiasi coda di input,
in quanto gli autori (publisher) non hanno più necessità di eseguire l'inserimento su una coda con lo stesso nome del
flusso. Impostare quindi ACL equivalenti per tutti i flussi utilizzando i relativi
qualificatori di livello di argomento corrispondenti.
- Il broker WebSphere Message Broker non verifica che le applicazioni di
sottoscrizione dispongono dell'autorizzazione a sfogliare la coda di flusso. WebSphere Message Broker modella invece i flussi aggiungendo un prefisso univoco, $SYS/STREAM/<streamname>/, a tutti gli argomenti che non fanno parte del flusso predefinito.
In questo modo vengono conservate le caratteristiche di partizionamento dei flussi ed è consentita l'impostazione degli ACL
specifici di flusso. Gli argomenti nel flusso predefinito non sono modificati dal
broker.
E' possibile quindi utilizzare l'argomento root per specificare le autorizzazioni
per gli argomenti di flusso predefiniti.
Il diagramma riportato di seguito mostra le autorizzazioni di flusso richieste.
In questo
esempio viene assunto che sia stato aggiornato l'ACL predefinito sul root dell'argomento per il
PublicGroup principal con l'autorizzazione alla pubblicazione, alla sottoscrizione e alla distribuzione
permanente impostate tutte su
deny.
Nell'uso di questo esempio, assumere che siano definiti i seguenti gruppi:
- PDefault: il gruppo di utenti autorizzato a pubblicare sul flusso predefinito
- SDefault: il gruppo di utenti autorizzato a sottoscrivere il flusso predefinito
- PStreamX: il gruppo di utenti autorizzato a pubblicare su StreamX
- SStreamX: il gruppo di utenti autorizzato a sottoscrivere StreamX
- PStreamY: il gruppo di utenti autorizzato a pubblicare su StreamY
- SStreamY: il gruppo di utenti autorizzato a sottoscrivere StreamY
E' necessario concedere e negare le autorizzazioni impostando gli ACL come riportato di seguito:
- A PDefault deve essere concessa l'autorizzazione alla pubblicazione su root ed a SDefault deve essere
concessa l'autorizzazione alla sottoscrizione su root.
- A PDefault deve essere negata l'autorizzazione alla pubblicazione su $SYS/STREAM/ e a SDefault
deve essere negata l'autorizzazione alla sottoscrizione su $SYS/STREAM/.
Queste impostazioni
assicurano che gli autori (publisher) ed i sottoscrittori (subscriber) sul flusso predefinito non possano
eseguire automaticamente pubblicazioni o sottoscrizioni su altri
flussi; è necessario che venga definito un ACL che sovrascriva esplicitamente tale impostazione.
- A PStreamX deve essere concessa l'autorizzazione alla pubblicazione su $SYS/STREAM/StreamX/ e a
SStreamX deve essere
concessa l'autorizzazione alla sottoscrizione su $SYS/STREAM/StreamX/.
Queste
impostazioni sovrascrivono eventuali impostazioni sugli argomenti parent e limitano l'attività di
pubblicazione e sottoscrizione agli utenti nell'ambito di questi specifici gruppi.
- A PStreamY deve essere concessa l'autorizzazione alla pubblicazione su $SYS/STREAM/StreamY/ e a
SStreamY deve essere
concessa l'autorizzazione alla sottoscrizione su $SYS/STREAM/StreamY/.
Queste
impostazioni sovrascrivono eventuali impostazioni sugli argomenti parent e limitano l'attività di
pubblicazione e sottoscrizione agli utenti nell'ambito di questi specifici gruppi.
Per impostare delle eccezioni a questa situazione, è necessario introdurre
un ACL nel punto appropriato. Ad esempio, se si desidera assegnare l'autorizzazione
agli autori (publisher) sul flusso predefinito (PDefault) alla pubblicazione su StreamX, è necessario
creare un ACL esplicito nel punto (3); in questo modo viene sovrascritta
la negazione dell'autorizzazione al punto (2). In tale scenario, gli utenti in PDefault
non sono ancora in grado di pubblicare su StreamY.