Кто-нибудь может объяснить OAuth? - PullRequest
14 голосов
/ 18 августа 2010

Я немного читал об этом на http://oauth.net/, это «простой способ публикации и взаимодействия с защищенными данными», по-видимому.безопасный способ доступа к данным из приложения для Android / iphone через веб-сервис REST, но я не могу точно определить, что это такое.на самом деле) я могу следовать простым примерам этого в действии, желательно реализовать что-то в c #, к которому можно получить доступ из приложения для смартфона?

Ответы [ 2 ]

13 голосов
/ 18 августа 2010

OAuth - это альтернативный способ для приложений сохранять данные для входа в систему, не сохраняя реальных данных вообще.

Когда вы заходите на какую-либо страницу, у вас обычно есть имя пользователя и личный пароль, или любые другие учетные данные для входа. Теперь, если вы хотите, чтобы приложение могло что-то делать через этот логин, вам нужно будет предоставить этому приложению ваши первоначальные данные для входа. Это означает, что вы вводите ваше имя пользователя и пароль в приложение. Пока это неплохо, но дело в том, что если вы хотите войти в систему через это приложение, оно должно хранить ваши учетные данные. Но чтобы можно было отправлять правильные данные для входа на реальную страницу, необходимо сохранить их в исходном виде (только с некоторым шифрованием или чем-то еще). Поэтому, если кто-то знает, как данные хранятся в приложении, он может извлечь ваши исходные учетные данные.

Это проблема безопасности, и именно в нее входит OAuth. С OAuth каждое приложение идентифицируется ключом потребителя и секретом потребителя. Оба являются уникальными для клиента, и обычно ни один пользователь никогда не увидит их (особенно не секрет). Теперь, когда вы хотите, чтобы ваше приложение имело доступ к странице, вы запускаете процесс авторизации OAuth. Вы просто входите на страницу и явно разрешаете этому специальному приложению (идентифицированному ключом потребителя) доступ. Если вы сделаете это, приложение получит другую пару ключей, токен доступа и секрет доступа. Эта пара ключей работает только для вашей учетной записи и работает только при использовании точным приложением (идентифицированным ключом потребителя и защищенным как исходное приложение по секрету потребителя). Теперь все, что необходимо сохранить приложению, - это та пара ключей доступа (вместе с уже сохраненной парой ключей потребителя), и она будет иметь доступ к странице, даже не увидев исходные данные для входа.

Таким образом, никто не сможет получить ваши действительные данные для входа, и никто другой (или никакое другое приложение) не сможет использовать сгенерированные учетные данные для доступа к странице. И если вы не хотите, чтобы приложение все еще имело доступ, вы можете легко отозвать пару ключей доступа, чтобы приложение больше не могло использовать ее.

Так что OAuth - это просто способ защитить ваши настоящие данные для входа. Кроме того, он не добавляет никакого другого уровня безопасности или чего-то еще, он просто защищает ваши данные.

13 голосов
/ 18 августа 2010

По ссылке, предоставленной Крейгом Штунцем:

Открытый идентификатор дает вам один логин для нескольких сайтов. Каждый раз, когда вам нужно войти в Zooomr - сайт, использующий Open ID - вы будете перенаправлены на ваш сайт Open ID, где вы входите, а затем снова в Zooomr. OAuth позволяет вам авторизовать один веб-сайт - потребителя - для доступа к вашим данным с другого веб-сайта - провайдера. Например, вы хотите авторизовать поставщика печати - назовите его Moo - чтобы получить ваши фотографии из хранилища фотографий - назовите его Flickr. Moo перенаправит вас на Flickr, который спросит вас, например: «Moo хочет загрузить ваши фотографии с Flickr. Это круто? », А затем возвращаемся к Му, чтобы распечатать ваши фотографии.

DotNetOpenAuth - хорошая библиотека C # для Open ID и OAuth.

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