Active Directory 자동화 예시

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 7분
  • 6가지 오케스트레이션 Active Directory 활동 세트를 통해 조직은 시간을 절약하고 실수를 제거하는 감사 가능한 자체 문서화 워크플로우를 통해 온보딩/오프보딩 프로세스를 자동화할 수 있습니다.

    활동은 사용자 계정을 관리하고 사용자 암호를 재설정하도록 설계되었습니다. 다음 활동은 Active Directory 사용자 계정을 관리할 때 관리자가 직면하는 가장 일반적인 사용 사례를 다룹니다.
    • AD 사용자 계정 작성
    • AD 사용자 계정 업데이트
    • AD 사용자 계정 제거
    • AD 사용자 계정 사용 안 함
    • 쿼리 AD
    • AD 사용자 암호를 재설정합니다.

    이러한 활동은 공통 설계를 공유하고, 보완적인 기능을 가지며, 공통의 매개변수 세트를 공유합니다. 이러한 요소는 단독으로 또는 함께 사용하여 사용자 계정 프로비저닝 및 프로비저닝 해제를 위한 일관된 워크플로우를 만들 수 있습니다.

    오케스트레이션으로 Active Directory 업데이트

    조직에서 인스턴스를 ServiceNow 사용자 계정 데이터에 대한 단일 기록 시스템으로 만들 계획이며 Active Directory를 최신 변경 내용으로 업데이트하려고 합니다.

    이 태스크 정보

    해결 방법은 사용자 기록에서 ServiceNow Active Directory로 변경 내용을 푸시하여 새 사용자 기록을 생성하거나 기존 기록을 업데이트하는 오케스트레이션 워크플로우를 만드는 것입니다. 이 작업은 사용자 [sys_user] 테이블의 데이터를 ServiceNow 기반으로 Active Directory에서 기록을 만들고 업데이트할 수 있는 오케스트레이션 워크플로우를 생성하여 수행됩니다.

    주:
    이 예시 워크플로우는 LDAP ServiceNow 용으로 구성되어 있고 LDAP 서버가 새 사용자 계정을 수락하도록 구성되어 있다고 가정합니다. Active Directory 사용자 관리 활동은 LDAP에 종속되지 않지만 LDAP가 있으므로 예시 워크플로우를 훨씬 쉽게 수행할 수 있습니다. 도메인 컨트롤러의 IP 주소를 하드코딩하거나, 다른 워크플로우 입력을 추가하거나, 스크립트를 사용하여 CMDB에서 조회하여 워크플로우에 제공해야 합니다.

    프로시저

    1. 다음으로 이동 모두 > 워크플로우 > 워크플로우 편집기.
    2. 워크플로우 탭에서 + 아이콘을 클릭하여 다음 변수를 사용하여 새 워크플로우를 생성합니다.
      • 이름: AD 사용자 동기화
      • 테이블: 전역 [global]
    3. 제출을 클릭합니다.
      시작점과 끝점이 있는 기본 워크플로우가 캔버스에 나타납니다.
    4. 캔버스의 왼쪽 위 모서리에 있는 메뉴 아이콘을 클릭하고 컨텍스트 메뉴에서 입력 편집을 선택합니다.
      그림 1. 워크플로우 입력 편집
      워크플로우 입력 편집
    5. 워크플로우 입력 양식의 변수 기록 목록에서 새로 만들기를 클릭하고 테이블의 필드를 사용하여 새 변수를 만듭니다.
      필드
      유형 참조
      레이블 사용자
      열 이름 u_user
      참조 사양 > 참조 사용자(sys_user)
    6. 제출을 클릭합니다.
    7. 사용자 지정 탭에서 다음을 확장합니다. 사용자 지정 활동 > Active Directory.
    8. AD 객체 업데이트 활동을 새 워크플로우의 시작점과 끝점 사이의 전환선에 끌어서 놓습니다.
      이 작업은 자동으로 활동을 엔드포인트에 연결하고 워크플로우 활동 속성 양식을 엽니다.
    9. 테이블의 필드를 사용하여 양식을 작성합니다.
      필드
      이름 사용자 데이터 업데이트와 같은 논리 이름을 입력합니다.
      도메인 컨트롤러 LDAP 통합은 ServiceNow 사용자 계정이 연결된 LDAP 서버에 대한 참조를 추가합니다. LDAP 서버를 식별하려면 다음 문을 입력합니다.

      ${workflow.inputs.u_user.ldap_server.server_url}

      유형 AD 객체의 유형입니다. 이 경우 유형은 사용자이며 기본값입니다.
      객체 이름 이 예시에서는 사용자 이름이 Active Directory sAMAccountName과 일치한다고 ServiceNow 가정합니다. 다음을 입력합니다.

      ${workflow.inputs.u_user.user_name}

      객체 데이터 사용자가 있는 경우 Active Directory에서 사용자의 계정을 업데이트합니다. 이 예에서는 사용자의 직함이 업데이트됩니다.

      {"title" : "QA"}

    10. 제출을 클릭합니다.
      워크플로우는 다음과 같습니다.
      그림 2. AD 사용자 업데이트
      AD 사용자 업데이트 중
    11. 두 활동 결과(성공 및 실패)를 엔드포인트에 연결합니다.
      이때 워크플로우는 사용자 기록을 ServiceNow 입력으로 받아 해당 Active Directory 계정의 이름, 성, 직함을 업데이트합니다. 계정이 Active Directory에 없으면 워크플로우가 실패합니다.
      주:
      일반 워크플로우에서는 실패 시 일부 유형의 대체 작업이 바람직합니다. 예를 들어, 워크플로우에서 기록을 업데이트하지 못한 경우 이메일 및 SMS 알림을 보낼 수 있습니다.
    12. 워크플로우가 실패하지 않도록 하려면 Begin과 AD 객체 업데이트 활동 사이의 전환 라인에 AD 객체 생성 활동을 추가합니다.
    13. 테이블의 필드를 사용하여 워크플로우 활동 속성 양식을 작성합니다.
      필드
      이름 사용자 데이터 생성과 같은 논리 이름을 입력합니다.
      도메인 컨트롤러 업데이트 활동과 동일합니다. ${workflow.inputs.u_user.ldap_server.server_url}
      오우 이 객체가 속한 조직 단위입니다. 이 예시의 목적을 위해 OU=HQ,OU=Managed Objects를 입력할 수 있습니다
      객체 이름 업데이트 활동과 동일합니다. ${workflow.inputs.u_user.user_name}
      객체 데이터 사용자 이름만 포함된 계정을 작성합니다. 이 예시의 목적에 따라 {"givenName" : "${workflow.inputs.u_user.first_name}", "SN" : "${workflow.inputs.u_user.last_name}" }를 입력할 수 있습니다.
    14. 제출을 클릭합니다.
    15. AD 객체 생성 활동의 실패 결과를 End에 연결합니다.
      이 예에서는 오류를 무시합니다. 이제 워크플로우는 다음과 같습니다.
      그림 3. AD 사용자 생성
      AD 사용자 생성

      이 절차는 사용자 이름으로만 구성된 기본 Active Directory 계정을 만드는 간단한 워크플로우를 빌드합니다. 그런 다음 워크플로우는 사용자 [sys_user] 테이블에서 제공한 ServiceNow 추가 정보로 해당 계정을 업데이트합니다. 그러나 사용자 계정이 이미 있는 경우에는 AD 객체 생성 활동을 실행하지 않고자 합니다. 워크플로우는 Active Directory에서 일치하는 사용자 기록을 쿼리한 다음 쿼리 결과에 따라 워크플로우를 분기해야 합니다. 계정이 이미 있는 경우 워크플로우에 의해 계정이 업데이트됩니다. 계정이 없으면 워크플로우는 Active Directory에 계정을 만들어야 합니다.

    16. AD 쿼리 활동을 시작과 AD 객체 생성 사이의 전환으로 끌어서 놓습니다.
    17. 테이블의 필드를 사용하여 워크플로우 활동 속성 양식을 작성합니다.
      필드 정의
      이름 기존 계정 검색과 같은 논리 이름을 입력합니다.
      도메인 컨트롤러 ${workflow.inputs.u_user.ldap_server.server_url}
      속성 반환할 Active Directory 속성의 목록이며 쉼표로 구분됩니다. 예: givenName, SN, title. 매개변수 필드가 비어 있으면 모든 속성이 반환됩니다. 이 워크플로우에서는 필드를 비워 둡니다.
      검색 필터 검색 매개변수를 정의하는 LDAP 필터 문자열입니다. 유효한 LDAP 필터링 기준을 사용합니다. 입력 기록과 일치하는 사용자 계정을 찾으려면 다음을 사용합니다.

      (samaccountname=${workflow.inputs.u_user.user_name})

    18. 제출을 클릭합니다.
    19. 쿼리 활동에 대한 실패 결과를 엔드포인트에 연결합니다.
      이 워크플로우에서는 오류를 무시하고 있다는 점을 기억하십시오.
    20. 쿼리 활동의 성공 결과를 AD 객체 업데이트 활동에 연결합니다.
      이제 워크플로우는 다음과 같습니다.
      그림 4. 사용자 계정에 대한 AD 쿼리
      사용자 계정에 대한 AD 쿼리

      쿼리 AD 활동은 워크플로우 데이터 버스에서 결과를 JSON 문자열로 반환합니다. 이 JSON 문자열은 항상 객체의 배열입니다. 각 개체는 쿼리와 일치하는 Active Directory 항목에 해당합니다. 해당 배열이 비어 있는지 여부에 관계없이 워크플로우는 분기되어야 합니다.

    21. 코어 탭의 조건 폴더에서 표준 If 활동을 끌어와 쿼리 AD 및 업데이트 AD 객체 사이의 전환에 놓습니다.
    22. 테이블의 필드를 사용하여 워크플로우 활동 속성 양식을 작성합니다.
      필드
      이름 계정 존재와 같은 논리 이름을 입력합니다.
      고급 스크립트 필드를 열려면 이 확인란을 선택합니다.
      스크립트 If 활동이 올바르게 작동하려면 쿼리 활동의 예 및 아니요 결과에 해당하는 응답 변수(var)에 또는 아니요 를 반환해야 합니다. 1번 줄은 JSON 문자열의 쿼리 AD 결과를 queryResults라는 Javascript 배열로 변환합니다. 라인 2는 해당 배열의 길이를 확인합니다. 배열이 0보다 크면 계정과 일치하는 항목이 발견되어 대답을 예로 설정합니다. 그렇지 않으면 대답은 '아니오'입니다.

      var queryResults=new JSON().decode(data.get(5).output);

      답변 = ( queryResults.length>0 ? '예' : '아니오');

      주:
      이 스크립트의 표현식 data.get(5) 은 워크플로우에 추가된 다섯 번째 활동이었기 때문에 데이터 버스에서 쿼리 AD 출력을 순서 번호로 식별합니다.
      그림 5. 데이터버스에서 AD 출력 쿼리
      데이터버스에서 AD 출력 쿼리
    23. 제출을 클릭합니다.
    24. 캔버스에서 If 활동의 Yes 결과에서 AD 객체 업데이트 활동으로의 전환을 생성합니다.
    25. If 활동의 결과 없음에서 AD 객체 생성 활동으로의 전환을 생성합니다.
      이것이 마지막 단계입니다. 이 워크플로우는 Active Directory를 쿼리하여 계정이 이미 있는지 확인합니다. 계정이 있으면 워크플로우가 해당 계정을 업데이트합니다. 계정이 없으면 워크플로우에서 계정을 만든 다음 구성된 사용자 데이터 세트로 Active Directory를 업데이트합니다.
      그림 6. 조건부 경로 생성
      조건부 경로 생성