„то такое OAuth?

ѕротокол авторизации

ћерион Ќетворкс

9 минут

¬ы наверн€ка слышали об опасност€х разглашени€ своих паролей и почему этого делать не стоит. —уществуют различные протоколы, предназначенные дл€ вашей защиты и которые избав€т вас от необходимости повторного ввода ваших паролей или учетных данных.  огда веб-сайт требует ввести пароль дл€ получени€ доступа, он может воспользоватьс€ техникой под названием OAuth дл€ того, чтобы упростить задачу.

÷ель этой статьи – показать вам, как веб-сайт или приложение принимают запросы на вход от пользователей, которые их посещают. ” этих платформ есть необходимые полномочи€? ≈сть ли у них право подтверждать вашу личность и получать доступ к некоторым вашим данным от вашего имени? OAuth объ€сн€ет весь этот процесс и помогает его упростить. ѕрочитайте статью до конца, чтобы узнать, как онлайн-проверки стали автоматизированными и как так получилось, что дл€ их завершени€ требуетс€ всего один клик.

OAuth

„то такое OAuth?

OAuth – это протокол авторизации открытого стандарта, который можно добавить в приложени€, чтобы позволить пользовател€м получать безопасный доступ к их платформе. Ќапример, с помощью этого протокола вы можете указать приложению Facebook разрешить ESPN.com доступ к вашим сообщени€м и обновлени€м в социальных сет€х без об€зательного раскрыти€ ваших учетных данных. “акой доступ позвол€ет существенно снизить риск. ≈сли на ESPN.com вдруг произойдет утечка данных, то информаци€, которой вы владеете в Facebook, будет защищена.

OAuth работает, не обменива€сь парол€ми с другими платформами. ¬место этого он просто отправл€ет им маркеры авторизации. Ётот маркер используетс€ дл€ подтверждени€ личности пользовател€. Ёто ключева€ стратеги€, которой пользуютс€ клиенты и поставщики услуг. ѕроще говор€, эта концепци€ представл€ет собой протокол аутентификации, который позвол€ет платформам и поставщикам услуг взаимодействовать, не выдава€ при этом свои пароли.


ѕримеры OAuth

ќдин из распространенных примеров протокола OAuth св€зан с большинством устройств Android.  огда вы покупаете смартфон Android, то вам необходимо войти в свою учетную запись электронной почты, чтобы получить доступ к большинству функций телефона.

 огда вы вошли в свою электронную почту в телефоне, то вам понадобитьс€ некотора€ информаци€ дл€ доступа к другим приложени€м или веб-сайтам. ѕринципы OAuth позвол€ют пользовател€м мгновенно обмениватьс€ своими учетными данными электронной почты с платформой. ¬ам не потребуетс€ вводить пароль, но при этом веб-сайт позволит вам аутентифицироватьс€ и получить доступ.

—уществует множество других примеров и вариантов использовани€ протокола OAuth, которые демонстрируют его концепцию. » это при условии, что вы можете обмениватьс€ своими учетными данными дл€ получени€ информации на разных платформах без повторного ввода парол€.

’орошим примером здесь может послужить ситуаци€, когда вас перенаправл€ют на другой веб-сайт, и вы получаете сообщение с текстом «Ёй, вы хотите получить доступ к нашему сайту с учетными данными другого сайта?» ƒавайте условно назовем веб-сайт, запрашивающий доступ пользовател€, получателем, а платформу, на которой вы в данный момент вошли в систему, - отправителем.  огда вы пытаетесь войти на сайт-получатель, вам необходимо будет узнать, заходите ли вы на сайт под тем же именем, что и на сайте-отправителе.

Facebook – один из наиболее распространенных примеров платформ, которые используют данный протокол.  огда вы используете приложение на Facebook, оно запросит доступ к информации и фотографи€м вашего профил€. ¬ таком случае Facebook €вл€етс€ отправителем ваших данных дл€ получени€ доступа и изображений. ѕриложение здесь €вл€етс€ получателем, и как пользователь вы намерены пользоватьс€ услугами принимающей платформы. Ќажима€ кнопку «–азрешить», вы предоставл€ете получателю доступ к вашим изображени€м, а OAuth существенно упрощает весь этот процесс.

