Gestion des services Web

Cet article contient les rubriques suivantes :
casm173
Cet article contient les rubriques suivantes :
Les
services Web
sont constitués d'un ensemble de normes d'échange de données qui permettent la communication entre les produits, même si ceux-ci se trouvent dans des environnements d'exploitation totalement différents. Cette capacité est donc comparable à la navigation Web sur un ordinateur personnel : tous les sites distants sont accessibles, qu'ils soient hébergés sur Solaris, AIX, Windows, etc. De la même manière, les services Web permettent aux produits d'être reliés à divers serveurs via le protocole HTTP, et ce quel que soit l'environnement d'exploitation. Ainsi, un produit Microsoft Office peut communiquer avec un programme hébergé sur un serveur UNIX et une page Java Server peut accéder à un serveur sous Windows. Ce type de communication, possible à partir de n'importe quelle plate-forme, offre de grandes possibilités d'intégration.
Les services Web bénéficient de cette technologie et permettent à la plupart des produits d'accéder à CA SDM et au composant de gestion des connaissances. Les clients de services Web peuvent créer des tickets, mettre à jour des actifs, effectuer des recherches dans la base de connaissances, etc.
Pour plus d'informations sur les services Web, reportez-vous à la section Référence de CA SDM.
Composants de CA SDM
CA SDM fournit les fichiers d'installation pour cette version des services Web de J2EE dans le répertoire suivant :
<NX_ROOT>/sdk/websvc/R11
<NX_ROOT> spécifie la racine du chemin d'installation de CA SDM.
Options du service Web
Ces options contrôlent la session du service Web :
  • rest_webservice_access_duration
    Spécifie le nombre d'heures pendant lesquelles la touche d'accès aux services Web REST demeure active avant d'expirer. Le délai d'expiration de la touche d'accès ne dépend pas du temps d'inactivité, mais de la durée depuis la création de cette touche d'accès. Une fois que la touche d'accès correspond à la durée spécifiée, la touche d'accès finit expire, qu'elle soit utilisée ou non.
    De même, le client REST peut également fournir la durée de la touche d'accès spécifique lors de la demande de touche d'accès. Pour fournir la valeur de durée, définissez-la directement dans l'attribut de expiration_date de la ressource de rest_access, dans le cadre de la charge utile de demande POST.
    Plage valide :
    1 à 8760 heures
    Valeur par défaut :
    168
  • rest_webservice_disable_basic_auth
    Désactive l'authentification de base dans les services Web REST.
    Valeur par défaut :
    Non
  • rest_webservice_list_max_length
    Spécifie le nombre maximum de lignes renvoyées par une requête de service Web REST.
    Valeur par défaut :
    500
  • rest_webservice_list_page_length
    Spécifie le nombre par défaut de lignes renvoyées par une requête de service Web REST par page.
    Plage valide :
    1 à 500
    Valeur par défaut :
    25
  • rest_webservice_resources_to_expose
    Spécifie la liste de sous-objets Majic (ressources) exposés par CA SDM via les services Web REST. Cette option remplace le comportement par défaut. Par défaut, CA SDM expose tous les sous-objets via les services Web REST.
    Si vous n'introduisez aucun valeur dans cette option, les sous-objet Majic qui n'ont pas de propriété REST_OPERATIONS définie sur Aucun seront exposés. Par défaut, aucun sous-objet Majic ne dispose de cette propriété définie sur Aucun.
    Utilisez la propriété REST_OPERATIONS pour définir les méthodes HTTP CRUD spécifiques (création, lecture, mise à jour et suppression) de sorte que CA SDM expose un sous-objet Majic donné.
    Valeur par défaut :
    rest_access
    Exemple :
    rest_access, cnt, PGD, cr, crs, pri, alg, urg, diablotin, pcat, org
  • hmac_algorithm
    Spécifie l'algorithme que vous utilisez pour calculer la signature de l'authentification de clé personnalisée/secrète dans les services Web REST.
    Valeur par défaut:
    HmacSHA1
  • string_to_sign_fields
    Spécifie les champs que vous utilisez pour calculer la signature pour l'authentification de clé personnalisée/secrète dans les services Web REST, en plus des champs REQUEST_METHOD, REQUEST_URI et QUERY_STRING par défaut.
    Valeur par défaut :
    Vide
  • webservice_domsrvr
    Indique le nom du moteur d'objets utilisé par les services Web SOAP. Si cette option n'est pas installée, les services Web SOAP utilisent domsrvr.
    La valeur de cette option doit être une chaîne commençant par les caractères "domsrvr:".
  • webservice_session_timeout
    Définit la valeur du délai d'expiration (en minutes) pour les sessions du service Web SOAP. Lorsque le délai entre les appels de méthode Web successifs est supérieur à la valeur spécifiée, l'ID de session est marqué comme expiré. La session n'est alors plus valide.
    Pour éviter l'expiration de sessions en raison de l'activité, définissez la valeur de cette option sur 0. D'autres méthodes, telles que les routines de déconnexion, peuvent encore rendre des sessions non valides.
