Безопасность аутентификации API

Мы находимся в процессе обновления нашего API на стороне сервера, и нам необходимо управлять безопасностью. Наша текущая модель требует, чтобы объект учетных данных (содержащий пользователя, пароль и пин-код) был включен в каждый вызов метода. Наша команда разработчиков, однако, решила, что вместо этого у нас должны быть объекты сеанса (что меня устраивает), но новые учетные данные — это просто GUID. Это очень отличается от того, что я видел в других API в нашей отрасли, поэтому я немного обеспокоен тем, насколько безопасной будет новая модель. Я спросил их, проанализировали ли они обе альтернативы, и они сказали, что нет.

Кто-нибудь знает, есть ли явные преимущества, недостатки, риски и т. д. использования набора учетных данных по сравнению с одним элементом (каким бы сложным он ни был)?

PS: канал связи будет безопасным в любом случае, и он не связан с этой конкретной темой.


person Carlos    schedule 01.04.2010    source источник
comment
Система представлена ​​в виде веб-сервиса, с помощью которого партнеры могут отправлять или получать платежные инструкции. Процесс аутентификации относительно быстрый; просто поиск в базе данных с любой опцией. Текущий API не поддерживает сеансы; учетные данные просто отправляются с каждым запросом. Кроме того, предварительно считается, что сеансы не имеют срока действия. При всем при этом, вероятно, будет несколько запросов за сеанс, даже если это трудно предсказать по текущему использованию с учетом изменений. Все запросы используют одни и те же политики, и нет необходимости отзывать доступ к клиенту.   -  person Carlos    schedule 03.04.2010


Ответы (1)


Возможно, вам потребуется более подробно описать свою систему — например, веб-приложение или сервис. Если это веб-приложение, и у вас есть безопасный канал для клиента, то простота настоятельно рекомендует использовать объект сеанса веб-контейнера.

Должен ли каждый запрос быть самоаутентифицируемым или нет? Некоторые из факторов, которые могут повлиять на ваше решение:

  • Насколько сложным/медленным является процесс аутентификации?
  • Выполняют ли клиенты обычно несколько запросов в сеансе или они редко вызывают только одну службу?
  • Существуют ли разные политики аутентификации/авторизации для разных запросов?
  • Важно ли иметь возможность отозвать доступ к клиенту в середине сеанса?
person John    schedule 01.04.2010
comment
Спасибо за ваш вклад. Я ответил на ваши вопросы выше. - person Carlos; 03.04.2010