Ќекоторым вашим умным домашним устройствам, таким как телевизору, системе безопасности, тостеру и т.д., требуетс€ вход в систему, чтобы вы могли управл€ть ими через браузер или мобильное устройство. Ёти устройства работают на, так называемой, конфиденциальной авторизации OAuth, и они надежно хран€т ваши учетные данные. “аким образом, вам не требуетс€ вводить свои учетные данные на различных терминалах веб-сайта.


 ак работает OAuth?

–еальность такова, что OAuth был разработан с целью фокусировки внимани€ на авторизации, а не на аутентификации. јвторизаци€ предполагает получение разрешени€ на выполнение определенных действий. ј вот аутентификаци€ предполагает доказательство того, то вы €вл€етесь лицом, которое имеет необходимый доступ к информации, защищенной в профиле. OAuth не запрашивает аутентификацию пользовател€, а просто разрешает доступ к другим приложени€м и ресурсам.

’ороший способ рассмотреть принцип работы этого протокола – это провести аналогию с ключом камердинера. “акой ключ предназначен дл€ того, чтобы дать камердинеру доступ к управлению вашим автомобилем, но при этом он не об€зательно позволит ему открыть багажник. “окен OAuth предназначен дл€ использовани€ в качестве служебного ключа дл€ вашего смарт-устройства.  ак пользователь вы можете контролировать информацию, котора€ будет использоватьс€ на разных платформах. ¬ы можете вручить ключ камердинера каждому получателю, но у них все равно не будет ключа полного доступа или доступа к конфиденциальных данным, которые скрыты в профиле.

¬ абсолютно любой транзакции OAuth участвуют 3 основные стороны: пользователь, отправитель и получатель. Ёти 3 стороны в шутку можно назвать любовным треугольником OAuth. ћы рассмотрим несколько простых шагов дл€ того, чтобы проиллюстрировать то, как OAuth обеспечивает защиту аутентификации дл€ пользователей на разных платформах.

  • Ўаг 1: пользователь показывает свое намерение получить доступ
  • Ўаг 2: получатель получает разрешение. ”четные цифровые идентификационные данные будут отправлены вместе с этим разрешением, которые будут использоватьс€ дл€ вы€влени€ подделки и проверки источника запроса на права доступа.
  • Ўаг 3: пользователь перенаправл€етс€ к поставщику услуг или отправителю.
  • Ўаг 4: пользователь дает разрешение.
  • Ўаг 5: получатель получает маркер доступа.
  • Ўаг 6: получатель получает доступ к защищенному ресурсу.
OAuth

SAML vs OAuth

ћногие люди очень легко могут указать на сходства между SAML и OAuth, но их концепции все же очень разные. SAML, также известный как €зык разметки утверждений безопасности, представл€ет собой альтернативный стандарт проверки личности пользовател€, который многие организации используют дл€ поддержки функций системы единого входа (SSO). SAML – это функци€, позвол€юща€ организаци€м контролировать тех, кто отвечает за корпоративные ресурсы.

ћежду SAML и OAuth есть множество различий. SAML использует XML дл€ отправки сообщений, а OAuth – технологию JSON. OAuth разработан дл€ того, чтобы упростить работу с мобильными устройствами, а SAML – дл€ обеспечени€ повышенного уровн€ безопасности. ѕоследнее различие €вл€етс€ основным. OAuth в основном полагаетс€ на API. »менно поэтому многие мобильные приложени€, современные веб-сайты, игровые приставки и »нтернет вещей используют данный протокол.  ак правило, OAuth предлагает пользовател€м больше возможностей. „тобы провести аутентификацию пользовател€, SAML сбрасывает cookie сессию в браузере пользовател€, котора€ позвол€ла человеку получать доступ к определенным веб-страницам. “акой вариант отлично подходит дл€ краткосрочного доступа, но не очень подходит дл€ случаев, когда вам необходимо входить в сеть многократно.


OpenID vs OAuth

≈сли говорить простым €зыком, то OpenID используетс€ дл€ аутентификации, а OAuth – дл€ авторизации.