Ces options requièrent le redémarrage du serveur CA SDM.
Installation des services Web
Selon le type de configuration, CA SDM installe les services Web pour les serveurs suivants :
  • Configuration conventionnelle : serveurs principal et secondaire. Ajoutez un moteur Web au serveur secondaire de sorte que les clients des services Web puissent utiliser une URL sur celui-ci.
  • Configuration de disponibilité avancée : serveur d'applications
Les services Web utilisent le gestionnaire d'objets par défaut installé sur le serveur CA SDM. Pour utiliser un autre gestionnaire d'objets, installez et définissez l'option
webservice_domsrvr
dans le gestionnaire d'options.
Pour plus d'informations sur l'ajout et la configuration des gestionnaires d'objets, des directeurs Web et des moteurs Web, reportez-vous à la section Gestionnaire d'options.
Activation de la phase de conception
Les services Web de CA SDM comprennent une fonction de configuration de la méthode stub destinée aux développeurs dans la version Java. Lorsqu'ils sont activés, les services Web ignorent le serveur de CA SDM et renvoient des données simulées pour les appels de méthode afin que les appels de services Web puissent être effectués sans exécuter un serveur CA SDM.
Procédez comme suit :
  1. Modifiez deploy.wsdd de façon à ce qu'il ne fasse plus de commentaires sur les sections pour design_mode_stubs.
  2. Inversez le déploiement et redéployez le serveur.
  3. Redémarrez le serveur d'application.
    La fonction de phase de conception est activée.
La fonction de phase de conception s'applique uniquement aux méthodes des services Web de CA SDM.
Sécurité des services Web
Lors du déploiement des services Web, consultez les remarques de sécurité importantes. En cas d'utilisation du protocole HTTP, la configuration par défaut n'est pas sécurisée, comme c'est le cas pour toutes les informations sur les appels de services Web échangées par le client et le serveur sur le réseau, en texte brut, à l'aide du protocole HTTP. Cela inclut non seulement des données d'application, telles que des descriptions de ticket et des noms de contact, mais également les identificateurs de session de service Web (SID). Selon les méthodes de connexion à l'application de service Web utilisées, des mots de passe peuvent être inclus.
Nous conseillons vivement aux administrateurs qui déploient des services Web de lire attentivement ces informations et de réaliser des actions de configuration supplémentaires au niveau de l'application et du réseau afin de sécuriser leur environnement de service Web.
La configuration par défaut du service Web utilisée avec HTTP n'est pas sécurisée et elle est donc vulnérable aux menaces de sécurité telles que le vol des mots de passe, le blocage de session et l'espionnage des données.
Le déploiement des services Web doit prendre en considération trois questions de sécurité interdépendantes :
  • Quelles sont les méthodes d'authentification d'accès (niveau applicatif) que ce déploiement doit prendre en charge ?
  • Quelles sont les fonctions de sécurité supplémentaires dont ce déploiement a besoin en matière de mise en réseau ?
  • Comment ces exigences seront-elles appliquées par l'intermédiaire des options de configuration du service Web ?
