# Автоматический вход в Plesk

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

Чтобы реализовать автоматический вход, вам необходим интеграционный скрипт, который содержит запрос XML API для создания токена сеанса для одноразового URL-адреса. Этот скрипт будет использоваться для входа пользователей в Plesk по URL-адресу, содержащему одно из двух:

- (рекомендуется) токен сеанса;

- (не рекомендуется из соображений безопасности) имя пользователя и пароль.

## Автоматический вход в Plesk с помощью токенов сеансов

Чтобы настроить автоматический вход с помощью токенов сеансов:

1. Добавьте в интеграционный скрипт создание токена сеанса. Для этого отправьте запрос XML API с помощью узла `create_session`, например:

       <packet version="1.6.9.1">
         <server>
           <create_session>
             <login>admin</login>
             <data>
               <user_ip>192.0.2.1</user_ip>
               <source_server></source_server>
             </data>
           </create_session>
         </server>
       </packet>

   Для следующих параметров должны быть заданы ваши значения:

   - `login` — имя пользователя Plesk, для которого вам нужно создать сеанс.

   - `user_ip` — IP-адрес пользователя в виде простого текста или в кодировке base64 (например, `MTkyLjAuMi4x`).

   - (Необязательно) `source_server` — имя хоста компьютера, с которого отправляется запрос в кодировке base64.

   Примечание

   Операция `create_session` доступна администратору, клиентам и реселлерам Plesk. Администратор Plesk может создавать токены сеансов для себя, реселлеров и клиентов; реселлеры — только для себя и своих клиентов; клиенты — только для себя.

   Вместо отправки запроса XML API напрямую вы можете вставить его в XML-файл и отправить с помощью curl, например:

       curl –kLi -H "Content-Type: text/xml" -H "HTTP_AUTH_LOGIN: admin" -H "HTTP_AUTH_PASSWD: password" -H "HTTP_PRETTY_PRINT: TRUE" -d @request.xml https:<server-hostname-or-ip>/enterprise/control/agent.php

   где

   - `admin` и `password`— учетные данные администратора Plesk, которые используются для входа на сервер Plesk.

   - `request.xml` — XML-файл, содержащий запрос XML API, который создает токен сеанса (например, запрос, показанный выше).

   - `server-hostname-or-ip` — имя хоста или IP-адрес сервера Plesk, для которого вы хотите создать токен сеанса.

   Plesk XML API создаст токен сеанса и отправит его в ответ, например:

       <?xml version="1.0" encoding="UTF-8"?>
       <packet version="1.6.9.1">
         <server>
           <create_session>
             <result>
               <status>ok</status>
               <id>df9d386ee5ef13dbcd583c1f616857a2</id>
             </result>
           </create_session>
         </server>
       </packet>

   Тэг `id` содержит токен сеанса (в нашем примере —`df9d386ee5ef13dbcd583c1f616857a2`). Скрипт будет использовать этот токен в одноразовом URL-адресе для входа.

2. Этот скрипт будет перенаправлять браузер пользователя в `rsession_init.php`, и пользователь будет входить в Plesk. Одноразовый URL-адрес для входа соответствует следующему шаблону:

       https://<server-hostname-or-ip>:8443/enterprise/rsession_init.php?PLESKSESSID=<session_token>&success_redirect_url=<success_redirect_url>&failure_redirect_url=<failure_redirect_url>

   где:

   - `<server-hostname-or-ip>` — имя хоста или IP-адрес сервера, для которого вы создали токен сеанса.

   - `<session_token>` — созданный токен сеанса.

   Вы также можете указать следующие необязательные параметры:

   - `<success_redirect_url>` — URL-адрес, по которому браузер будет перенаправлен после успешного входа.

   - `<failure_redirect_url>` — URL-адрес, по которому браузер будет перенаправлен после истечения срока действия сеанса Plesk или после выхода пользователя.

   - `<locale_id>` — имя локали, которая будет использоваться при входе (например, `de-DE`).

   URL-адрес для входа может выглядеть следующим образом:

       https://192.0.2.1:8443/enterprise/rsession_init.php?PLESKSESSID=df9d386ee5ef13dbcd583c1f616857a2&success_redirect_url=/admin/customer/list

   Примечание

   Мы рекомендуем вам использовать в параметрах `success_redirect_url` и `failure_redirect_url` относительные URL-адреса (они начинаются с `/`), например: `/admin/customer/list`. Для перенаправления имен хоста, отличных от Plesk, необходимо использовать абсолютные URL-адреса (например, `example.com`) как в этих параметрах, так и настройке `trustedRedirectHosts` в файле `panel.ini` (смотрите следующий шаг).

3. Если вы настраиваете автоматический вход в Plesk с параметрами `success_redirect_url` и/или `failure_redirect_url` с перенаправлением на имена хоста, отличные от Plesk и имеющие абсолютные URL-адреса, защитите свой сервер Plesk от открытого перенаправления. Для этого добавьте в файл `panel.ini` следующую запись:

       [security]
       trustedRedirectHosts = hostname1,hostname2

   Здесь `hostname1` и `hostname2` — доверенные имена хоста, на которые вы разрешаете перенаправление по URL с помощью параметров `success_redirect_url` и `failure_redirect_url`.

   Узнайте больше о защите Plesk от открытого перенаправления.

## Автоматический вход в Plesk с помощью учетных данных

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

Если вы все-таки хотите его использовать, URL-адрес для входа будет соответствовать следующему шаблону:

    https://<server-hostname-or-ip>:8443/login_up.php3?login_name=<login>&passwd=<password>&success_redirect_url=<success_redirect_url>&failure_redirect_url=<failure_redirect_url>

где

- `<server-hostname-or-ip>` — имя хоста или IP-адрес сервера, для которого вы создали токен сеанса.

- `<login>` и `<password>`— имя пользователя и пароль соответственно.

Вы также можете указать следующие необязательные параметры:

- `<success_redirect_url>` — URL-адрес, по которому браузер будет перенаправлен после успешного входа.

- `<failure_redirect_url>` — URL-адрес, по которому браузер будет перенаправлен после истечения срока действия сеанса Plesk или после выхода пользователя.

- `<locale_id>` — имя локали, которая будет использоваться при входе (например, `de-DE`).