3
votes

Azure Event Hubs' documentation mentions such terms as client and publisher. For example, here

The Event Hubs security model is based on a combination of Shared Access Signature (SAS) tokens and event publishers. An event publisher defines a virtual endpoint for an event hub. The publisher can only be used to send messages to an event hub. It is not possible to receive messages from a publisher.

Typically, an event hub employs one publisher per client. All messages that are sent to any of the publishers of an event hub are enqueued within that event hub. Publishers enable fine-grained access control and throttling.

First, I thought that client is e.g. some real device, which sends data to the Event Hub, and publisher is the entry point in the Event Hub, which knows how to receive events from devices.

However, following place in the docs adds greater confusion.

Any entity that sends data to an event hub is an event producer, or event publisher. Event publishers can publish events using HTTPS or AMQP 1.0. Event publishers use a Shared Access Signature (SAS) token to identify themselves to an event hub, and can have a unique identity, or use a common SAS token.

So, what is the difference between them?

1
Great question. I read the same article and have the same question. Specifically because my HTTPS Authorization token is returning 40104: Invalid token audience, and apparently this has something to do with the publisher. But I can't see 'publisher' anywhere in the event hubs configuration.Nick.McDermaid

1 Answers

0
votes

In the quote you provided, my understanding is that "client" is referring to any distinct group of users - maybe one app, or maybe the apps for a certain company if you wanted to group them that way. A publisher is a construct in code. There is more detail in this document, including how to revoke publishers (which is mentioned but not described in detail in the security doc you linked). https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-programming-guide