Voici une description de chacune des fonctions de sécurité :
  • Méthodes d'authentification au niveau de l'application de service Web
    : pour pouvoir accéder aux services Web, une application cliente de service Web doit être authentifiée auprès de l'application de service Web. Les services Web proposent deux méthodes d'authentification d'accès. Il est possible de recourir à la combinaison nom d'utilisateur/mot de passe ou à la technologie d'infrastructure de clés publiques (PKI). Ces deux méthodes fonctionnent en collaboration avec le composant de gestion et contrôle d'accès des services Web, en utilisant notamment les politiques d'accès. L'authentification et la gestion d'accès sont les fonctions de sécurité les plus importantes des services Web.
    La commande de configuration de la sécurité suivante permet de désactiver les méthodes d'authentification recourant à la combinaison nom d'utilisateur/mot de passe :
    disable_user_logon
    Avant d'activer cette option, l'administrateur doit déterminer si chaque client de service Web pour lequel une entreprise demande un accès aux services Web peut réellement prendre en charge l'autre méthode d'authentification, c'est-à-dire la méthode de connexion basée sur PKI. L'avantage principal de la technologie d'infrastructure de clés publiques (PKI) vient de ce que les applications client de services Web ne nécessitent pas que le système assure la
    gestion
    des comptes d'utilisateur (maintenance, stockage et transmission de leurs mots de passe).
  • Configuration de la sécurité pour la mise en réseau
    : qu'il s'agisse de la méthode d'authentification par nom d'utilisateur/mot de passe ou par infrastructure de clés publiques (PKI), vous remarquerez que l'identificateur de session renvoyé par la méthode de connexion choisie, ainsi que toutes les informations qui en découlent, est transmis en texte brut lorsque le protocole HTTP est utilisé. De plus, lorsque la méthode d'authentification par nom d'utilisateur/mot de passe est utilisée, l'application client du service Web envoie le mot de passe aux services Web sans le protéger (en texte brut). Le W3C n'a pas recommandé de norme pour la sécurité des services Web pendant la phase de développement du produit. C'est pourquoi ces implémentations de services Web n'utilisent pas WS-Security pour créer un contexte sécurisé. Il est donc recommandé d'utiliser le protocole SSL/TLS de point à point ainsi que d'autres mécanismes de sécurité au niveau du réseau (par exemple, le protocole IPSec) afin de protéger le texte transmis lors des échanges d'authentification au niveau de l'application qui, sans cela, apparaît en clair, ainsi que l'identification et les données de session transmises ultérieurement.
    Il est conseillé d'utiliser le protocole SSL (ou https) lors du déploiement des services Web afin de protéger les échanges d'authentification au niveau de l'application ainsi que les transmissions ultérieures d'identification et de données de session.
  • Configuration du service Web
    : les deux commandes de configuration de sécurité suivantes sont prises en charge afin de permettre aux administrateurs de sécuriser les communications à l'aide d'un protocole au niveau de l'application de services Web :
    require_secure_logon
    Cette fonction de sécurité nécessite que vous utilisiez un protocole SSL (ou https) pour appeler les méthodes Login() et LoginService(). Elle constitue également une méthode pratique de protection du nom d'utilisateur et du mot de passe, tout en évitant la surcharge du protocole SSL pour les autres services Web.
    si vous utilisez la commande require_secure_logon, l'application de services Web ne confirmera pas que la sécurisation des communications par protocole est appliquée pour les méthodes autres que Login() et LoginService(). Si vous ne prenez pas d'autres précautions, il se peut que les autres méthodes de services Web soient appelées de façon non sécurisée, ce qui accroît la vulnérabilité aux menaces sur la sécurité.
    require_secure_connection
    Cette fonction vous oblige à utiliser le protocole SSL pour accéder à n'importe quelle partie du service Web. Si le protocole https est requis, mais reste inutilisé, une erreur SOAP reprenant le code UDS_SECURE_CHANNEL_REQUIRED est renvoyée.
    Pour plus d'informations sur la configuration du protocole SSL, reportez-vous à la documentation du conteneur de servlets J2EE.
