Оаут
Что такое OAuth?
Открытый протокол, позволяющий обеспечить безопасную авторизацию в простом и стандартном методе из веб -приложений, мобильных и настольных приложений - от документов
- Основная причина, по которой OAuth был первоначально настроен, заключалась в том, чтобы разрешить данные пользователя приложения, не давая ему пароля пользователя. Пример: помните, когда все эти сторонние приложения запрашивают вас по электронной почте + пароль, чтобы получить доступ к контакту Gmail и т. Д.? Очевидное нарушение безопасности, поскольку приложения могут удерживать и иметь возможность изменить ваш пароль. В некоторых приложениях хранится пароль пользователей в истечном тексту (очевидный риск безопасности). Только как пользователи могли отозвать доступ, - это изменить пароли
- Основная отличительная функция OAuth заключается в том, что вместо того, чтобы позволить пользователям вводить пароли в стороннем приложении, пользователи перенаправляются на сервер OAuth (я думаю, основное приложение), чтобы ввести свой пароль, а затем перенаправлены обратно на стороннее приложение, которое ищет доступ.
- Другие варианты использования OAuth после его первоначального использования были связаны с организациями, которые строили первые приложения на своих собственных API. Показательный пример: при входе в любую службу Google (YouTube, Gmail и т. Д.) Вы не войдите в службу напрямую. Вы перенаправлены на сервер OAuth от Google (accounts.google.com), где вы входите, а затем перенаправлены на службу Google после аутентификации.
- Преимущество заключается в том, чтобы централизовать управление паролями по соображениям безопасности.
- Еще одно преимущество централизации заключается в том, что это позволяет легко обновлять аутентификацию для всех пользователей/сервисов
Оаут 2
- Были некоторые варианты использования, такие как в мобильных приложениях, где первоначальная реализация OAuth не могла безопасно использовать.
- Цель OAuth 2 состояла в том, чтобы опираться на OAuth 1 для мобильных приложений и упростить аспекты, которые сбивали с толку потребителей API.
- Проблема с OAuth 2 заключалась в том, что между Интернетом и предпринимательными участниками протокола были конфликты. Многие области раздора были поставлены в разные документы, оставляя много пробелов в протоколе (в результате в результате называется структура в основном документе).
- Результатом является то, что веб -реализация для OAuth 2 может быть сложной и запутанной, поскольку вам нужно синтезировать информацию из разных черновиков
- Вопросы реализации:
- Стандарт не требует типа тона
- не требует конкретных типов грантов
- не дает руководства по размеру струны токена
Создание приложения OAuth 2
- Создайте учетную запись разработчика на веб -сайте Сервиса и введите базовую информацию о приложении (имя, веб -сайт, логотип и т. Д.)
- Вам будет дана
client_id и client_secret (иногда), которые ваше приложение будет использовать для взаимодействия с службой. - Критическое для регистрации одного или нескольких URL -адресов перенаправления (где служба OAuth 2 вернет пользователя после того, как он разрешит приложение), чтобы избежать создания вредоносных приложений, которые могут украсть пользовательские данные.
- Url перенаправления должен быть конечной точкой HTTPS, чтобы предоставить злоумышленнику перехватить код авторизации и угнать сеанс
- Вместо регистрации нескольких URL -адресов перенаправления для различных состояний приложения OAuth 2 предоставляет параметр « состояния », который можно использовать для кодирования состояния приложения.
- Параметр - это строка, которая будет возвращена после того, как пользователь будет разрешено привести их в нужное место в приложении. Строка состояния должна быть зашифрована с помощью такого метода, как JWT.
- Состояние, сгенерированное изначально, хранится в сеансе, после того, как пользователь разрешается и перенаправляется на клиентское приложение, сервер OAuth сравнивает строку состояния с тем, что первоначально хранилось в сеансе перед обменой кода авторизации для токена доступа
Другие концепции, которые я узнал
загрязнение
- Выступает за URL -адрес клиента - это инструмент командной строки, который разработчики используют для передачи данных на сервер и обратно. Давайте общаемся с сервером, указав URL (местоположение) и данные, которые вы хотите отправить.
- Поддерживает различные протоколы (HTTP, HTTPS) и работает почти на каждой платформе, что делает его идеальным для тестирования связи практически на любом устройстве
- Преимущества:
- Высоко портативные и сравнимые почти с ОС и устройством
- Полезно для тестирования конечных точек
- может быть многословным, следовательно, полезным для отладки
- Хорошая регистрация ошибок
Запуск сценария Python в Интернете без фреймворта, такой как Flask или Django
- Сначала вам нужно настроить скрипт Python в качестве сценария CGI
- CGI означает общий интерфейс шлюза. Это позволяет приложениям общаться с другими приложениями в Интернете
- Сначала создайте папку Cig-Bin и переместите там свой сценарий Python
- Затем используйте встроенный Python
http.server , чтобы запустить простой HTTP-сервер - Запустите
python -m http.server --cgi из каталога, который содержит CGI -бин, чтобы запустить HTTP -сервер в режиме CGI. - Перейдите к
http://localhost:8000/cgi-bin/your-script.py чтобы запустить скрипт CGI. - В
your-script.py необходимо включить print("Content-type:text/htmlrnrn") чтобы установить тип контента ответа на «Text/html», чтобы позволить сценарию работать в браузере, как HTML-файл
Шебанг (Хашбанг)
- Специальный код в форме
#! В самом начале исполняемых файлов в UNIX-подобных операционных системах. - Определяет путь к исполняемому интерпретатору, который следует использовать для запуска сценария.
- Например, шебанг, как
#!/usr/bin/env python в начале сценария Python, говорит системе использовать интерпретатор Python, расположенный в usr/bin/env python для запуска сценария.
Ресурсы
- Оаут документация
- Что такое OAuth и почему это имеет значение? - Октадев на YouTube
- OAuth 2 серверы
- IBM: Что такое curl?