OpenID поддерживает интегрированную аутентификацию. Ёто означает, что он поддерживает сторонние приложени€ дл€ поддержки и аутентификации пользователей при попытке использовать уже имеющиес€ учетные записи. ¬ то же врем€, OAuth был разработан дл€ того, чтобы вам не приходилось вводить свои учетные данные дл€ входа в сторонние приложени€.

ќба протокола могут использоватьс€ дл€ выполнени€ похожих задач, но это вовсе не означает, что они взаимозамен€емы. OpenID обеспечивает подтверждение личности, в то врем€ как OAuth имеет более общее направление использовани€.  огда клиент использует OAuth, сервер выдает маркер доступа третьей стороне, этот маркер используетс€ дл€ доступа к защищенному ресурсу, а источник провер€ет этот маркер. «десь еще стоит обратить внимание на то, что личность владельца маркера не провер€етс€.

—равнение

 

SAML 2.0

OAuth2

OpenID Connect

 

„то это?

ќткрытый стандарт аутентификации и авторизации

ќткрытый стандарт авторизации

ќткрытый стандарт аутентификации

 

ќсновное назначение

SSO дл€ корпоративный приложений

API-авторизаци€

ѕоддержка сторонних приложений

SSO дл€ корпоративных приложений

‘ормат

XML

JSON

JSON

 

OAuth 1.0 vs OAuth 2.0

OAuth 2.0 призван полностью улучшить работу OAuth 1.0. Ёти два похожих фреймворка просто несопоставимы. ≈сли вы сейчас создаете новое приложение или веб-сайт, то убедитесь, что они основаны именно на OAuth 2.0. Ѕольшинство современных веб-сайтов уже перешли на OAuth 2.0, потому что OAuth 1.0 просто-напросто обесценилс€.

ѕоследнюю версию, OAuth 2.0, проще и быстрее реализовать в приложени€х и на веб-сайтах. OAuth 1.0 был разработан с учетом криптографических требований, а также он не поддерживал более трех потоков и даже масштабирование.

OAuth 2.0 разработан так, что он поддерживает целых шесть потоков, которые в свою очередь поддерживают различные приложени€ и требовани€. Ётот протокол аутентификации позвол€ет использовать подписанные учетные идентификационные данные через HTTPS. “окены OAuth не нужно шифровать при отправке из одного места в другое, поскольку они шифруютс€ непосредственно при передаче.

OAuth 2.0

 ак OAuth защищает API?

«ащитить API можно с помощью API Connect. OAuth – это специальный протокол авторизации, который делает доступными сторонние веб-сайты и приложени€ без регистрации учетных данных пользовател€ или личной информации.

—ценарий пользовател€ OAuth

Ћюди, использующие API Connect совместно с этим протоколом, используют несколько методов дл€ защиты своего API. ¬от некоторые доступные варианты:

  • —оздание API поставщика OAuth. API поставщика будет содержать токены OAuth дл€ обеих конечных точек потока OAuth.
  • «ащита API с помощью определени€ безопасности OAuth.  огда вы добавл€ете определение безопасности этого протокола в свое приложение или на веб-сайт, то вы добавл€ете настройки, которые позвол€ют вам контролировать операции API с помощью стандарта авторизации OAuth.
  • URL-адрес метаданных OAuth и URL-адрес аутентификации. ¬ы можете установить URL-адрес метаданных OAuth или URL-адрес аутентификации, который будет использоватьс€ дл€ получени€ пользовательского контента с веб-сайта.   нему будет установлен доступ с удаленного сервера, и он будет добавлен в маркер доступа или как часть полезных данных, содержащих маркер безопасности.

ќтветы OAuth

¬о врем€ выполнени€ процесса OAuth 2.0 API Connect дает различные ответы на запросы.

”странение неполадок OAuth

≈сли у вас возникли какие-либо проблемы с данным протоколом, то вы можете устранить неполадки самосто€тельно. ѕерейдите на портал разработчиков и форумы на Youtube, Github и DeveloperWorks.


—кидки 50% в Merion Academy

¬ыбрать курс