ServiceNow에서 인증 및 연결 정보 관리(URL/ID/Password)

4897 단어 ServiceNow
  • Version: London

  • 개요



    ServiceNow의 Business Rule에서 API 등을 취급할 때의 접속 정보(URL/ID/Pass)를 관리한다.

    Connection & Credential



    Connection & Credential(인증 정보 및 연결 정보)을 사용합니다.
    자격 증명 및 연결 정보 | ServiceNow

    다음은 APi의 URL/ID/Pass를 관리하는 경우의 테이블 구조를 나타낸 예이다. 테이블과 배치되는 정보의 차이에주의하십시오.


    암호에 관해서는 자격 증명 [discovery_credentials] 테이블에 값이 저장되지만 저장된 단계에서 자동으로 암호화됩니다.

    암호화 및 복호화
    플랫폼에서는 자격 증명 [discovery_credentials] 테이블의 암호화 필드에 자격 증명을 저장합니다. 자격 증명을 입력하면 자격 증명을 볼 수 없습니다.
    자격 증명 시작

    해보자



    간단한 외부 API에 대한 문의 코드를 Connection & Credential 기능을 사용하여 작성해 보자.
    이번에는 OpenWeatherMap API( htps : // 칭찬. 오우우 아테아 r마 p. rg/ )를 이용했다.

    Alias ​​만들기



    우선, 접속 정보를 정리하는 별명을 작성한다. Connection & Credential > Connection & Credential Aliases에서 New로 새 레코드를 만들고 저장합니다.
  • Type: Connection & Credential
  • Connection Type: HTTP



  • Credential 만들기



    그런 다음 Credential을 만듭니다. Connection & Credential > Credentials에서 New로 새 레코드를 만듭니다. 이번에는 「API Key Credentials」를 선택한다.





    Connections 만들기



    마지막으로 Connections를 만듭니다. Connection & Credential > Connections에서 New로 새 레코드를 만듭니다. 이번은 Current weather data 을 이용한다고 등록한다. HTTP Connection을 선택하여 작성.
  • Credential : 방금 만든 Credential을 선택
  • Connection alias: 방금 만든 alias를 선택
  • Connection URL: h tp // 아피. 오우우 아테아 r마 p. 오 rg / data / 2.5 / ue ate r



  • 실제로 문의해 보기



    ConnectionInfoProvider | ServiceNow Developers
    스크립트에서 Connection & Credential의 정보를 이용할 때는 ConnectionInfoProvider를 이용한다. 여기에서는 Alias의 sys_id로 지정함으로써 URL/ID/Pass를 정리하여 가져올 수 있습니다.
    덧붙여 sys_id는 리스트 뷰 등에서 「오른쪽 클릭→Copy sys_id」로 픽업한다.

    아래의 코드를 「System Definition - Scripts - Background」로 실행한다.
    // Get Connection Info
    var provider = new sn_cc.ConnectionInfoProvider();
    var connectionInfo = provider.getConnectionInfo("*****"); // ここにsys_idを指定
    
    var BASE_URL = String(connectionInfo.getAttribute("connection_url"));
    var API_KEY = String(connectionInfo.getCredentialAttribute("api_key"));
    var endPointURL = BASE_URL + "?q=London&APPID=" + API_KEY;
    
    // Rest Request
    var rm = new sn_ws.RESTMessageV2();
    rm.setLogLevel("all");
    rm.setEndpoint(endPointURL);
    rm.setHttpMethod("get");
    rm.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    var request = rm.execute();
    
    // Output
    var requestBody = JSON.parse(request.getBody());
    gs.info(requestBody["name"] + ":" + requestBody["weather"][0]["main"]);
    


    뭔가 해석 에러가 나오고 있지만, 무사 「London:Clouds」라고 표시되었다.gs.getProperty('instance_name') 에서의 인스턴스명 취득과 조합하면(자), 인스턴스 마다 접속 정보를 전환할 수 있을 것 같다.

    참고



    연결 정보 및 자격 증명 별칭 만들기

    좋은 웹페이지 즐겨찾기