C.9. Service de réflexion

Le service de réflexion est une série de services Web RESTful utilisés par le proxy de routage de la passerelle SGD Gateway. A l'aide du service de réflexion, l'administrateur d'une passerelle SGD Gateway peut configurer des routes, des services, des niveaux de journalisation et des connexions, et afficher des informations d'état sur le proxy de routage.

Cette section comprend les rubriques suivantes relatives au service de réflexion :

C.9.1. Activation du service de réflexion

Par défaut, le service de réflexion n'est pas activé pour la passerelle SGD Gateway.

Vous pouvez activer le service de réflexion pour une ou plusieurs des méthodes d'accès suivantes :

C.9.1.1. Procédure d'activation de l'accès non autorisé au service de réflexion

  1. Connectez-vous à l'hôte en tant que superutilisateur (utilisateur root) à l'hôte SGD Gateway.

  2. Activez l'accès non autorisé au service de réflexion.

    # /opt/SUNWsgdg/bin/gateway config enable --services-reflection
  3. (Facultatif) Changez l'interface utilisée par le service de réflexion.

    Attention

    Par défaut, l'accès non autorisé au service de réflexion est uniquement disponible depuis l'hôte SGD Gateway. L'activation de l'accès non authentifié sur d'autres interfaces peut engendrer un risque pour la sécurité.

    L'interface par défaut utilisée pour accéder au service de réflexion de manière non autorisée est l'interface loopback localhost. L'exemple suivant indique comment activer l'accès non autorisé sur toutes les interfaces :

    # /opt/SUNWsgdg/bin/gateway config edit \
    --services-reflection-binding *:81
  4. (Facultatif) Modifiez le port utilisé par le service de réflexion.

    Le port par défaut utilisé pour accéder de façon non autorisée au service de réflexion est le port TCP 81. Vous pouvez le remplacer par un port inutilisé, comme suit :

    # /opt/SUNWsgdg/bin/gateway config edit \
    --services-reflection-binding localhost:portnum
    

    portnum correspondant au numéro de port utilisé par le service de réflexion.

  5. Redémarrez la passerelle SGD Gateway.

    # /opt/SUNWsgdg/bin/gateway restart
  6. Accédez au service de réflexion.

    Sur l'hôte SGD Gateway, vous pouvez démarrer un navigateur et vous rendre sur le site http://localhost:81.

    La page d'accueil du service de réflexion s'affiche.

