OAuth (Open Authorization – отворена оторизация) е стандарт за оторизация, който позволява на приложение на трета страна да получи ограничен достъп до профила ви в HTTP услуга, като например платформа на социална медия, без да споделя паролата ви.
OAuth, или автентикация по отворен стандарт, е рамка или протокол, който позволява на клиентски приложения сигурен достъп до други сървъри и услуги. С помощта на OAuth можете безопасно да контролирате този достъп на трети страни, за да защитите паролите и данните за вход.
Когато взаимодействате с уебсайтове или уеб-базирани приложения, като например акаунтите си в социалните мрежи, трети страни могат да поискат разрешение за достъп до защитената ви информация. Ако им дадете разрешение, OAuth може да защити личната ви информация в случай на пробив в системата на третата страна или друга извънредна ситуация.
Случвало ли ви се е да видите изскачащ прозорец, който иска разрешение за публикуване в социалните ви медии, за достъп до смарт устройствата ви или за споделяне на файлове в различни платформи? Ако да, най-вероятно вече сте използвали OAuth. Но какво точно представлява OAuth и как работи? Безопасно ли е да се използва тази рамка? Нека да разберем – и още!
Какво е OAuth?
OAuth (смътно наричана OAuth автентикация) е сигурен начин за предоставяне на достъп на приложения до вашата информация в други уебсайтове. Най-добрата част? Не е необходимо да споделяте паролата си. Представете си, че искате приложение за фитнес да получи достъп до данните за тренировките ви в отделно приложение за здраве. С помощта на OAuth можете да дадете на фитнес приложението разрешение за достъп до тези конкретни данни, без да му давате данните си за вход в здравното приложение.
Въпреки това хората често се чудят: OAuth е удостоверяване или оторизация? Въпреки името, OAuth е свързан с оторизация, а не с удостоверяване. Приложенията за удостоверяване, като Google Authenticator, проверяват кой сте (като проверка на личната карта в магазин). Оторизацията определя какво можете да правите, след като сте проверени (като например предоставяне на достъп до определени секции в магазина). OAuth се фокусира върху последното, като ви позволява да контролирате кои части от вашите данни са достъпни за приложенията в други платформи.
Как работи OAuth?
След като предоставите на трета страна достъп до профила си, автоматично започва процес на OAuth в шест стъпки. В този процес, известен като поток на OAuth, участват три групи: потребителят, третата страна, наричана приложение, и доставчикът на услуги.
В повечето случаи потребителят е първоначалният собственик на въпросния профил, приложението е това, което иска достъп до профила, а доставчикът на услуги е мястото, където се намира въпросният профил.
Стъпки в потока на OAuth:
- Разкриване на намерението: Потребителят разкрива, че иска да даде разрешение на дадено приложение за достъп до защитени сървъри или услуги. Това намерение най-често се разкрива по време на взаимодействие с приложения за социални медии или споделяне на файлове в различни системи.
- Искане на разрешение от доставчика на услуги: Приложението иска разрешение от доставчика на услуги за оторизация. Ако то бъде разрешено, доставчикът на услуги дава на приложението токън за заявка и споделя с потребителя случайно генерирана парола, известна като тайна. Потребителят ще подписва всяка заявка за удостоверяване с тайната, така че доставчикът на услуги да може да провери, че той наистина прави заявката.
- Пренасочване: Приложението дава на потребителя токена на заявката. След това той се пренасочва към доставчика на услуги, за да предостави оторизация на приложението.
- Разрешение от потребителя: Потребителят разрешава маркера на заявката. Когато бъде оторизиран, приложението се връща към доставчика на услуги, без да изисква пароли или потребителски имена. Доставчикът на услуги ще попита потребителя какви разрешения да предостави и ще одобри маркера за заявка.
- Получаване на токен за достъп: Приложението разменя своя токен за заявка за токен за достъп и тайна от доставчика на услуги.
- Достъп до потребителския профил: Всеки път, когато приложението получава достъп до сървърите или услугите на потребителя, то трябва да представи своя токен за достъп и тайната си на доставчика на услуги.
Вместо да разкрива информация за парола на потребители от трети страни, OAuth използва токени за оторизиране на самоличността на потребителя, връзката му с акаунт и доставчиците на услуги. Токенът на OAuth е по-сигурен от споделянето на информация за парола и също така е защитен от тайна, известна само на потребителя, приложението и доставчика на услуги.
SAML срещу OAuth
Езикът за маркиране на твърдения за сигурност (Security Assertion Markup Language – SAML) често се сравнява с OAuth. Първият може да бъде наречен “по-голям брат” на OAuth поради приликите между двете програми. Тъй като SAML използва XML и “бисквитки”, за да предоставя на потребителите достъп до уеб карти, като едновременно с това удостоверява и оторизира идентификационните данни, в крайна сметка той стана твърде остарял за високотехнологичните мобилни, уеб и игрови приложения.
Въпреки че тези два протокола имат някои сходства, между тях има редица важни разлики.
OAuth
Отворена стандартна рамка за удостоверяване на потребители и приложения
JSON
Използва API повиквания за осигуряване на просто мобилно изживяване
Най-добре се използва за мобилни приложения, модерни уеб приложения, игрови конзоли и устройства за интернет на нещата (IoT)
SAML
Отворен стандарт, който предава удостоверения за оторизация на доставчици на услуги
XML
Използва бисквитки на сесията за корпоративна сигурност
Приложения за еднократно влизане
OAuth 1.0 срещу OAuth 2.0
Въпреки че OAuth е стандартна рамка за удостоверяване, съществуват различни версии на нейните протоколи. OAuth 1.0 е оригиналната отворена стандартна рамка за удостоверяване, докато OAuth 2.0 е по-новата, по-разпространена версия. Тъй като се очакваше OAuth 2.0 да замени по-старите версии на рамката, 1.0 и 2.0 са несъвместими. Уебсайтовете обаче могат да поддържат и двете версии на OAuth, въпреки че между тях има съществени разлики.
OAuth 2.0 е по-широко разпространената версия на рамката. Много уебсайтове на високо ниво и експерти насърчават потребителите да използват този стандартен протокол за удостоверяване, тъй като той предлага по-сигурно, гъвкаво и удобно за потребителите удостоверяване в сравнение с OAuth 1.0.
Примери за OAuth
Приложенията на трети страни започнаха все по-често да използват OAuth за достъп до потребителски профили, публикуване в акаунти и влизане в уебсайтове и мобилни приложения. Ето няколко примера за това как можете да използвате OAuth с приложения за социални медии, устройства за интелигентен дом и облака за споделяне на файлове. Въпреки че това са някои от най-често срещаните употреби на OAuth, протоколът намира приложение и в различни други области.
Приложения за социални медии
Платформите за социални медии като Facebook съхраняват потребителски профили и контролират достъпа до тези данни. За да получат достъп до тази информация, външните приложения се нуждаят от OAuth токен (и тайна), предоставен от платформата. По този начин се гарантира, че потребителите контролират какви данни се споделят, и се предотвратява достъпът на приложения до неоторизирана информация.
Например, ако искате приложение като ESPN да публикува актуализации във вашия Facebook, то се нуждае от разрешението на Facebook. Facebook предоставя токени за достъп, след като разрешите искането, като запазва сигурността на данните ви за вход.
Устройства за интелигентен дом
Устройствата за интелигентен дом, като Nest Learning Thermostat, контролират данните на потребителите и изискват OAuth за сигурен достъп. Това гарантира, че приложенията на трети страни получават оторизирано разрешение от потребителя, преди да получат достъп до информация като температурни настройки или да контролират дома ви, например да включват или изключват осветлението въз основа на сигнали за сигурност.
Споделяне на файлове в облака
Споделянето на файлове в облака между различни платформи може да бъде трудно без OAuth. Да речем, че искате да споделите сватбения си албум в Google Drive с родители, които използват Microsoft OneDrive. OAuth ви позволява да предоставите сигурен достъп, без те да се нуждаят от допълнителни акаунти.
Въпреки че съхранението в облака криптира съдържанието, OAuth добавя още едно ниво на защита при споделяне на данни. За безпроблемна връзка обаче и двете платформи трябва да поддържат една и съща версия на OAuth.
Често задавани въпроси за OAuth
Имате въпроси за OAuth? Имаме отговори! Запознайте се с този раздел с често задавани въпроси, за да научите повече за това как работи OAuth и как предпазва данните ви.
Безопасен ли е OAuth?
Все още не е намерено напълно сигурно решение за запазване на паролите и идентификационните данни, когато се предоставя удостоверен достъп на трети страни. Въпреки това използването на OAuth (по-специално OAuth 2.0) може значително да повиши сигурността по време на процесите на удостоверяване и оторизация. Освен това комбинирането на OAuth с Transport Layer Security (TLS) или Secure Sockets Layer (SSL) може допълнително да повиши сигурността на удостоверяването на данни.
За какво се използва OAuth?
OAuth се използва за сигурна оторизация вместо за споделяне на пароли. Тя позволява на приложенията да имат достъп до личната ви информация в други платформи с ваше разрешение. По този начин вие контролирате какви данни се споделят и запазвате паролите си сигурни.
Каква е разликата между OAuth и стандартното удостоверяване?
Да кажем, че искате да споделите епичния си плейлист за тренировка от Spotify с вашия фитнес инструктор. При стандартно удостоверяване ще трябва да му дадете паролата си! Входът чрез OAuth ви позволява да предоставите на инструктора достъп до плейлистата си от Spotify директно, без да разкривате паролата си. Те получават това, от което се нуждаят, а вашият вход остава защитен.
Какво е OAuth Token?
Токенът OAuth е цифров ключ, който позволява на оторизирани приложения да имат достъп до определени части от вашите данни в други платформи. Представете си, че имате домашно парти – токените OAuth са като пропуски за гости.
След като научихте “Какво е OAuth?”, може би се чудите как да избегнете хакване или загуба на данните си за вход. Без подходящи практики за удостоверяване и оторизация е по-лесно за външни сили да хакнат акаунтите ви, като използват атаки тип “човек по средата” и други атаки за кражба на удостоверения.
Проактивността и разбирането на вашата среда за сигурност са най-добрият начин да избегнете кибератаки, които крадат вашите идентификационни данни. Подсигурете мрежата си и достъпа до интернет, като инвестирате във VPN услуга с Panda Security, и практикувайте защита на паролите, като използвате нашия мениджър на пароли.