Если у вас есть web ресурсы (административная панель, внутренняя CRM, тестовые страницы сайта и так далее), которые вы закрываете с помощью Basic Auth от внешних пользователей, то скорее всего вы сталкивались с проблемой менеджмента доступов. Надо тратить время на выдачу доступов, плюс не забывать удалять неактуальные доступы.
Platrum предоставляет инструмент для автоматизации этого процесса. Не нужно заводить ему отдельную учетную запись Basic Auth, пользователь заходит под своей учетной записью Platrum. Не нужно вручную выдавать Basic Auth учетную запись, а также не нужно помнить, что ее надо забрать.
Как это работает:
У вас есть nginx конфиг Basic Auth примерно такого вида:
location /admin { auth_basic "Access to the staging site"; auth_basic_user_file /etc/nginx/.htpasswd; }
Вы заменяете auth_basic и auth_basic_user_file на auth_request /auth. Теперь nginx будет вместо файла с логинами и паролями использовать для авторизации запрос на внутренний URL /auth. Этот URL мы также можем объявить здесь же (или в любом другом месте конфига). У вас получится примерно следующее
location /admin { auth_request /auth; } location = /auth { internal; proxy_pass http://{PROJECT_HOST}.basic.auth.platrum.ru:8765; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; }
Здесь мы объявили наш URL для авторизации /auth, который просто перенаправляет запросы на http://{PROJECT_HOST}.basic.auth.platrum.ru:8765. Здесь {PROJECT_HOST} замените на хост вашего проекта. Теперь все пользователи из этого проекта смогут пройти Basic Auth авторизацию.
Если вы хотите дать доступ только отдельной группе пользователей из проекта, то можно добавить заголовок Allowed-Emails, где перечислить разрешенные почты через запятую. У вас получится следующее:
location /admin { auth_request /auth; } location = /auth { internal; proxy_pass http://{PROJECT_HOST}.basic.auth.platrum.ru:8765; proxy_set_header Allowed-Emails "[email protected],[email protected]"; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; }
Теперь доступ имеют только перечисленные пользователи. Он всё так же пропадет автоматически, если забрать у пользователя доступ от проекта Platrum.