Я разрабатываю API, который будет использоваться пользователями моих клиентов. Вот как будет выглядеть поток:Дизайн OAuth для API без разрешения пользователя
- Пользователь моего облачного сервиса создает ключ API.
- Пользователь вводит ключ API в свои собственные приложения.
- Пользователь развертывает приложение для своих собственных конечных пользователей.
- Приложение обращается к нашему API.
Я ищу советы по обеспечению этого API. Я вижу несколько вопросов:
- Ключ API должен быть встроен в приложение пользователя и поэтому уязвим для кражи и злоупотребления.
- После того, как ключ API скомпрометирован, его можно легко отключить, но как мои пользователи будут обновлять свои приложения, чтобы использовать новый ключ API, не имея необходимости перестраивать приложение и повторно развертывать.
Есть ли у кого-нибудь идеи о том, как это сделать?
Ваша проблема 1: ключ API должен быть встроен ... Почему? Какой язык/платформа вы используете? –
API не может быть широко открытым. Я собираю информацию из приложения от имени пользователей моей системы. Поэтому мне нужно убедиться, что информация является законной и что она идет в нужную учетную запись в нашей системе. Имеет ли это смысл? –
Эрик, как вы в конечном итоге реализовали это? Каждый метод, который я могу придумать для защиты API *, требует * некоторой формы открытого/закрытого ключа, который страдает от этой безопасной уязвимости. Я специально думаю о тех приложениях Android, которые были загружены/отправлены ранее в этом году с помощью вредоносного ПО.FWIW, Twitter, похоже, решает эту проблему, выпуская общедоступные/закрытые ключи для * приложения *, а не для учетной записи, поэтому, если приложение скомпрометировано, все приложение отключается до тех пор, пока не будет выпущена новая версия с новыми ключами. http://dev.twitter.com/pages/auth –