C.9.1.2. Procédure d'activation de l'accès autorisé au service de réflexion

  1. Sur l'hôte SGD Gateway, connectez-vous à l'hôte en tant que superutilisateur (utilisateur root).

  2. Exportez le certificat et la clé privée du service de réflexion.

    Le certificat et la clé privée du service de réflexion sont enregistrées dans le keystore du service de réflexion, à l'emplacement suivant : /opt/SUNWsgdg/proxy/etc/keystore.reflection. Ce keystore est créé automatiquement au cours de l'installation de SGD Gateway.

    Par défaut, le keystore du service de réflexion contient un certificat auto-signé unique et une paire de clés.

    1. Exportez le certificat du service de réflexion.

      # /opt/SUNWsgdg/java/default/bin/keytool -exportcert \
      -alias server-name -rfc \
      -keystore /opt/SUNWsgdg/proxy/etc/keystore.reflection \
      -storepass "$(cat /opt/SUNWsgdg/etc/password)" \
      -file client.pem
      

      server-name correspondant à l'alias utilisé pour le certificat du service de réflexion dans le keystore de réflexion et client.pem correspondant au nom de fichier du certificat exporté.

      Reportez-vous à la documentation relative aux outils et utilitaires JDK pour plus d'informations sur le fonctionnement de l'application keytool.

    2. Exportez la clé privée du service de réflexion.

      Utilisez l'application KeyManager fournie avec SGD Gateway.

      # /opt/SUNWsgdg/java/default/bin/java \
      -jar /opt/SUNWsgdg/proxy/KeyManager.jar export \
      --keyfile client.key \
      --keystore /opt/SUNWsgdg/proxy/etc/keystore.reflection \
      --keyalias alias-name \
      --keypass "$(cat /opt/SUNWsgdg/etc/password)" \
      --storepass "$(cat /opt/SUNWsgdg/etc/password)"
      

      alias-name correspondant à l'alias utilisé pour la clé du service de réflexion dans le keystore de réflexion client.key correspondant au nom de fichier de la clé exportée.

  3. Installez le certificat et la clé privée sur le périphérique client.

    Le certificat et la clé privée sont utilisés par le périphérique client de façon à autoriser l'accès au service de réflexion.

    Pour importer le certificat et la clé dans la banque de certificats d'un navigateur, vous devez d'abord convertir ceux-ci en un fichier au format PKCS12. Par exemple :

    # openssl pkcs12 -export -in mycert.crt -inkey mycert_key.pem -out mycert.p12

    Cette commande convertit le fichier de certificat mycert.crt et la clé privée associée mycert_key.pem en un fichier de certificat mycert.p12 au format PKCS12.

    Pour plus d'informations sur l'importation d'un certificat au format PKCS12 dans votre navigateur, reportez-vous à la documentation en ligne pour votre navigateur.

  4. Activez l'accès autorisé au service de réflexion.

    Sur l'hôte SGD Gateway, exécutez la commande suivante :

    # /opt/SUNWsgdg/bin/gateway config enable --services-reflection-auth
  5. (Facultatif) Modifiez l'interface et le port utilisé par le service de réflexion.

    Le port d'authentification utilisé par défaut pour l'accès autorisé au service de réflexion est le port TCP 82 sur toutes les interfaces. Vous pouvez le remplacer par une autre interface et un port inutilisé, comme suit :

    # /opt/SUNWsgdg/bin/gateway config edit \
    --services-reflection-binding int:portnum
    

    int correspondant à l'interface et portnum au numéro de port utilisé par le service de réflexion.

  6. Redémarrez la passerelle SGD Gateway.

    # /opt/SUNWsgdg/bin/gateway restart
  7. Connectez-vous au service de réflexion à partir du périphérique client, à l'aide du certificat et de la clé privée.

    • Utilisation de la commande curl :

      $ curl --cert client.pem --key client.key -k -X GET https://gateway.example.com:82
      

      Dans cet exemple, la commande curl permet d'accéder à la page d'accueil du service de réflexion à l'adresse https://gateway.example.com:82, gateway.example.com correspondant au nom de la passerelle SGD Gateway. Le certificat et la clé privée du service de réflexion sont client.pem et client.key.

    • A l'aide d'un navigateur :

      Accédez à l'adresse https://gateway.example.com:82, gateway.example.com correspondant au nom de la passerelle SGD Gateway.

      La page d'accueil du service de réflexion s'affiche.

C.9.2. Utilisation du service de réflexion

Utilisez une application client pour accéder aux services Web RESTful fournis par le service de réflexion. Voici des exemples d'applications client appropriées :

  • Navigateur. L'utilisation d'un navigateur est la méthode la plus simple pour accéder au service de réflexion. Toutefois, un navigateur prend également en charge les demandes GET HTTP et donc limite l'accès aux services Web RESTful qui récupèrent les informations. En pratique, l'utilisation d'un navigateur est utile par exemple lors de d'affichage d'informations d'état ou de listes des routes et des services pour le proxy de routage.

  • curl. Il s'agit d'un outil de ligne de commande pour les plates-formes UNIX et Linux qui prennent en charge les demandes HTTP GET, PUT, POST et DELETE. Cela signifie que la gamme complète des services Web RESTful du service de réflexion peut être utilisée. La sortie de cet outil peut être redirigée dans un fichier, ou dans un autre programme pour subir d'autres étapes de traitement.

Par ailleurs, si vous possédez votre propre application client qui prend en charge les services Web RESTful, vous pouvez l'utiliser pour accéder au service de réflexion.

Note

Il est inutile de redémarrer la passerelle SGD Gateway lorsque vous utilisez le service de réflexion pour modifier la configuration d'un proxy de routage.

Les données peuvent être renvoyées par le service de la réflexion dans les formats suivants :

  • ASCII. Il s'agit du format de sortie par défaut. Les données sont renvoyées au format ASCII délimité par des tabulations. Ce format de sortie est utile si les données doivent passer par un autre processus, par exemple une analyse.

  • HTML. Les données sont renvoyées au format HTML, ce qui permet de les afficher dans un navigateur Web. Pour obtenir une sortie HTML, ajoutez /html à la fin de l'URI (Uniform Resource Identifier) du service Web.

