Oauth 2.0 — это структура авторизации для делегирования определенных разрешений API без обмена паролями между клиентом и сервером. Основным преимуществом Oauth является возможность предоставлять сторонним приложениям определенные разрешения (в рамках ограничительной политики) без совместного использования паролей. Это делает Oauth отличным инструментом для интеграции различных приложений.
Например, пользователь хочет, чтобы его веб-сайт на WordPress автоматически публиковался в Linkedin. Он был бы не против поделиться своими учетными данными Linkedin со своим собственным веб-сайтом. Но если ему нужно установить плагин WordPress, который будет автоматически публиковаться в Linkedin, ему нужно будет поделиться с этим сторонним плагином своим паролем Linkedin, что немыслимо.
С помощью Oauth пользователь может предоставить ограниченный доступ плагину через авторизацию токена вместо учетных данных. Плагин будет действовать от имени пользователя для специально назначенной и разрешенной задачи.
OAuth не хранит учетные данные, но ограничивает доступ к определенному действию.
Фреймворк также позволяет отменять индивидуальный доступ к ресурсам без изменения пароля ресурса.
Роли Oauth — это владелец ресурса, клиент, сервер ресурсов и сервер авторизации.
Владелец ресурса: это владелец ресурса, которому будет предоставлен ограниченный доступ.
Клиент: приложение запрашивает авторизацию для выполнения действия (чтения, записи) от имени Владельца ресурса. В предыдущем примере (WordPress + Linkedin) клиентом был плагин, настроенный с помощью токена.
Сервер ресурсов: это API, к которому вы хотите предоставить доступ. Это могут быть карты Google, твиты и т.д.
Сервер авторизации: этот компонент может быть размещен на собственном сервере или в составе сервера ресурсов. Сервер авторизации генерирует и передает токен после аутентификации личности владельца. OAuth может предоставить доступ владельцу ресурса или клиенту.
Владелец ресурса разрешает приложению доступ к серверу ресурсов. Затем приложение запрашивает токен у сервера авторизации, используя утверждение или авторизацию владельца ресурса.
Когда сервер авторизации проверяет утверждение, он выдает токен доступа к приложению. Используя этот токен, приложение может получить доступ к серверу ресурсов.
В следующем разделе этого руководства описаны некоторые концепции OAuth, которые необходимо понять перед его установкой в Linux.
Токены содержат информацию, называемую претензиями . Заявлением может быть имя пользователя, адрес электронной почты, автор, клиент, используемый Владельцем ресурса, или некоторая информация об объекте, указанном в токене.
Области ограничивают клиентский доступ к функциям сервера ресурсов или API. Когда владелец ресурса утверждает авторизацию, ему необходимо определить области, предоставленные клиенту.
Идентификатор клиента — это общедоступная строка для идентификации приложения и построения URL-адреса авторизации. Client Secret аутентифицирует приложение перед сервером авторизации при запросе доступа к приложению.
Мы не установили PHP; если вы хотите протестировать OAuth, вам необходимо сначала установить PHP. Вы можете установить PHP в Debian и других дистрибутивах Linux, выполнив следующую команду:
apt install php-pear php-dev -y
После установки PHP установите следующие пакеты:
sudo apt install -y gcc make autoconf libc-dev pkg-config libpcre3-dev
Теперь вы можете установить PHP, выполнив команду, показанную ниже:
sudo apt install php-oauth
В дистрибутивах Debian и в других на основе Linux, создайте файл конфигурации, выполнив следующую команду.
bash -c "echo extension=oauth.so > /etc/php/7.3/cli/conf.d/oauth.ini" /etc/init.d/apache2 restart
или же
sudo service apache restart
Наконец, вы можете проверить правильность установки OAuth, выполнив:
php -i | grep -i "OAuth"
Вы можете настроить свое веб-приложение, используя решения для авторизации, такие как https://openid.net/connect/ или https://goteleport.com.
Вы также можете установить OAuth для Ruby con Linux. В следующем примере показано, как установить OAuth для Ruby и Debian и основанных на нем дистрибутивов Linux.
Чтобы установить OAuth для ruby в Debian или Ubuntu, запустите:
sudo apt install ruby-oauth2 -y
OAuth — отличное решение для управления доступом и разрешениями, а также для интеграции различных приложений.
Он предоставляет платформу авторизации для веб-приложений, настольных приложений и мобильных устройств.
Внедрив OAuth, пользователи могут избежать совместного использования учетных данных и могут делиться ограниченным доступом к ресурсам. Они также могут легко отозвать доступ для определенных пользователей.
Предотвращение обмена учетными данными представляет собой существенное улучшение безопасности.
Пользователи также могут использовать OAuth для управления и защиты своей базы данных, докеров, ssh-доступа и многого другого, внедряя такие решения, как Teleport.
Надеюсь, вы нашли эту статью по OAuth полезным.