自動登入 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`)。