Active Directory 자동화 예시

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

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

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

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

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

    이 태스크 정보

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

    주:
    이 예시 워크플로우에서는 LDAP에 대해 구성되고 LDAP 서버가 새 사용자 계정을 수락하도록 구성되어 있다고 가정합니다 ServiceNow . 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에서 사용자의 계정을 업데이트합니다. 이 예에서는 사용자의 직함이 업데이트됩니다.

      {"제목" : "QA"}

    10. 제출을 클릭합니다.
      워크플로우는 다음과 같습니다.
      그림 2. AD 사용자 업데이트
      AD 사용자 업데이트 중
    11. 두 활동 결과(성공 및 실패)를 엔드포인트에 연결합니다.
      이 시점에서 워크플로우는 사용자 기록을 입력으로 사용하고 ServiceNow 해당 Active Directory 계정의 이름, 성 및 직함을 업데이트합니다. 계정이 Active Directory에 없으면 워크플로가 실패합니다.
      주:
      일반적인 워크플로우에서는 실패 시 몇 가지 유형의 대체 작업이 바람직합니다. 예를 들어, 워크플로우가 기록을 업데이트하지 못한 경우 이메일 및 SMS 알림을 보낼 수 있습니다.
    12. 워크플로가 실패하지 않도록 하려면 시작과 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 개체 만들기 작업의 실패 결과를 끝에 연결합니다.
      이 예에서는 오류를 무시합니다. 이제 워크플로우는 다음과 같습니다.
      그림 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은 쿼리 AD 결과를 JSON 문자열에서 queryResults라는 Javascript 배열로 변환합니다. 2번째 줄은 해당 배열의 길이를 확인합니다. 배열이 0보다 크면 계정과 일치하는 것이 발견된 것이고 대답을 예로 설정했습니다. 그렇지 않다면 대답은 '아니오'입니다.

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

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

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