Plesk への自動ログインは統合の観点で役に立ちます。これを使用すると、他のシステムにログインした顧客が 2 回ログインすることなく Plesk にアクセスできるようになります。

自動ログインを実装するには、一度限りの URL 用のセッショントークンを作成する XML API リクエストが含まれる統合スクリプトが必要です。このスクリプトで、ユーザは以下のいずれかを含む 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>
    

    以下のパラメータに値が含まれている必要があります:

    • login は、セッションを作成する必要がある Plesk ユーザのログイン名です。
    • user_ip は、テキスト形式のユーザの IP アドレスまたは base64 でエンコードされたユーザの IP アドレスです(例: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
    

    ここで、

    • adminpassword は、Plesk サーバにログインするために使用する Plesk 管理者のログイン情報です。
    • request.xml は、セッショントークンを作成する XML API リクエストが含まれる XML ファイルです(たとえば上記のようなリクエスト)。
    • 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 以外のホスト名にリダイレクトする場合は、これらのパラメータで絶対 URL を使用する必要があります(たとえば example.com)。また、panel.ini ファイルの trustedRedirectHosts 設定でも絶対 URL にする必要があります(次のステップを参照)。

  3. Plesk への自動ログインをセットアップする際に、Plesk 以外のホスト名にリダイレクトし絶対 URL が含まれる success_redirect_url パラメータや failure_redirect_url パラメータを使用する場合Plesk サーバをオープンリダイレクトから保護してください。これには、panel.ini ファイルに以下のエントリを追加します。

    [security]
    trustedRedirectHosts = hostname1,hostname2
    

    ここで hostname1hostname2 は、success_redirect_url パラメータと failure_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 など)。