Как Event Grid + CloudEvents + Webhooks поддерживает обновление access_token? - PullRequest
0 голосов
/ 02 мая 2020

CloudEvents имеет спецификацию webhooks для доставки событий: HTTP 1.1 Веб-хуки для доставки событий - Версия 1.0 . Среди прочего, CloudEvents Webhooks spe c детализирует требования для проверки и авторизации webhook. Как описано в статье c, методы авторизации CloudEvents для сетевых подключений «опираются на модель OAuth 2.0 Bearer Token RFC6750».

Azure Сетка событий поддерживает CloudEvents: Использование схемы CloudEvents v1.0 с Event Сетка

Поддержка сетки событий для авторизации через веб-крючок ограничена «добавлением параметров запроса к URL-адресу веб-крючка при создании подписки на событие», как описано здесь: Аутентификация доступа к Azure Ресурсам сетки событий .

Учитывая, что токен-носитель OAuth может иметь ограниченное время жизни , поэтому мне нужен способ обновить sh токен. Однако, насколько я могу судить, Event Grid не предоставляет никакого другого механизма, кроме жесткого кодирования токена в параметре запроса во время определения подписки на webhook.

Правильно ли мое понимание? Любые рекомендации?

1 Ответ

1 голос
/ 02 мая 2020

Документ, упомянутый в вашем вопросе, такой как Аутентифицировать доставку событий на конечные точки webhook с использованием Azure AD , недостаточно ясен. Похоже, что описаны (смешанные) два способа обеспечения доставки событий в веб-крючок.

1. Я рекомендую использовать способ, описанный в первом разделе этого документа, такой как использование AAD для аутентификации и авторизации Azure Event Grid для доставки событий в обработчик конечных точек webhook.

В этом случае подписка необходимо заполнить следующие свойства:

azureActiveDirectoryTenantId
azureActiveDirectoryApplicationIdOrUr 

Обратите внимание, что процесс проверки не зависит от вышеуказанных свойств, другими словами, ваша подписка может быть успешно создана, но событие не будет доставлено конечная точка webhook для ошибки авторизации AAD.

В случае, когда значения AEG на основе подписки TenantId и ApplicationId получат токен доступа (Bearer) из AAD, событие доставляется в обработчик конечных точек webhook с токеном доступа в заголовке Authorization .

Теперь ваш обработчик подписчика имеет токен fre sh (действительный) для его использования.

2. Второй способ, такой как использование параметра запроса в URL-адресе webhook, работает так, как вы упомянули. Это секретное значение жестко запрограммировано в процессе создания подписки, и оно не управляется (обновляется / обновляется / et c.) AEG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...