---
sourceDocument: 호주 IT Operations Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/it-operations-management

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# 키 기반 MID 웹 서버 인증 구성

# 키 기반 MID 웹 서버 인증 구성 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 3분

키 기반 인증을 사용하여 MID 웹 서버 확장에 추가 보안을 제공합니다. 수신 클라이언트 요청의 인증 헤더에서 보낼 인증 토큰을 생성합니다.{#configure-mid-web-server-extension-metric-data__ph_MIDWebServerShortDesc}

## 시작하기 전에

주:  
이 절차는 이전 릴리스 Australia와의 호환성에만 해당됩니다. 릴리스의 구성 절차에 Australia 대한 자세한 내용은 다음 문서를 참조하십시오[확장 구성 MID 웹 서버](https://servicenow-prod.fluidtopics.net/8m7VqPxp3k~GyRCmiM54uw "MID 웹 서버MID 서버 는 REST API를 개발하여 이벤트와 메트릭MID 서버을 전송할 수 있는 확장입니다. 이 확장은 MID WebService 이벤트 수신기 및 웹소켓 엔드포인트 확장과 같은 메트릭 인텔리전스다른 MID 서버 확장에서 활용됩니다에이전트 클라이언트 수집기.").MID 웹 서버

* 를 배포하고 시작합니다.MID 서버
* 확장을 MID 웹 서버 구성하고 인증 유형으로 키 기반을 선택합니다. 자세한 내용은 [MID 웹 서버 확장 구성을](https://servicenow-prod.fluidtopics.net/8m7VqPxp3k~GyRCmiM54uw "MID 웹 서버MID 서버 는 REST API를 개발하여 이벤트와 메트릭MID 서버을 전송할 수 있는 확장입니다. 이 확장은 MID WebService 이벤트 수신기 및 웹소켓 엔드포인트 확장과 같은 메트릭 인텔리전스다른 MID 서버 확장에서 활용됩니다에이전트 클라이언트 수집기.") 참조하십시오.

{#configure-mid-web-server-extension-metric-data__ul_mvm_k4y_zrb}

필요한 역할: agent_admin

## 프로시저

1. 스크립트 프로그램을 사용하여 확장 엔드포인트에 액세스하는 클라이언트에서 수신한 HTTP/HTTPS 요청의 정의된 요소(HTTP 동사, 콘텐츠 유형 헤더 및 요청 경로)를 사용하여 문자열을 생성하여 토큰을 만듭니다.MID 웹 서버
2. 비밀 키에 표시되는 자동 생성된 비밀 키로 생성된 문자열에 서명하여 문자열의 HMAC(해시 메시지 인증 코드)를 만듭니다.  
   이 키는 컨텍스트마다 고유합니다.
3. 요청 인증 헤더에 이 인증 토큰을 보내는 데 필요한 정보를 제공합니다.  
   {#configure-mid-web-server-extension-metric-data__table_dsc_k3w_nrb__entry__2}

   | 항목 | 값 |
   |-|-|
   | 원시 데이터를 보내기 위한 웹 서비스 API의 경로 | URL 형식: https://\<MID 서버 IP 주소\>:\<포트 번호\>/api/mid/sa/metrics 웹 서버 확장에 설정된 포트 번호 중 하나와 일치하는 포트 번호를 사용합니다. 예: http://10.10.10.10:8097/api/mid/sa/metrics |
   | 요청 유형 | 게시 |
   | 날짜 형식 | yyyy-MM-dd'T'HH:mm:ss.SSS'Z' 예: 2016-06-08T20:54:58.917Z |
   | 콘텐츠-형식 | 애플리케이션/JSON |
   [ ]

   {#configure-mid-web-server-extension-metric-data__table_dsc_k3w_nrb}

   HTTP-동사, 컨텐츠-형식, 날짜 및 요청 경로와 같은 요청 요소를 사용하여 필요한 문자열을 생성합니다. 다음 요소를 지정하여 다음 순서대로 배치합니다.
   * HTTP-동사 + "\\n" +
   * 컨텐츠-형식 + "\\n" +
   * 날짜 + "\\n" +
   * 요청-경로

   {#configure-mid-web-server-extension-metric-data__ul_bg4_p3w_nrb}

   이 예의 경우 요청 문자열은 다음과 같습니다.

   <kbd class="ph userinput">POST\napplication/json\n2016-06-08T20:54:58.917Z\n/api/mid/sa/metrics</kbd>

   타임스탬프 요구 사항의 경우, 요청을 인증하려면 HTTP 날짜 헤더를 사용하는 유효한 타임스탬프가 필요합니다. 타임스탬프가 MID 서버에서 15분 내에 있는지 확인합니다.
{#configure-mid-web-server-extension-metric-data__steps_nd5_flc_bx}

## Java를 사용하여 정의된 HTTP/HTTPS 요청의 요소를 사용하는 문자열의 HMAC를 생성하는 방법 {#configure-mid-web-server-extension-metric-data__example_mzb_yxs_1sb}

    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;
    }
    }


