Connexion automatique à Plesk

La connexion automatique à Plesk est utile à des fins d’intégration, afin que les clients connectés à d’autres systèmes puissent accéder à Plesk sans devoir se connecter une deuxième fois.

Pour mettre en place une connexion automatique, vous devez disposer d’un script d’intégration qui contient des requêtes XML API pour créer un jeton de session pour une URL à usage unique. Le script connectera les utilisateurs à Plesk à l’aide de l’URL qui contient l’un des éléments suivants :

  • (Recommandé) Un jeton de session
  • (Non recommandé pour des raisons de sécurité) Identifiant de connexion et mot de passe de l’utilisateur

Connexion automatique à Plesk à l’aide de jetons de session

Pour configurer la connexion automatique à l’aide de jetons de session :

  1. Configurez votre script d’intégration pour créer un jeton de session. Pour cela, envoyez une requête API XML à l’aide du node create_session. Par exemple :

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

    Les paramètres suivants doivent contenir vos valeurs :

    • login correspond à l’identifiant d’un utilisateur de Plesk pour qui vous devez créer une session.
    • user_ip correspond à l’adresse IP en texte brut ou encodé en base64 (par exemple : MTkyLjAuMi4x).
    • (Facultatif) source_server correspond au nom d’hôte de la machine depuis laquelle la requête est envoyée encodée en base64.

    Note

    L’opération create_session est disponible pour l’administrateur, les clients et les revendeurs de Plesk. L’administrateur de Plesk peut créer des jetons de session pour lui-même, pour les revendeurs et les clients. Les revendeurs peuvent en créer pour eux-mêmes et pour leurs clients uniquement. Les clients peuvent en créer uniquement pour eux-mêmes.

    Au lieu d’envoyer directement une requête API XML, vous pouvez l’insérer dans un fichier XML et l’envoyer via curl, par exemple :

    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
    

    sachant que

    • admin et password sont les identifiants d’accès de Plesk utilisés pour se connecter au serveur Plesk.
    • request.xml est un fichier XML contenant une requête API XML qui crée un jeton de session (par exemple, la requête affichée ci-dessus).
    • server-hostname-or-ip correspond au nom d’hôte ou à l’adresse IP du serveur Plesk pour lequel vous voulez créer un jeton de session.

    L’API XML de Plesk créera un jeton de session et l’enverra dans une réponse, par exemple :

    <?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 contient un jeton de session (df9d386ee5ef13dbcd583c1f616857a2 dans l’exemple). Le script utilisera ce jeton dans une URL à usage unique pour se connecter.

  2. Le script redirigera le navigateur de l’utilisateur vers rsession_init.php et l’utilisateur sera connecté à Plesk. L’URL à usage unique pour la connexion suit le modèle :

    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>
    

    où :

    • <server-hostname-or-ip> corrrespond au nom d’hôte ou à l’adresse IP du serveur pour lequel/laquelle vous avez créé un jeton de session.
    • <session_token> est un jeton de session créé.

    Vous pouvez également spécifiez les paramètres facultatifs suivants :

    • <success_redirect_url> correspond à l’URL vers laquelle le navigateur est redirigé après une connexion réussie.
    • <failure_redirect_url> correspond à l’URL vers laquelle le navigateur est redirigé après l’expiration d’une session ou lorsqu’un utilisateur a été déconnecté.
    • <locale_id> correspond au nom de la langue utilisée lors de la connexion (par exemple fr-FR`).

    L’URL de connexion est similaire à :

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

    Note

    Nous vous recommandons d’utiliser des URL relatives (elles commencent par /) dans les paramètres success_redirect_url et failure_redirect_url, par exemple : /admin/customer/list. Pour rediriger vers des noms d’hôtes différents de Plesk, vous devez utiliser des URL absolues dans les paramètres (par exemple : example.com) ainsi que dans le paramètre trustedRedirectHosts et dans le fichier panel.ini (voir étape suivante).

  3. Si vous définissez la connexion automatique à Plesk avec le ou les paramètres success_redirect_url et/ou failure_redirect_url qui redirigent vers des noms d’hôtes différents depuis Plesk et ont des URL absolues, protégez votre serveur Plesk contre une redirection ouverte. Pour cela, ajoutez l’entrée suivante dans le fichier panel.ini :

    [security]
    trustedRedirectHosts = hostname1,hostname2
    

    hostname1 et hostname2 sont des noms d’hôtes fiables vers lesquels vous autorisez la redirection des URL via les paramètres success_redirect_url et failure_redirect_url.

    En savoir plus sur la protection de Plesk contre la redirection ouverte.

Connexion automatique à Plesk à l’aide des identifiants d’accès

Vous pouvez également configurer la connexion automatique sans créer de jeton de session : en passant l’identifiant de l’utilisateur et le mot de passe dans les paramètres de l’URL. Toutefois, pour des raisons de sécurité, nous ne recommandons pas cette approche.

Si vous voulez néanmoins poursuivre, l’URL de connexion sera similaire à :

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>

sachant que

  • <server-hostname-or-ip> corrrespond au nom d’hôte ou à l’adresse IP du serveur pour lequel/laquelle vous avez créé un jeton de session.
  • <login> et <password> sont respectivement l’identifiant de l’utilisateur et son mot de passe.

Vous pouvez également spécifiez les paramètres facultatifs suivants :

  • <success_redirect_url> correspond à l’URL vers laquelle le navigateur est redirigé après une connexion réussie.
  • <failure_redirect_url> correspond à l’URL vers laquelle le navigateur est redirigé après l’expiration d’une session ou lorsqu’un utilisateur a été déconnecté.
  • <locale_id> correspond au nom de la langue utilisée lors de la connexion (par exemple fr-FR`).