Что такое OAuth (Open Authorization)?

Что такое OAuth (открытая авторизация)?

Я почерпнул некоторую информацию из

Но я хочу учиться и знать больше. Я ищу информацию о жизненном цикле. Почему большинство социальных сетей используют этот открытый протокол?

Станет ли это де-факто в ближайшем будущем с различными технологиями (например, ASP.NET)?

Ответ 1

Что такое OAuth (Open Authorization)?

OAuth позволяет уведомлять поставщика ресурсов (например, Facebook), что владелец ресурса (например, вы) предоставляет разрешение стороннему например приложение Facebook), доступ к их информации (например, список ваших друзей).

Если вы прочтете это, как ясное дело, я пойму ваше замешательство. Поэтому отпустите конкретный пример: присоедините еще одну социальную сеть!

Скажите, что у вас есть существующая учетная запись GMail. Вы решили присоединиться к LinkedIn. Добавление всех ваших многочисленных, много друзей вручную утомительно и подвержено ошибкам. Вы можете устать на полпути или вставить опечатки в свой адрес электронной почты для приглашения. Поэтому у вас может возникнуть соблазн не создавать учетную запись в конце концов.

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

Без API для обмена этим списком контактов вам нужно будет указать LinkedIn имя пользователя и пароль для вашей учетной записи GMail, тем самым предоставит им слишком много энергии.

Здесь присутствует OAuth. Если ваш GMail поддерживает протокол OAuth, LinkedIn может попросить вас разрешить им доступ к вашему списку контактов GMail.

OAuth позволяет:

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

Будет ли он де-факто (стандартным?) в ближайшем будущем?

Ну, хотя OAuth является значительным шагом вперед, он не решает проблемы, если люди не используют его правильно. Например, если поставщик ресурсов предоставляет только один уровень доступа для чтения и записи всем вашим ресурсам сразу и не обеспечивает механизм управления доступом, тогда нет никакого смысла. Другими словами, OAuth является основой для предоставления полномочий авторизации, а не просто проверки подлинности.

На практике он очень хорошо подходит к модели социальной сети. Он особенно популярен для тех социальных сетей, которые хотят разрешить сторонние "плагины". Это область, в которой доступ к ресурсам по своей сути необходим, а также по своей сути ненадежный (т.е. У вас мало или вообще нет контроля качества над этими приложениями).

Я не видел так много других применений в дикой природе. Я имею в виду, что я не знаю онлайн-консалтинговой фирмы, которая автоматически получит доступ к вашим банковским записям, хотя это может быть технически использовано таким образом.

Ответ 2

Что такое oAuth?

OAuth - это просто безопасный протокол авторизации, который касается авторизации стороннего приложения для доступа к пользовательским данным, не подвергая их паролю. например. (Вход с fb, gPlus, твиттер на многих сайтах..) все работают по этому протоколу.

Участвующие стороны

Протокол становится проще, когда вы знаете вовлеченных сторон. В основном есть три стороны: oAuth Provider, oAuth Client и Owner.

  • oAuth Client (приложение, которое хочет получить доступ к вашим учетным данным)
  • Поставщик OAuth (например, facebook, twitter...)
  • Владелец (лицо с учетной записью facebook, twitter..)

Как это работает?

Я предположил сценарий, когда веб-сайт (stackoverflow) должен добавить логин с функцией facebook. Таким образом, facebook является поставщиком OAuth, а stackoverflow - это oAuth Client.

  • Этот шаг выполняется разработчиком приложения. В самом начале facebook (поставщик OAuth) понятия не имеет о stackoverflow (oAuth Client), потому что между ними нет связи. Итак, самый первый шаг - зарегистрировать stackoverflow на сайте разработчиков . Это делается вручную, когда разработчикам необходимо предоставить информацию о приложении в facebook, например имя приложения, веб-сайт, логотип, перенаправить URL-адрес (важный). Затем stackoverflow успешно зарегистрирован, имеет идентификатор клиента, клиентский секрет и т.д. Из facebook и работает с OAUTH. введите описание изображения здесь

    2. Теперь, когда пользователь stackoverflow нажимает кнопку входа с помощью кнопки fb. Stackoverflow запрашивает facebook с ClientId (fb использует его для распознавания клиента) и redirectUrl (fb вернется обратно к этому URL-адресу после успеха). Таким образом, пользователь перенаправляется на страницу входа в facebook. Это лучшая часть пользователь (владелец) не предоставляет свои учетные данные facebook для stackoverflow.

введите описание изображения здесь

введите описание изображения здесь

  1. После того, как владелец разрешает Stackoverflow получать доступ к информации. Затем Facebook перенаправляет обратно в stackoverflow вместе с authcode, используя redirectUrl, предоставленный на шаге 2.
  2. Затем Stackoverflow связывается с facebook вместе с полученным authcode, чтобы убедиться, что все в порядке.
  3. Только тогда facebook предоставит токен доступа в stackoverflow. Затем токен доступа используется stackoverflow для извлечения информации о владельце без использования пароля. Это весь мотив oAuth, где acutal credentails никогда не подвергается действиям сторонних разработчиков.

