Я читаю эту статью http://rc3.org/2011/12/02/using-hmac-to-authenticate-web-service-requests/, и я понимаю, как работает HMAC, я думаю.ASP.NET Web API/HMAC Аутентификация, как авторизовать от имени пользователя?
Проблема в том, что HMAC, похоже, аутентифицирует стороннюю сторону (ретрансляционную сторону). Что, если третья сторона хочет передать пользователю мою систему и свой пароль для извлечения конкретных данных пользователя? Я не хочу использовать OAuth 1.0 или 2.0, потому что с ними связаны разные проблемы. Мне кажется, мне нужно также аутентифицировать пользователя, а не просто разрешать?
Например, мобильное приложение Evernote, оно запрашивает у меня имя пользователя/пароль, и я уверен, что он вызывает какой-то веб-API в фоновом режиме. Он не использует OAuth 2.0 правильно? Потому что я не вижу, чтобы я перенаправлялся на сайт провайдера, чтобы «разрешить». В этом случае, как мое имя пользователя/пароль было передано в сервисную службу?
[Редактировать]
Подумав немного, я предполагаю, что SSL является решением? После того, как у вас есть SSL, вы можете передать имя пользователя/пароль на мой веб-api в текстовом формате, а затем я делаю все, чтобы аутентифицировать стороннюю версию PLUS, аутентифицировать пользователя и отвечать данными пользователя?
В этом случае недостатком является то, что я должен доверять третьей стороне? Таким образом, они не сохраняют имя пользователя пользователя + пароль, это правильно?
@Bardri. Благодарю. Я просто попытался снова прочитать OAuth2.0, не могли бы вы объяснить, как OAuth2.0 может получить учетные данные владельца ресурса, не заходя на сайт провайдера? Немного смущен. Кроме того, я занимаюсь OAuth, потому что я читаю эти две статьи http://homakov.blogspot.com/2013/03/oauth1-oauth2-oauth.html (кто случайно взломал facebook oAuth2.0 еще некоторое время назад) и http://hueniverse.com/2012/07/oauth-2-0-and-the-road-to-hell/ (кто, оказывается, является создателем OAuth) – Liming
Просто увидел реализацию XAuth Twitter, которая пропускает токен запроса и авторизации. https://dev.twitter.com/docs/oauth/xauth и напрямую получить доступ к AccessToken. Хотя, я должен очень доверять стороннему приложению ... Как и Twitter, третья сторона должна конкретно запросить такое разрешение, так что это не так, как OAuth решила проблему за отзыв ... плюс все другие факторы, упомянутые выше две ссылки – Liming
и только FYI. Я не говорю, что OAuth2.0 плохой, но я не доверяю реализациям там. Я имею в виду, что реализация facebook (подкрепленная их экспертами-инженерами, все еще постоянно сталкивается с проблемами, я не уверен, что есть реализация, которую я могу использовать) – Liming