C.9.2.1. A propos des services Web RESTful

Le Tableau C.1, « Services Web RESTful du service de réflexion de la passerelle SGD Gateway » répertorie les services Web RESTful du service de réflexion de la passerelle SGD Gateway.

Tableau C.1. Services Web RESTful du service de réflexion de la passerelle SGD Gateway

URI relatif

Méthode de demande HTTP

Description

/

GET

Indique des informations générales sur le proxy de routage, tel que le temps de fonctionnement.

/service

GET

Répertorie les services disponibles.

Un service représente un point d'entrée à partir duquel le proxy de routage crée des connexions entrantes.

/service/Service-Id

GET

Répertorie des informations sur un service, identifié par Service-Id.

/service/Service-Id

PUT

Démarre un service, identifié par Service-Id.

/service/Service-Id

DELETE

Arrête un service, identifié par Service-Id.

/client

GET

Répertorie les clients disponibles.

Un client représente un point de sortie sur lequel le proxy de routage crée des connexions sortantes.

/client/Client-Id

GET

Répertorie des informations sur un client, identifié par Client-Id.

/route

GET

Répertorie les routes disponibles.

Une route représente un itinéraire dans le proxy de routage, partant des connexions entrantes via les services, jusqu'aux connexions sortantes via les clients.

/route/Route-Id

GET

Répertorie des informations sur une route, identifié par Route-Id.

/route/Route-Id

PUT

Démarre une route, identifiée par Route-Id.

/route/Route-Id

DELETE

Arrête une route, identifiée par Route-Id.

/route/Route-Id/connection

GET

Répertorie les connexions d'une route spécifique, identifiée par Route-Id.

/route/Route-Id/connection/Connection-Id

DELETE

Interrompt une connexion, identifiée par Connection-Id.

/connection

GET

Répertorie toutes les connexions en cours d'exécution, pour toutes les routes.

/logging/level

GET

Indique le niveau de journalisation global.

/logging/level/Log-Level

PUT

Indique le niveau de journalisation global du proxy de routage.

/logging/Package/level

GET

Indique le niveau de journalisation pour un composant spécifique du proxy de routage.

/logging/Package/level/Log-Level

PUT

Définit le niveau de journalisation pour un composant spécifique du proxy de routage.


Pour accéder à un service Web RESTful, ajoutez-les URI relatifs du service Web à l'URL du service de réflexion.

Par exemple, pour répertorier les routes disponibles pour une passerelle SGD Gateway, gateway.example.com, ajoutez /route à l'URL du service de réflexion de la façon suivante :

$ curl --cert client.pem --key client.key -k -X GET https://gateway.example.com:82/route

client.pem et client.key correspondant au certificat et à la clé privée du service de réflexion. Dans cet exemple, le client reçoit l'autorisation avant d'accéder au service de réflexion.

C.9.2.2. Exemples d'utilisation du service de réflexion

Tous les exemples suivants utilisent la commande curl en tant qu'application cliente pour accéder au service de réflexion.

Les exemples utilisent un accès authentifié au service de réflexion sur une passerelle SGD Gateway appelée gateway.example.com. Le client est autorisé à l'aide d'un certificat, client.pem, et d'une clé privée, client.key.

Pour répertorier les différents services disponibles pour la passerelle SGD Gateway :

$ curl --cert client.pem --key client.key -k \
-X GET https://gateway.example.com:82/service

Pour arrêter une route, indiquez l'ID de route utilisé par le service de réflexion pour la route en question :

$ curl --cert client.pem --key client.key -k \
-X GET https://gateway.example.com:82/route
Route Id  Route Uptime   Service Id  ...
0         21h18m20s743m  ssgd-route-service  ...
1         21h18m20s736m  shttp-ssl-service   ...
$ curl --cert client.pem --key client.key -k \
-X DELETE https://gateway.example.com:82/route/1

Pour définir le niveau de journalisation global sur FINER (plus détaillé) :

$ curl --cert client.pem --key client.key -k \
-X PUT https://gateway.example.com:82/logging/level/FINER