Что такое OAuth (открытая авторизация)?
OAuth позволяет уведомить поставщика ресурсов (например, Facebook) о том, что владелец ресурса (например, вы) предоставляет третьему лицу (например, приложению Facebook) разрешение на доступ к их информации (например, списку ваших друзей).
Если бы вы прочитали это прямо, я бы понял ваше замешательство. Итак, давайте рассмотрим конкретный пример: присоединиться к еще одной социальной сети!
Скажем, у вас есть существующая учетная запись GMail. Вы решили присоединиться к LinkedIn. Добавление всех ваших многочисленных друзей вручную утомительно и подвержено ошибкам. Вы можете быть сыт по горло или вставить опечатки в их адрес электронной почты для приглашения. Таким образом, у вас может возникнуть соблазн не создавать учетную запись в конце концов.
Столкнувшись с этой ситуацией, LinkedIn имеет Good Idea (TM), чтобы написать программу, которая автоматически добавляет ваш список друзей, потому что компьютеры намного эффективнее и эффективнее в утомительных и подверженных ошибкам задачах. С момента присоединения к сети теперь так легко, нет никакого способа , , вы бы отказаться от такого предложения, теперь не так ли?
Без API для обмена этим списком контактов вы должны были бы указать LinkedIn имя пользователя и пароль для вашей учетной записи GMail, что дает им слишком много возможностей .
Вот где приходит OAuth. Если ваш GMail поддерживает протокол OAuth, LinkedIn может попросить вас разрешить им доступ к вашему списку контактов GMail.
OAuth позволяет:
- Различные уровни доступа: только для чтения VS для чтения и записи. Это позволяет вам предоставить доступ к вашему списку пользователей или двунаправленный доступ для автоматической синхронизации ваших новых друзей в LinkedIn с вашими контактами GMail.
- Детализация доступа: вы можете решить предоставить доступ только к вашей контактной информации (имя пользователя, адрес электронной почты, дата рождения и т. Д.) Или ко всему списку друзей, календарю и т. Д.
- Позволяет управлять доступом из приложения поставщика ресурсов. Если стороннее приложение не предоставляет механизм отмены доступа, вы застряли бы в том, чтобы они имели доступ к вашей информации. С OAuth есть возможность аннулировать доступ в любое время.
Станет ли это де-факто (стандартом?) В ближайшем будущем?
Ну, хотя OAuth является значительным шагом вперед, он не решает проблемы, если люди не используют его правильно. Например, если поставщик ресурсов предоставляет только один уровень доступа на чтение и запись ко всем вашим ресурсам одновременно и не предоставляет механизм управления доступом, то в этом нет никакого смысла. Другими словами, OAuth - это структура, обеспечивающая функциональность авторизации, а не только аутентификацию.
На практике это очень хорошо вписывается в модель социальной сети. Это особенно популярно для тех социальных сетей, которые хотят разрешить сторонние «плагины». Это область, где доступ к ресурсам по своей природе необходим, а также ненадежен по своей природе (т. Е. У вас практически отсутствует контроль качества этих приложений).
Я не видел так много других применений в дикой природе. Я имею в виду, я не знаю онлайн финансовой консультации фирмы , которая будет иметь доступ ваши банковские записи автоматически, хотя это может технически использовать таким образом.
OAuth - это просто безопасный протокол авторизации, который имеет дело с авторизацией стороннего приложения для доступа к данным пользователя без раскрытия их пароля. например. (Авторизуйтесь через fb, gPlus, twitter на многих сайтах ...) все работают по этому протоколу.
Протокол становится проще, когда вы знаете вовлеченных сторон. В основном участвуют три стороны: поставщик oAuth, клиент oAuth и владелец.
Я предположил сценарий, когда веб-сайту (stackoverflow) необходимо добавить логин с помощью функции Facebook. Таким образом, Facebook является oAuth-провайдером, а стекопоток - oAuth-клиентом.
Этот шаг сделан разработчиком приложения . В самом начале Facebook (oAuth Provider) не имеет представления о стековом потоке (oAuth Client), потому что между ними нет связи. Итак, самый первый шаг - зарегистрировать stackoverflow на сайте разработчиков Facebook . Это делается вручную, когда разработчикам необходимо предоставить информацию о приложении на Facebook, такую как название приложения, веб-сайт, логотип, URL-адрес перенаправления (важный). Затем stackoverflow успешно регистрируется, получает идентификатор клиента, секрет клиента и т. Д. Из Facebook и работает с OAUTH .
2. Теперь, когда пользователь stackoverflow нажимает кнопку входа с помощью кнопки fb . Stackoverflow запрашивает facebook с ClientId (fb использует его для распознавания клиента) и redirectUrl (fb вернется к этому URL после успешного завершения). Таким образом, пользователь перенаправляется на страницу входа в Facebook. Это лучшая часть, которую пользователь (владелец) не передает своим учетным данным facebook в stackoverflow.
Для большего:
Быстрое видео
интернет-ссылка
источник
Проще говоря, OAuth - это способ, позволяющий приложениям получать учетные данные к вашей информации, не передавая информацию для входа в систему на каком-либо веб-сайте. Например, если вы пишете приложение на своем веб-сайте и хотите, чтобы оно использовало данные из учетной записи Facebook пользователя, вы можете использовать OAuth для получения токена через URL-адрес обратного вызова, а затем использовать этот токен для вызова API-интерфейса Facebook, чтобы получить их использовать данные до истечения срока действия токена. Веб-сайты полагаются на это, потому что это позволяет программистам получать доступ к своим данным, при этом пользователю не нужно напрямую раскрывать свою информацию и распространять свои учетные данные в Интернете, но при этом обеспечивать уровень защиты данных. Станет ли это де-факто методом авторизации? Возможно, в последнее время он получает большую поддержку от Twitter, Facebook,
источник
Oauth определенно набирает обороты и становится популярным и среди корпоративных API. В мире приложений и данных предприятия предоставляют все больше и больше API-интерфейсов для внешнего мира в соответствии с Google, Facebook, Twitter. С этим развитием формируется трехсторонний треугольник аутентификации
1) провайдер API - любое предприятие, которое предоставляет свои активы через API, например Amazon, Target и т. Д. 2) разработчик - тот, кто создает мобильные / другие приложения на основе этих API 3) конечный пользователь - конечный пользователь услуги, предоставляемой - говорят зарегистрированные / гостевые пользователи Amazon
Теперь это развивает ситуацию, связанную с безопасностью - (я перечисляю некоторые из этих сложностей) 1) Вы, как конечный пользователь, хотите разрешить разработчику доступ к API от вашего имени. 2) Поставщик API должен аутентифицировать разработчика и конечного пользователя. 3) Конечный пользователь должен иметь возможность предоставлять и отзывать разрешения для согласия, которое он дал. 4) Разработчик может иметь разный уровень доверия с поставщиком API, в какой уровень разрешений, данных ей, отличается
Oauth - это структура авторизации, которая пытается решить вышеупомянутую проблему стандартным способом. С появлением API и приложений эта проблема будет становиться все более актуальной, и любой стандарт, который попытается ее решить - будь то Uath или любой другой - будет чем-то, о чем нужно заботиться, как поставщику / разработчику API, так и даже конечному пользователю!
источник
OAuth ( O pen Авт orization) является открытым стандартом для протокола предоставления доступа / делигации. Он использовался как способ для пользователей Интернета предоставлять веб-сайтам или приложениям доступ к их информации на других веб-сайтах, но без предоставления им паролей. Это не касается аутентификации .
Или
OAuth 2.0 - это протокол, который позволяет пользователю предоставлять ограниченный доступ к своим ресурсам на одном сайте, другому сайту, не раскрывая свои учетные данные.
Аналогия 1. Многие роскошные автомобили сегодня поставляются с ключами. Это специальный ключ, который вы даете парковщику и, в отличие от вашего обычного ключа, не позволит машине проехать более мили или двух. Некоторые ключи камердинера не открывают багажник, в то время как другие блокируют доступ к вашей бортовой адресной книге мобильного телефона. Независимо от того, какие ограничения накладывает ключ камердинера, идея очень умная. Вы даете кому-то ограниченный доступ к вашему автомобилю с помощью специального ключа, в то время как ваш обычный ключ открывает все. источник от auth0
Аналогия 2: Предположим, мы хотим заполнить форму заявки на банковский счет. Здесь Oauth работает так, как вместо заполнения заявителем банк может заполнить форму, используя Adhaar или паспорт.
Здесь задействованы следующие три объекта:
источник
OAuth - это все о делегировании авторизации (выбор человека, который может сделать авторизацию для вас). Обратите внимание, что аутентификация и авторизация - это разные вещи. OAuth - это Авторизация (Контроль доступа), и если вы также хотите внедрить Аутентификацию (проверку идентификатора), можно использовать протокол OpenID поверх OAuth.
Все крупные компании, такие как Facebook, Google, Github, ... используют этот вид аутентификации / авторизации в настоящее время. Например, я только что вошел на этот сайт, используя свою учетную запись Google, это означает, что Stackoverflow не знает мой пароль, он получает разрешение от Google, где мой пароль (очевидно, хэшированный) сохраняется. Это дает много преимуществ, одна из них; В ближайшее время вам не придется создавать несколько аккаунтов на каждом сайте. Один сайт (которому вы больше всего доверяете) может быть использован для входа на все остальные сайты. Так что вам нужно будет запомнить только один пароль.
источник
Источник: поставщики услуг OAuth1
источник
OAuth - это открытый стандарт авторизации, который обычно используется пользователями Интернета для входа на сторонние веб-сайты с использованием своих учетных записей Microsoft, Google, Facebook или Twitter без раскрытия своего пароля.
источник
OAuth - это протокол, который используется владельцем ресурса (Facebook, Google, твиттер, Microsoft Live и т. Д.) Для предоставления необходимой информации или для предоставления разрешения на успешную запись в стороннюю систему (например, на ваш сайт). Скорее всего, без протокола OAuth учетные данные должны быть доступны для систем третьей части, что будет неприемлемым способом связи между этими системами.
источник