Plesk への自動ログイン
Plesk への自動ログインは統合の観点で役に立ちます。これを使用すると、他のシステムにログインした顧客が 2 回ログインすることなく Plesk にアクセスできるようになります。
自動ログインを実装するには、一度限りの URL 用のセッショントークンを作成する XML API リクエストが含まれる統合スクリプトが必要です。このスクリプトで、ユーザは以下のいずれかを含む URL を使用して Plesk にログインします。
- (推奨)セッショントークン
- (セキュリティ上の理由で推奨しません)ユーザのログイン名とパスワード
セッショントークンを使用した Plesk への自動ログイン
セッショントークンを使用した自動ログインを構成するには:
-
セッショントークンを作成する統合スクリプトをセットアップします。それには、
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
ここで、
-
admin
とpassword
は、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 で使用します。 -
-
スクリプトによりユーザのブラウザが
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 にする必要があります(次のステップを参照)。 -
-
Plesk への自動ログインをセットアップする際に、Plesk 以外のホスト名にリダイレクトし絶対 URL が含まれる
success_redirect_url
パラメータやfailure_redirect_url
パラメータを使用する場合Plesk サーバをオープンリダイレクトから保護してください。これには、panel.ini
ファイルに以下のエントリを追加します。[security] trustedRedirectHosts = hostname1,hostname2
ここで
hostname1
とhostname2
は、success_redirect_url
パラメータとfailure_redirect_url
パラメータ経由での URL リダイレクトを許可する、信頼できるホスト名です。
ログイン情報を使用した 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
など)。