Я работаю над API, в котором пользователь моего API может зарегистрироваться в моем API и получить ключ API. Когда я генерирую этот ключ API, я использую асимметричное шифрование для создания хэша, который я храню в своей базе данных.

Мой вопрос заключается в следующем: когда пользователь генерирует ключ API, а затем выходит из системы, при следующем входе у меня больше нет ключа API для отображения на приборной панели моего приложения. Это нормально/допустимо?

Другие API делают это по-другому? Например, предлагают ли они API-ключ пользователю? И если да, то хранят ли они нехешированный API-ключ в БД? Является ли это балансом между удобством для пользователя и безопасностью?

nkhil

Ответов: 2

Ответы (2)

В OAuth2 довольно часто системы постоянно показывают идентификатор клиента OAuth2, а секрет OAuth2 - только один раз.

Если вы хотите сделать пользовательский опыт хорошим, сосредоточьтесь на том, чтобы упростить процесс создания нового ключа API без истечения срока действия старых. Вы можете показать список ключей API (не секретных) и время их последнего использования, чтобы пользователь мог легко отключить ключи, которые, скорее всего, уже не используются.

Ключи API обычно не считаются безопасными. Как правило, API-ключи видны клиентам. API-ключи не должны использоваться для выполнения безопасной авторизации. Однако вы можете спроектировать любую систему так, как вам хочется, и в вашем текущем проекте, если сторонний пользователь или злоумышленник может сделать успешные вызовы к вашему API, получив так называемый "API-ключ", лучше спрятать его и позволить пользователю взять на себя ответственность за безопасное хранение ключа в другом месте. Также вы должны убедиться, что в вашем API должен быть способ

  1. Отмена существующего ключа API.
  2. Сгенерируйте новый ключ API со сроком действия.

2022 WebDevInsider