Разработка сервиса с ключами API (отправная точка) - PullRequest
2 голосов
/ 04 июня 2011

Посмотрел в Google и ничего не смог найти.

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

Я знаю, какписать беспокойные веб-сервисы и т. д., просто никогда не использовал API-ключи.Как правило, люди просто генерируют руководства для пользователей и т. Д.

Ответы [ 2 ]

4 голосов
/ 11 апреля 2013

Вот как я создаю ключи API для веб-службы:

string CreateApiKey(int length)
{
    var bytes = new byte[length * 2];   
    using (var rng = new RNGCryptoServiceProvider()) 
        rng.GetBytes(bytes);
    var chars = Convert.ToBase64String(bytes)
        .Where(char.IsLetterOrDigit)
        .Take(length)
        .ToArray();
    var key = new String(chars);
    return key;
}
2 голосов
/ 04 июня 2011

GUID, как правило, недостаточно «случайны» и могут быть легко угаданы плохими парнями.

Возьмите некоторые «случайные» данные, такие как хэш пароля пользователя, некоторые случайные числа и пропустите результат через sha1 илианалогичная хеш-функция.

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

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

И, конечно, все должно проходить через https, чтобы избежать кражи ключа API.

Теперь, если ваша служба ориентирована на "сеанс", вы можете рассмотреть возможность использования временного ключа сеанса, чтобы вы не делали этого.нужно выставить ключ API.Ищите шифрование с открытым ключом, чтобы исследовать это дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...