Подробнее:

Быстрое видео

Веб-ссылка

Ответ 3

Проще говоря, OAuth - это способ для приложений получать учетные данные для вашей информации без прямого доступа к вашей учетной записи пользователя на какой-либо веб-сайт. Например, если вы пишете приложение на своем собственном веб-сайте и хотите, чтобы оно использовало данные из учетной записи пользователя facebook, вы можете использовать OAuth для получения токена с помощью URL-адреса обратного вызова, а затем использовать этот токен, чтобы совершать вызовы API facebook, чтобы получить их использовать данные до истечения срока действия токена. Веб-сайты полагаются на него, потому что он позволяет программистам получать доступ к своим данным без необходимости прямого раскрытия информации и распространения своих учетных данных в Интернете, но при этом обеспечить уровень защиты данных. Станет ли он фактическим методом авторизации? Возможно, недавно он получал большую поддержку от Twitter, Facebook и тех, где другие программисты хотят создавать приложения вокруг пользовательских данных.

Ответ 4

Oauth определенно набирает обороты и становится популярным среди корпоративных API. В мире приложений и данных предприятия расширяют API все больше и больше во внешнем мире в соответствии с Google, Facebook, Twitter. С этой разработкой формируется трехсторонний треугольник аутентификации

1) Поставщик API. Любое предприятие, которое предоставляет свои активы API, например Amazon, Target и т.д. 2) Разработчик - тот, кто создает мобильные/другие приложения поверх этих API 3) Конечный пользователь - конечный пользователь услуги, предоставляемой - например, зарегистрированными/гостевыми пользователями Amazon

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

Oauth - это система авторизации, которая пытается решить вышеупомянутую проблему стандартным образом. Учитывая известность API и приложений, эта проблема станет все более актуальной, и любой стандарт, который пытается ее решить - будь то ouath или любой другой - будет заботиться о качестве поставщика/разработчика API и даже конечного пользователя!

Ответ 5

OAuth пере Авт orization) является открытым стандартом для протокола предоставления доступа/делигации. Он использовался как способ для пользователей Интернета предоставлять веб-сайтам или приложениям доступ к их информации на других веб-сайтах, но без предоставления им паролей. Это не касается аутентификации.

Или же

OAuth 2.0 - это протокол, который позволяет пользователю предоставлять ограниченный доступ к своим ресурсам на одном сайте, другому сайту, не раскрывая свои учетные данные.

  • Аналогия 1. Многие роскошные автомобили сегодня поставляются с ключами. Это специальный ключ, который вы даете парковщику и, в отличие от вашего обычного ключа, не позволит машине проехать более мили или двух. Некоторые ключи камердинера не открывают сундук, в то время как другие блокируют доступ к вашей бортовой адресной книге мобильного телефона. Независимо от того, какие ограничения накладывает ключ камердинера, идея очень умная. Вы предоставляете кому-то ограниченный доступ к вашему автомобилю с помощью специального ключа, в то время как ваш обычный ключ открывает все. источник от auth0

  • Аналогия 2: Предположим, мы хотим заполнить форму заявки на банковский счет. Здесь Oauth работает так, что вместо заполнения заявителем банк может заполнить форму, используя Adhaar или паспорт.

    Здесь задействованы следующие три объекта:

    1. Заявитель т.е. владелец
    2. Банковский счет - это OAuth Client, им нужна информация
    3. Adhaar/Passport ID является поставщиком OAuth

Ответ 6

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

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

Ответ 7

OAuth произошло, когда мы подписали учетную запись SO с помощью Facebook/Google Кнопка.

  • Приложение (SO) перенаправляет пользователя на URL авторизации поставщика. (Отображение веб-страницы с запросом пользователя, хочет ли он предоставить доступ к приложению для чтения и обновления своих данных).
  • Пользователь соглашается предоставить процесс подачи заявки.
  • Поставщик услуг перенаправляет пользователя обратно в приложение (SO), передавая код авторизации как параметр.
  • SO обменивает код для доступа.

Источник: Поставщики услуг OAuth1

Ответ 8

OAuth - это открытый стандарт авторизации, который обычно используется как способ для пользователей Интернета регистрироваться на сторонних сайтах, используя свои учетные записи Microsoft, Google, Facebook или Twitter, не раскрывая их пароль.

Ответ 9

OAuth - это протокол, который используется владельцем ресурса (facebook, google, твиттер, microsoft live и т.д.) Для предоставления необходимой информации или предоставления разрешения на успешную запись в стороннюю систему (например, на ваш сайт). Скорее всего, без протокола OAuth учетные данные должны быть доступны для систем третьей части, что будет неприемлемым способом связи между этими системами.