Как API должен использовать HTTP-аутентификацию

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

Пример 1. API предлагает компаниям разрешать сторонним пользователям аутентификацию с помощью токена и тайна с использованием HTTP Basic.

Пример 2. API принимает имя пользователя и пароль через HTTP Basic для аутентификации конечного пользователя. Как правило, они получают токен для будущих запросов.

Моя установка: у меня будет JSON API, который я использую в качестве моего бэкенда для мобильного и веб-приложения. Похоже, что как мобильное, так и веб-приложение подходит для отправки по токенам и тайнам, поэтому только эти два приложения могут получить доступ к API, блокируя любую третью сторону.

Но мобильное и веб-приложение позволяет пользователям входить в систему и отправлять сообщения, просматривать их данные и т. д. Поэтому я бы хотел, чтобы они заходили по HTTP Basic также по каждому запросу.

Как-то использовать комбинацию обоих этих методов или только отправлять учетные данные конечного пользователя (имя пользователя и токен) по каждому запросу? Если я отправляю только учетные данные конечного пользователя, храню ли их в файле cookie на клиенте?

16 голосов | спросил Paul Sylling 12 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 12 Sep 2012 14:22:32 +0400 2012, 14:22:32

2 ответа


7

Для базовой аутентификации HTTP требуется, чтобы имя пользователя и пароль отправлялись с каждым запросом ресурса. Имя пользователя: пароль передается в заголовоке заголовка запроса «Авторизация» base64 с префиксом «Basic». Если вся ваша HTTP-связь зашифрована (через ssl), информация заголовка авторизации не может быть легко использована злоумышленниками, поскольку маловероятно, что они смогут ее удержать.

SSL-шифрованный http с базовой аутентификацией должен быть достаточным.

ответил Nathan Pilling 18 +04002012-10-18T21:28:57+04:00312012bEurope/MoscowThu, 18 Oct 2012 21:28:57 +0400 2012, 21:28:57
0

Может ли OAuth /OpenID работать вместе с токеном /секретом?

Недавно я рассмотрел следующий сценарий:

  • Внешний интерфейс веб-приложения
  • Базовый API REST
  • Приложения для мобильных устройств, доступ к API REST

В качестве простого теста я смог:

  • Аутентификация пользователей через веб-приложение с использованием OAuth
  • REST API, авторизуемый через OAuth, в результате чего секрет создается и передается клиенту
  • Затем мобильное устройство будет аутентифицироваться через OAuth, а затем будет авторизовано REST API через секретный

Это позволит приложению Mobile Device для аутентификации с теми же учетными данными, что и через веб-интерфейс (та же учетная запись), а также иметь возможность авторизации доступа к API.

ответил Brendan Green 18 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 18 Sep 2012 07:26:33 +0400 2012, 07:26:33

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132