Configure a autenticação do MID Web Server baseada em chave

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 2 min. de leitura
  • Forneça segurança adicional à extensão do MID Web Server usando autenticação baseada em chave. Gere um token de autenticação a ser enviado no cabeçalho de autorização das solicitações de cliente recebidas.

    Antes de Iniciar

    Nota:
    Este procedimento é somente para compatibilidade com versões anteriores a. Zurich. Para obter detalhes sobre o procedimento em Zurich versão para configurar o. MID Web Server, consulte Configure o. MID Web Server extensão.

    Função necessária: agent_admin

    Procedimento

    1. Usando um programa de script, crie um token construindo uma cadeia de caracteres usando elementos definidos da solicitação HTTP/HTTPS (verbo HTTP, cabeçalho do tipo de conteúdo e caminho da solicitação, recebidos do cliente que acessa o. MID Web Server endpoints de extensão).
    2. Crie um HMAC (código de autenticação de mensagem de hash) da cadeia de caracteres assinando a cadeia de caracteres gerada com a chave secreta gerada automaticamente que é exibida no Chave secreta .
      Esta chave é exclusiva por contexto.
    3. Forneça informações para enviar este token de autenticação no cabeçalho Autorização de solicitação.
      Item Valor
      Caminho para uma API de serviço web para enviar dados brutos Formato de URL:

      Endereço IP do servidor https://<MID>:<port number>/api/mid/sa/metrics

      Use um número de porta que corresponda a um dos números de porta configurados na extensão do Servidor Web.

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

      Tipo de solicitação POST
      Formato de data
      yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
      Por exemplo: 2016-06-08T20:54:58.917Z
      Tipo de conteúdo aplicação/json

      Use os seguintes elementos de solicitação para gerar a cadeia de caracteres necessária: HTTP-Verbo, Content-Type, Data e Caminho da solicitação. Especifique estes elementos e coloque-os nesta ordem:

      • HTTP-Verbo e ""
      • "Content-Type" e "n"
      • "/n"
      • Caminho da solicitação

      Para este exemplo, a cadeia de caracteres da solicitação é:

      Aplicação/json 2016-06-08T20:54:58.917Z/api/mid/sa/metrics

      Para o requisito de carimbo de data/hora, um carimbo de data válido que usa o cabeçalho de data HTTP é necessário para autenticar a solicitação. Certifique-se de que o carimbo de data/hora esteja dentro de 15 minutos do MID Server.

    Como gerar o HMAC da cadeia de caracteres que usa elementos definidos da solicitação HTTP/HTTPS usando 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;
    }
    }