Так что я новичок в аутентификации HMAC, и я действительно не знаю, что делаю, и не читаю банкоматы.
Я пытался правильно понять следующие статьи/ссылки/обсуждения:
Как реализовать аутентификацию HMAC в RESTful WCF API а>
http://buchananweb.co.uk/security01.aspx
В связи с этим у меня есть несколько вопросов:
Понимание первой ссылки, если, например, у меня есть служба loginAuthentication, созданная в .net, и доступ к ней будет осуществляться из приложения для iPhone, передаю ли я для этого незашифрованное имя пользователя (сообщение) и должен возвращать только true/false или должен возвращать зашифрованное строка, которую я буду использовать позже для других транзакций (удаление, вставка услуг и т. д.)?
[ServiceContract] public partial class LoginService { [OperationContract] bool Authenticate(string username) { // stuffs }
}
С учетом сказанного, после того, как я проверил пользователя, я заблудился. Не лучше ли мне сохранить что-то в базе данных «с временной меткой» (кто-то сказал мне об этом, и я тоже читал некоторые обсуждения по этому поводу)? Или я просто возвращаю его с зашифрованным сообщением (в зависимости от первого вопроса), чтобы каждый раз, когда делается запрос, метка времени уже была прикреплена?
а. И что мне делать с этой меткой времени?
б. Будет ли он использоваться после повторной отправки сообщения для другой транзакции?
Ключи и секретное сообщение. Как я понял, ключ будет паролем пользователя. Итак, если пользователь отправляет свое имя пользователя, я могу открыть сообщение, используя пароль этого пользователя? Это имеет смысл, если у пользователя уже есть сеанс и он просто запрашивает получение данных или запрашивает удаление, вставку и т. д. Должен ли он оставаться таким же, если он просто аутентифицирует имя пользователя и пароль пользователя?
Спасибо за уделенное время!