У меня около 5 часов поиска того, что было бы лучшим способом "защитить" сеансы данных / сеансы входа через WCF.
Некоторые факты:
- WCFкод находится на C # и будет размещен в сети для всех пользователей (API)
- Будет отдельный веб-сайт, который использует API в качестве графического интерфейса для пользователей
- Он также будет использоватьсяiPhone, Android и все остальное, что я могу вспомнить
- Данные будут отправлены с использованием JSON
- Самое важное: доступ к API будет осуществляться через SSL
Вариант 1 -
Я играл с использованием куки для безопасного доступа к системе API.Я знаю простой, но грубый способ - отправить запрос, как если бы это был HTTP-запрос из браузера, и использовать Аутентификация по формам .Я бы предпочел сделать это, используя только JSON и Cookies - при условии, что я пойду по этому маршруту.
Вариант 2 -
Это, как говорится о Cookies.Я подумал о другом способе сделать это, может быть, это более безопасный способ?Я хотел бы передать объект аутентификации (пользовательский класс) через JSON вместе с объектами, необходимыми для каждого вызова.В этом объекте аутентификации будет два или более члена:
- SessionID: это будет GUID, который хранится в базе данных API
- HashValue: возможно MD5 Hash, у меня естьНе было решено, что это будет обновляться при каждом вызове
Идея обновления HashValue при каждом успешном вызове API состоит в том, что локально сохраненный объект аутентификации клиента будет изменен, чтобы избежать подменыможет быть осуществлено.По крайней мере, я в это верю, может, я ошибаюсь?
Примечание: Это значение будет создано на стороне сервера, сохранено в базе данных и передано обратно клиенту.
Я не уверен, в какую сторону идти.Если вариант 2 будет лучшим путем, то я уйду.
Только если вариант 1 является лучшим, тогда моя проблема в том, что я на самом деле не могу найти, как установить cookie в службе WCF на стороне API.Любые указатели?
Спасибо за вашу помощь.