自动登录 Plesk 对于整合来说很有用,因此已经登录到其它系统的客户无需第二次登录就可以访问 Plesk。

若要实现自动登录,您需要有一个包含 XML API 请求的整合脚本,以便为一次性URL 创建一个会话令牌。该脚本将使用包含以下内容之一的 URL 将用户登录到Plesk:

  • (推荐)会话令牌
  • (出于安全原因不推荐)用户登录和密码

使用会话令牌自动登录到Plesk

要使用会话令牌配置自动登录,请如下操作:

  1. 设置整合脚本以创建会话令牌。为此,请使用create_session节点发送一个 XML API 请求,例如:

    <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>
    

    以下参数必须包含您的值:

    • 登录名是指您需要为其创建会话的 Plesk 用户的登录名。
    • user_ip是用户的纯文本或以 base64 编码 (for example, MTkyLjAuMi4x)的 IP 地址。
    • (备选)``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密码是 Plesk 管理员用于登录 Plesk 服务器的验证凭据。
    • request.xml是一个XML文件,其中包含一个创建会话令牌的 XML API 请求(例如,上面所示的请求)。
    • server-hostname-or-ip 是要为其创建会话令牌的 Plesk 服务器的主机名或 IP 地址。

    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>是在 Plesk 会话过期或用户被注销后,浏览器将被重定向到的 URL。
    • <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 的主机名,您需要在参数(例如 example.com)和 panel.ini``文件中的``trustedRedirectHosts 设置中使用绝对 URL(请参见下一步)。

  3. 如果您使用success_redirect_url和/或failure_redirect_url参数设置自动登录 Plesk(此等参数会实现重定向到不同于 Plesk 的主机名并带有绝对 URL),请保护 Plesk 服务器免受开放重定向。为此,请在panel.ini文件中添加以下条目:

    [security]
    trustedRedirectHosts = hostname1,hostname2
    

    其中 hostname1hostname2 是您允许通过success_redirect_urlfailure_redirect_url参数进行 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>是在 Plesk 会话过期或用户被注销后,浏览器将被重定向到的 URL。
  • <locale_id>是登录时将使用的区域设置的名称(如de-DE`)。