IdentityServer3 - Хранение ClientSecret для хэширования Webhook - PullRequest
0 голосов
/ 27 февраля 2020

Наша аутентификация основана на IdentityServer3.

В настоящее время мы работаем над проектом Webhook, чтобы предоставить зарегистрированным клиентам уведомление pu sh, поступающее из учетных записей пользователей.

Другими словами:

  • пользователь разрешает клиенту доступ к его информации
  • пользователь явно разрешает клиенту регистрироваться на веб-хоках
  • наша платформа отправляет POST-запрос относительно информации об этом пользователе этому клиенту

Мы хотели бы отправить HTTP-заголовок вместе с webhook, чтобы позволить клиенту проверить его. Чтобы сделать это, мы подумали отправить внутри этого заголовка подписанный ха sh всего тела. Теперь проблема в том, что мы хотели бы централизовать генерацию / отзыв ключей внутри IdentityServer.

Мы знаем, что IdentityServer обрабатывает более 1 секрета на каждого клиента (для обеспечения функции ротации ключей), но - как Насколько я понимаю, эти секреты используются только для генерации токенов для клиентов. Таким образом, вопрос: это хороший подход для хранения такого ключа?

Другими словами, мы хотели бы сделать следующее:

  • вставить в таблицу ClientSecrets новый секрет с пользовательским типом (например, WebhookKey)
  • this ключ будет зашифрован нашим программным обеспечением, чтобы его можно было расшифровать при отправке Webhook

Что вы думаете об этом подходе? Может ли этот пользовательский секретный тип конфликтовать с внутренними компонентами IdentityServer?

...