Регулирование и квота пользователями - Управление токенами
Я хотел бы ввести квоты для пользователей, получающих доступ к моему API, но я не уверен, что поток, который я имею в виду, это способ сделать это, просто читая документацию из нескольких решений по управлению API.
В настоящее время мой поток может быть описан следующим образом:
- Пользователь предоставляет учетные данные для приложения
- Приложение вызывает мой сервер авторизации для проверки. Токен возвращается пользователю в случае успеха.
- В следующих запросах приложение проверяет токен (заголовок авторизации) на сервере авторизации перед доступом к службе.
Моя проблема в том, что я не могу реализовать квоты на основе токенов, поскольку мои пользователи смогут получить новый токен, чтобы избежать ограничения. Согласно вашему опыту, возможно ли управлять квотой пользователями на уровне шлюза или мне следует изменить метод аутентификации API?
С наилучшими пожеланиями,
1 ответ
Когда мы говорим об API и токене, наиболее используемой моделью связи является протокол OAuth 2.0.
С его помощью пользователи API должны проходить аутентификацию на своем соответствующем сервере аутентификации OAuth (это может быть сторонний сервер, например, Facebook или Google).
С токеном в руке, и этот токен является токеном с ограниченным временем жизни, представленный API должен проверить этот токен на сервере ресурсов OAuth, который определит, кто будет клиентом / приложением, которое запрашивает.
Следовательно, используя токен OAuth, можно будет идентифицировать запрашивающего.
Что касается элемента управления квотами, если вы не будете использовать какого-либо игрока на рынке управления API / шлюзами (например, apigee), вы должны реализовать этот элемент управления с помощью высокопроизводительного механизма запросов. Для более простого решения база данных пар ключ-значение может решить эту проблему (например, redis).