Utilisation des services Web
Cette section décrit les principes élémentaires d'utilisation des services Web de CA SDM. L'exemple de code illustrant l'utilisation des services Web se trouve dans le répertoire d'installation de CA SDM suivant :
<NX_ROOT>/samples/sdk/websvc/java
L'exemple de code présenté est écrit en langage Java et utilise Apache Axis pour la messagerie SOAP.
Connexions
Avant d'être en mesure d'utiliser une méthode Services Web, vous devez vous procurer un ID de session à partir de l'une des méthodes suivantes : login(), loginService() et loginServiceManaged(). Les deux premières méthodes requièrent un nom d'utilisateur et un mot de passe validés exactement de la même manière que l'interface Web de CA SDM. Le type d'accès du contact spécifie la méthode de validation. La troisième méthode nécessite une paire de clés publique/privée, pour laquelle une demande de connexion cryptée à l’aide d’une clé privée ne peut être décryptée que grâce à la clé publique, et inversement.
Exécution des tâches communes
Les services Web fournissent une API flexible et puissante dans CA SDM, mais leur utilisation nécessite une certaine connaissance de la structure d'objets utilisée par le produit :
  1. Familiarisez-vous avec les informations sur les objets et les attributs fournies dans la section Commandes de référence de CA Service Desk Manager.
    Celui-ci répertorie les attributs de chaque objet du système ; il est indispensable de connaître ces attributs, car de nombreuses méthodes Services Web exigent le nom des attributs.
  2. Vérifiez les méthodes de services Web, particulièrement les méthodes génériques. Par exemple, si votre application doit afficher tous les journaux d'activité d'un appel, identifiez d'abord le lien entre les journaux d'activité et l'appel.
    La section Commandes de référence de CA Service Desk Manager
    indique que l'objet de demande contient deux listes de journaux d'activité : act_log (qui affiche uniquement les journaux non internes) et act_log_all (qui répertorie tous les journaux d'activité).
  3. Identifiez les méthodes de services Web requises. Pour obtenir les listes jointes à un objet, utilisez la méthode getRelatedList() ou getRelatedListValues().
Descripteurs par défaut
Certaines données par défaut fournies par le produit sont souvent utilisées. Pour éviter d’avoir à rechercher les descripteurs correspondant à ces objets, certaines de ces données ont été répertoriées dans les tableaux ci-après.
Bien que les descripteurs ne changent pas, les symboles lisibles peuvent être modifiés.
Type de contact (nom de l'objet : ctp)
Descripteur
Remarque
ctp:2307
Type Analyste
ctp:2310
Type Client
ctp:2305
Type Employé
ctp:2308
Type Groupe
Impact (nom de l'objet : imp)
Descripteur
Remarque
imp:1605
Impact Aucun
imp:1600
Impact bas 5
imp:1601
Impact moyen-bas 4
imp:1602
Impact moyen 3
imp 1603
Impact moyen-haut 2
imp:1604
Impact haut 1
Priorité (nom de l'objet : pri)
Descripteur
Remarque
pri:505
Priorité non affectée Aucune
pri:500
Priorité faible 5
pri:501
Priorité intermédiaire-faible 4
pri:502
Priorité intermédiaire 3
pri:503
Priorité intermédiaire-haute 2
pri:504
Priorité haute 1
Sévérité (nom de l'objet : sev)
Descripteur
Remarque
sev:800
Sévérité basse 1
sev:801
Sévérité moyenne-basse 2
sev:802
Sévérité moyenne 3
sev:803
Sévérité moyenne-haute 4
sev:804
Sévérité haute 5
Type d'appel (nom de l'objet : crt)
Descripteur
Remarque
crt:180
Demande
crt:181
Problème
crt:182
Incident
Requête par appels, demandes client ou demandes de changement assignée à un contact
L'extraction des demandes actives assignées à un analyste (destinataire) constitue l'une des opérations les plus courantes. Pour effectuer cette opération, vous pouvez utiliser différentes méthodes : la méthode doQuery()) permet d'obtenir une liste des références, la méthode doSelect() d'obtenir les valeurs immédiatement. Si le descripteur du destinataire est déjà connu, voici la clause WHERE à utiliser :
assignee.id = U'<assigneeID>' AND active = 1
Dans cette clause Where, est la portion d'ID d'un descripteur de contact ou d'une valeur, telle que 555A043EDDB36D4F97524F2496B35E75.
Cette clause WHERE fonctionne pour les demandes, les demandes de changement et les demandes client, car ils comportent tous les attributs actifs (active) ou de destinataire (assignee) et ont la même signification pour les trois types d'objets. La portion active = 1 de la clause WHERE limite la recherche aux demandes actives.
Indicateur actif
La plupart des objets de CA SDM disposent d'un champ appelé active ou delete_flag. Il s'agit en fait d'un pointeur SREL vers l'objet Active_Boolean_Table ou Boolean_Table. Imaginons que vous ajoutez ces champs à vos requêtes afin de filtrer les objets marqués comme inactifs par l’administrateur système. Pour procéder à une requête, recherchez delete_flag = 0 pour localiser les enregistrements actifs, et delete_flag = 1 pour trouver les enregistrements inactifs. Ainsi, le pseudo-code suivant est un exemple d'utilisation de la méthode doSelect() pour extraire les valeurs de tous les objets Statut de la demande actifs :
doSelect(SID, "crs", "delete_flag = 0", -1, new String[0]);
Pour définir un objet comme actif ou inactif, vous devez transmettre le descripteur de l’objet booléen représentant la valeur Vrai ou Faux. Ces descripteurs ne changent pas : vous pouvez donc les coder en dur en toute sécurité. Ils sont énumérés ci-après.
Active_Boolean_Table
Boolean_Table
actbool:4551 = ’Active’
bool:200 = ’False’
actbool:4552 = ’Inactive’
bool:201 = ’True’
Extraction des longueurs de la liste associée
Lorsque vous appelez les valeurs d'attributs d'un objet, avec la méthode getObjectValues() par exemple, vous pouvez obtenir la longueur d'une liste associée en demandant l'attribut suivant :
"<listName>.length"
Ainsi, pour obtenir le nombre de journaux d'activité d'une certaine demande, transmettez l'attribut suivant à la méthode getObjectValues() :
"act_log_all.length"
Il s'agit de la seule façon d'utiliser les noms de listes dans ces types de méthodes.