OAuth (токен доступа) Vs API Key

Я столкнулся с множеством статей, и многие из них предлагают использовать OAuth over API Key. По моему мнению, в OAuth мы наконец получаем токен доступа, и он действителен в течение многих дней. Одним из примеров является то, что токен OBook в QuickBooks действителен в течение 6 месяцев.

Итак, токен доступа эквивалентен ключу API. Тот, кто получает его, должен иметь такую ​​же защиту, как API Keys. И вызовы OAuth должны выполняться через HTTPS, аналогичные вызовам на основе API Key.

Еще одно преимущество перед OAuth - авторизация. Но мы можем сделать то же самое с моделью API Key. Например, мы можем определять правила в нашей базе данных, такие как эти ключи API, могут обращаться к этим API.

Теперь, Каково реальное преимущество OAuth? Если мы реализуем OAuth, мы должны попросить всех наших клиентов установить библиотеки поддержки OAuth на своем сервере. И это сложная задача для них, а также для нас. В то время как в модели API Key это простой веб-вызов без каких-либо дополнительных библиотек и сложностей.

Мое намерение состоит в том, чтобы лучше понять OAuth и не сравнивать и не спорить с моделью API Key.

Примечание:
Я не говорю о модели Google и LinkedIn, где пользователи должны видеть и предоставлять разрешения. Я просто говорю об API, которые мы предоставляем нашим собственным клиентам.

Спасибо за вашу помощь заранее.

Ответ 1

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

То, что может сделать пара ключей API и API, - это просто проверка подлинности клиентского приложения. Если вам разрешено, чтобы аутентифицированное клиентское приложение получало доступ к пользовательским данным без явного согласия пользователю, вам не нужно использовать OAuth.