Как танцевать OAuth: пошаговый урок

1656586095 kak tanczevat oauth poshagovyj urok

Анабелла Спинелли

2OTpC-qTMlakXZIliQnijKEwQeg49b8beEo8
Пять, шесть, семь, восемь!

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

Просто пробуйте, пока что-нибудь не получится.

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

Поэтому я решил перестать желать и сделать это сам, используя последнее, чему научился.

И это был OAuth 2.0.

Что такое OAuth?

Начнем с основ: OAuth означает Откройте авторизацию. Это процесс, посредством которого приложение или веб-сайт может получить доступ к частным данным пользователя с другого веб-сайта.

Этот другой веб-сайт обычно работает только как надежный. поставщик идентификационных данных. Он предоставляет запрашивающей программе основную информацию о вас, чтобы программа могла создать профиль. Итак, вам не придется заполнять скучную форму регистрации и иметь дело с очередным паролем?

Вы уже использовали это по меньшей мере миллион раз, на самом деле вы использовали его каждый раз, когда нажимали «Войти с помощью Facebook/Google/GitHub/…». Далее вам показали экран согласия, показывающий, какую информацию из вашего (скажем) профиля Facebook вы разрешаете that-hot-new-app.com читать (а иногда и писать). После этого, поскольку that-hot-new-app.com доверяет идентификатору, предоставленному Facebook, они могут создать для вас профиль в своей базе данных, используя данные, которые они получили.

Общение между that-hot-new-app.com и Facebook обычно заканчивается на этом. Вот почему изображение вашего профиля не изменится по всему Интернету, если вы измените его на Facebook. Они просто никогда не возвращаются в Facebook и не спрашивают обновленных данных.

Когда начинают играть ритмы маримбы…

Существует еще одна цель создания такого типа механизма, который имеет гораздо больший потенциал: использование поставщика идентификационных данных как a поставщик услуг (на постоянной основе). Это означает регулярное общение с ним для обеспечения расширенных функций для ваших пользователей.

Хороший пример этого Пережить, служба, которая подключается к различным программам для отслеживания спорта, чтобы создавать видео из просмотра Земли о вашем беге или поездке. Каждый раз, когда вы закончите работу, Relive предложит вам создать из нее видео. Если вы скажете «да», они обработают это и сообщат вам, когда он будет готов к хвастовству в социальных сетях… Я имею в виду делиться?

На самом деле нет технической разницы между этими двумя способами использования. Вот поэтому вы должны быть осторожны о том, где вы входите с помощью своего аккаунта в социальных сетях или Google/Gmail.

Это может показаться страшным, но действительно бояться нечего. Просто имейте в виду, что вы авторизуете that-hot-new-app.com чтобы получить доступ к информации о вас, подробно описанной на экране согласия, потенциально на периодической основе. Обратите внимание на разрешения, которые вы предоставляете, и убедитесь, что вы знаете, как отключить их, когда вы больше не чувствуете доверия.

Например, если вы используете свой аккаунт Google для доступа that-hot-new-app.com но вы больше не хотите этого разрешать, просто перейдите к настройкам аккаунта Google и выключите их доступ.

Все основные поставщики идентификационных данных предлагают контроль за этим.

Хорошо, но как вы танцуете OAuth?

Прежде чем приземлиться that-hot-new-app.com и даже нажмите «Войти с помощью YourFavoriteIdentityProviderкто-то, вероятно, разработчик, должен создать приложение на сайте провайдера.

Это способ регистрации that-hot-new-app.com чтобы позже поставщик знал, кто запрашивает частные данные.

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

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

После регистрации программы поставщик предоставит that-hot-new-app.com а clientId и а clientSecret которые будут использоваться в коммуникации между ними. Они работают как имя пользователя и пароль для программы.

Nc8EUZy8o8w-5QddAogfWj2SifjW9Qh5OZWh
Вы получите clientID и clientSecret сразу после нажатия кнопки Сохранить программу

Очень важно хранить ваш clientSecret в безопасном месте и не делиться с незнакомцами. Если кто-то получит к нему доступ, он может запросить частные пользовательские данные от поставщика от вашего имени, а затем использовать их во зло!

Мы этого не хотим.

Руки на талии или плечах

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

Эти «сегменты» известны как сферы применения и они определяют права доступа, обычно разделенные на категории чтения/записи. Так, например, that-hot-new-app.com может требоватьпрофиль: читать” и “контакты: читать” области применения. Это означает, что они могут читать все, что поставщик назначает сегментам «профиль» и «контакты». Другие вещи не будут доступны, например, ваши публикации или содержимое, которое вам нравится.

Ну, скажем так, чтобы упростить ситуацию that-hot-new-app.com это веб-сайт, который интегрируется с Типичная форма, сервис для создания красивых и умных форм, а также компания, в которой я работаю. Вы, безусловно, хотите получить самую популярную вещь прямо сейчас, и быстро, поэтому на их сайте вы нажимаете «Войти с помощью Typeform», чтобы сразу приступить к действию. Что дальше?

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

EieGAKMEfd4kumthtdBGcXE7rUq4xsvo8i15
Красочные ноты приносят радость моему сердцу

Авторизация: первый шаг в танце OAuth

Итак, вы берете на себя инициативу и нажимаете «Подключиться к Typeform». Вот that-hot-new-app.com (THNA отныне, потому что я устал писать слова, разделенные тире), пришлет вас к конечной точке авторизации Typeform (/oauth/authorize) и предоставить:

  • их clientId (запомните, что THNAимя пользователя)
  • их желаемые объемы (или права доступа)
  • и их URI перенаправление снова (Typeform уже знает его с момента настройки, но мы посылаем его снова как дополнительный уровень безопасности)

Этот URL будет выглядеть примерно так:

https://api.typeform.com/oauth/authorize?client_id=yourClientId&scope=accounts:read+forms:read+results:read

Typeform будет использовать эту информацию для создания экрана согласия, где вы можете просмотреть, какие именно действия вы авторизуете THNA видеть и делать.

istIyX0juNBgdwBXW2-y-sAzMhnOgkF1sY0R

Как только у вас есть внимательно прочтите то, на что соглашаетесь чтобы и радостно нажать «Разрешить», Typeform пришлет вас в URI перенаправление с временным, например:

https://that-hot-new-app.com/auth/redirect?code=xxxXXXxxxXXXxxx

Токен: нужно 2 для tangOAuth?

Все это туда-сюда кажется, будто кто-то берет тебя на танго, не правда ли?

Второй шаг танца OAuth – это когда THNA получает этот код и обменивает его на Токен OAuth.

Поэтому THNA берет этот код и снова посылает его в Typeform вместе с URI перенаправление (да, еще раз!) и секретом клиента (это пароль программы!).

Как награду за хорошо станцованный танец, THNA получит блестящий маркер OAuth ✨, который он может использовать для взаимодействия с Typeform от имени пользователя, то есть вас!

Оставайся со мной, качайся со мной

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

  • кто запрашивает данные (в этом случае, THNA)
  • кто данные о (вы!)
  • а также убедитесь, что они имеют правильный авторизация чтобы получить доступ к этим данным (только то, на что вы дали согласие).

Готовы к танцполу?

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

Действительно ваши рисунки, обложка от Геза Ксавьера Мэнсфилда на Unsplash.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *