Découvrir la sécurité des services Web

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 3 minutes de lecture
  • Appliquez la sécurité à l’aide de l’authentification de base, de l’authentification réciproque ou de la sécurité WS.

    Authentification de base

    Pour appliquer l’authentification de base à chaque demande de document WSDL ou de publication de messages SOAP, vous pouvez définir la propriété glide.basicauth.required sur true. Dans ce cas, chaque demande WSDL ou SOAP doit contenir l’en-tête « Autorisation » comme spécifié dans le protocole d’authentification de base . Étant donné que la demande n’est pas interactive, l’en-tête Authorization est toujours requis au cours d’une demande.

    Fournir des informations d’authentification de base, qu’elles soient requises ou non, présente l’avantage supplémentaire que les données créées ou mises à jour à la suite de l’invocation du service Web sont effectuées au nom de l’utilisateur fourni dans les informations d’identification d’authentification de base. Par exemple, lors de la création d’un enregistrement d’incident, les champs de journal utilisent l’ID d’utilisateur de l’utilisateur authentifié de base au lieu de l’utilisateur invité par défaut.

    Pour que l’en-tête d’autorisation ignore les règles de capitalisation, utilisez la glide.security.script.include.name.case.insensitive.list propriété. Vous pouvez modifier cette propriété dans la table Propriétés système [sys_properties] et ajouter les includes de script nécessaires au traitement de l’authentification. Par défaut, cette propriété comporte les valeurs suivantes :
    • BasicAuth
    • CustomAuth
    Ajoutez d’autres includes de script si nécessaire.
    Pour fournir une authentification de base lors de l’utilisation de Perl et des bibliothèques SOAP ::Lite, vous pouvez implémenter la fonction suivante :
    sub SOAP :: Transport :: HTTP :: Client :: get_basic_credentials { return 'user_name' => 'password' ; }
    • Lorsque vous utilisez C# .NET VS 2005 ou une version antérieure, vous pouvez tirer parti de l’objet Informations d’identification, par exemple :
      System.Net . ICredentials cred  = new System.Net . NetworkCredential ( "user_name",  "password" ) ;
       
      service . ServiceNow proxy  = new service . ServiceNow ( ) ;
      service . get getService  = newservice . get ( ) ;
      service . getResponse getServiceResponse  = new service . getResponse ( ) ;
       
       try {
        proxy . Credentials = cred ;
        getService . sys_id = "bf522c350a0a140701972dbf876f1610" ;
        getServiceResponse  = proxy . get (getService ) ; catch (Exception ex ) { }
    • Lorsque vous utilisez C# .NET VS 2008, vous pouvez tirer parti de l’objet ClientCredentials, par exemple :
      Demo_Incident. ServiceNowSoapClient client  = new Test08WebService . Demo_Incident . ServiceNowSoapClient ( ) ;
      client . ClientCredentials . UserName . UserName = "admin" ;
      client . ClientCredentials . UserName . Password = "admin" ;
      Ensuite, dans votre fichier app.config, recherchez ce qui suit et remplacez Aucun par Basique :
      <transport clientCredentialType= "None" proxyCredentialType= "None" realm= "" />
    • Lors de l’utilisation de VB .NET, tirer parti de l’objet Informations d’identification ressemblerait à ce qui suit :
      Sub Main()
               Dim cred  As New System.Net.NetworkCredential( "user_name",  "password")
       
               Dim proxy  As New VB_Democm.incident.ServiceNow
               Dim getIncident  As New VB_Democm.incident. get Dim getResponse  As New VB_Democm.incident.getResponse
       
              proxy.Credentials = cred
       
              getIncident.sys_id =  "[your sysID here]"
       
              getResponse = proxy. get(getIncident)
       
           End Sub
      La réponse obtenue lorsque l’authentification de base est activée et qu’aucune information d’identification n’est fournie ressemble à ceci :
      <html> <head > <title >Apache Tomcat/5.0.28 - Error report </ title > <style > <!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}    H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}    H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}    BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;}    B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;}    P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}   A {color&nbsp;: black;}   A.name {color&nbsp;: black;}   HR {color&nbsp;: #525D76;}--> </ style > </ head > <body > <h1 >HTTP Status 401 -\ </ h1 > <HR size = "1" noshade = "noshade" > <p >< b >type </ b > Status report </ p > <p >< b >message </ b > <u >< / u >< / p > <p >< b >description </ b > <u >This request requires HTTP authentication (). </ u >< / p > <HR size = "1" noshade = "noshade" > <h3 >Apache Tomcat/5.0.28 </ h3 > </ body > </ html >