Configurer l’authentification du serveur Web MID basée sur la clé

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 2 minutes de lecture
  • Assurez la sécurité de votre extension Serveur Web MID à l’aide de l’authentification basée sur les clés. Générer un jeton d’authentification à envoyer dans l’en-tête d’autorisation des demandes client entrantes.

    Avant de commencer

    Remarque :
    Cette procédure ne concerne que la compatibilité avec les versions antérieures à Australie. Pour plus d’informations sur la procédure de configuration de la AustralieServeur Web MID version , reportez-vous à la section Configurer l’extension Serveur Web MID.

    Rôle requis : agent_admin

    Procédure

    1. À l’aide d’un programme de script, créez un jeton en construisant une chaîne à l’aide des éléments définis de la requête HTTP/HTTPS (verbe HTTP, en-tête de type de contenu et chemin d’accès de la demande, reçus du client accédant aux points de terminaison d’extension Serveur Web MID ).
    2. Créez un HMAC (code d’authentification de message de hachage) de la chaîne en signant la chaîne générée avec la clé secrète générée automatiquement qui s’affiche dans la clé secrète.
      Cette clé est unique pour chaque contexte.
    3. Fournissez des informations pour envoyer ce jeton d’authentification dans l’en-tête d’autorisation de la demande.
      Élément Valeur
      Chemin d’accès à une API de service Web pour l’envoi de données brutes Format de l’URL :

      https://<Adresse IP du serveur MID> :<numéro de port>/api/mid/sa/metrics

      Utilisez un numéro de port qui correspond à l’un des numéros de port configurés dans l’extension Web Server.

      Exemple : http://10.10.10.10:8097/api/mid/sa/metrics

      Type de demande POST
      Format de date
      yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
      Par exemple : 2016-06-08T20:54:58.917Z
      Type de contenu application/json

      Utilisez les éléments de demande suivants pour générer la chaîne requise : HTTP-Verb, Content-Type, Date et chemin d’accès de la demande. Spécifiez ces éléments et placez-les dans cet ordre :

      • Verbe HTTP + « \n » +
      • Type de contenu + « \n » +
      • Date + « \n » +
      • Chemin d’accès à la demande

      Pour cet exemple, la chaîne de demande est :

      POST\napplication/json\n2016-06-08T20:54:58.917Z\n/api/mid/sa/metrics

      Pour l’exigence d’horodatage, un horodatage valide utilisant l’en-tête de date HTTP est requis pour authentifier la demande. Assurez-vous que l’horodatage est dans les 15 minutes suivant le serveur MID.

    Comment générer le HMAC de la chaîne qui utilise les éléments définis de la requête HTTP/HTTPS, à l’aide de Java

    package sample;
    import com.glide.util;
    import java.security.SignatureException;
    
    import javax.crypto.Mac;
    import javax.crypto.spec.SecretKeySpec;
    
    public class AuthUtil {
    	
    private static final String HMAC_SHA1_ALGORITHM = "HmacSHA1";
    
    /***
     * Generates base64-encode the HMAC(Hash Message Authentication Code) of input data
     * 
     * @param data
     * @param key
     * @return
     * @throws java.security.SignatureException
     */
    public static String signData(String data, String key) throws java.security.SignatureException {
    	String result;
    	try {
    		// get an hmac_sha1 key from the raw key bytes
    		SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), HMAC_SHA1_ALGORITHM);
    
    		// create hmac_sha1 Mac instance and initialize with the signing key
    		Mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
    		mac.init(signingKey);
    
    		// compute the hmac on input data bytes
    		byte[] rawHmac = mac.doFinal(data.getBytes("UTF-8"));
    
    		// base64-encode the hmac
    		result = Base64.encode(rawHmac);
    
    	} catch (Exception e) {
    		throw new SignatureException("Failed to generate HMAC : " + e.getMessage());
    	}
    	return result;
    }
    }