Обычно это приложение, которое предоставляет учетные данные для базы данных, SAP и т. Д. У отдельных пользователей учетные данные хранятся в LDAP или базе данных; проверка подлинности и авторизация будут рассматриваться в качестве сквозного вопроса приложением, сервером EAI или устройством, таким как SiteMinder.
Входящие запросы будут перехватываться и проверяться на наличие токенов авторизации. Если токен не появляется, проверьте аутентификацию и авторизацию. Если разрешено, создайте токен авторизации и кешируйте его.
Это обычный сценарий для веб-приложений. Для ситуации с уведомлением о событиях, как у вас, это сложнее. Вам нужно будет проверить авторизацию, когда пользователь подписывается. Вы должны немедленно уведомить их, если пользователь не авторизован, потому что вы не хотите проверять учетные данные при каждой публикации. Должна быть связь между пользователем, подписанным событием и полномочиями авторизации.
Я вижу только одну проблему.
Вы можете передавать события неавторизованному пользователю, если он подписывается на событие, узнает, что он авторизован, получает первую трансляцию, а затем по какой-то причине становится неавторизованным. Это говорит о том, что вам придется проверять учетные данные каждый раз, когда вы транслируете подписчикам. Это может стать обременительным и замедлить работу вашего приложения.
Посмотрите на стандарты, подобные SAML, чтобы узнать, может ли он вам помочь.
Проблема кэширования зависит от сравнения времени между событиями и между изменениями авторизации. Если время между событиями велико по сравнению с изменениями авторизации, вы должны проверять каждый раз, потому что у вас нет возможности узнать, была ли авторизация отменена с момента последнего события.