Кто-нибудь может объяснить OAuth?

Я немного читал об этом на http://oauth.net/ , это "простой способ публиковать защищенные данные и взаимодействовать с ними », по-видимому.

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

Итак, проще говоря, что именно он делает, и есть ли какие-нибудь (действительно) простые примеры этого в действии, за которыми я могу следовать, предпочтительно реализуя что-то на c #, к которому можно получить доступ из приложения для смартфона?

14
задан Robert Longson 16 September 2016 в 18:10
поделиться

2 ответа

Из ссылки, предоставленной Крейгом Стунцем:

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

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

13
ответ дан 1 December 2019 в 10:17
поделиться

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

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

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

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

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

13
ответ дан 1 December 2019 в 10:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: