ServiceNow 작업 추가

ServiceNow 작업이 사용 설정되면 최종 사용자는 어시스턴트에게 다음 ServiceNow 작업을 실행하도록 요청할 수 있습니다.

  • ServiceNow 인시던트 만들기
  • ServiceNow 사고 업데이트

예를 들어 사용자가 앱에 '컴퓨터 하드웨어 오류에 관한 ServiceNow 인시던트 생성' 또는 'ServiceNow 인시던트 INC0010001을 긴급도가 높음으로 업데이트'를 입력할 수 있습니다. 어시스턴트는 필요한 경우 추가 세부정보를 요청한 다음 사용자에게 생성 또는 업데이트 요청을 확인하도록 요청합니다.

어시스턴트는 작업을 통해 다음 ServiceNow 필드를 읽고 업데이트할 수 있습니다.


필드

설명

호출자

필수. 인시던트가 생성되는 호출자의 이메일 주소입니다(예: user@google.com).

제목

생성할 인시던트의 간단한 제목입니다.

설명

생성할 인시던트에 관한 세부정보입니다.

카테고리

생성할 인시던트의 카테고리입니다.

영향

사고의 영향입니다.

긴급성

사고의 긴급성입니다.


인시던트의 상태입니다.

할당 대상

인시던트를 할당할 사용자의 이메일 주소입니다(예: user@google.com).

할당 그룹

이슈를 할당할 사용자 그룹입니다.

종료 코드

인시던트의 종료 코드입니다.

메모 닫기

이 문제에 대한 메모를 닫습니다.

ServiceNow의 인증 및 권한 설정

ServiceNow 작업을 사용 설정하기 전에 ServiceNow 관리자가 작업에 대한 ServiceNow 커넥터를 승인하고 설정해야 합니다. 통합을 연결하고 작업에 대한 읽기 및 쓰기 권한을 허용하는 데 필요합니다.

연결을 설정하기 전에 다음 사항을 확인하세요.

  • 관리자 권한: ServiceNow 관리자여야 합니다.

  • ServiceNow 인스턴스: ServiceNow 개발자 문서의 안내에 따라 ServiceNow 인스턴스를 만듭니다.

  • Google Cloud project: 조직 수준 구성을 관리할 수 있는 관리자 계정으로 Google Cloud 프로젝트를 설정하여 조직에서 직원 풀을 설정할 수 있도록 합니다.

  • 직원 풀: 조직이 직원 풀을 관리하도록 설정되어 있는지 확인합니다.

자세한 내용은 인바운드 REST를 사용하는 OAuth 2.0 블로그 게시물을 참고하세요.

ServiceNow 설정

ServiceNow는 두 가지 기본 사이트를 제공합니다.

  1. 기본 ServiceNow 사이트: ServiceNow 인스턴스의 사이트입니다.
    • 사용자, 그룹, 시스템 관리 작업을 관리합니다.
    • URL: ServiceNow 인스턴스의 URL입니다.
    • 관리자 사용자 인증 정보를 사용하여 로그인합니다.
  2. 개발자 사이트:
    • 기술 자료를 구성하고, 워크플로를 설정하고, 맞춤 애플리케이션을 개발합니다.
    • URL: https://developer.service-now.com
    • ServiceNow ID를 사용하여 로그인합니다.

OAuth 엔드포인트 만들기

OAuth 엔드포인트를 만들려면 다음 단계를 따르세요.

  1. 관리자 권한으로 기본 ServiceNow 인스턴스에 로그인합니다.
  2. 모두 > 시스템 OAuth > 애플리케이션 레지스트리로 이동합니다.
  3. 새로 만들기를 클릭한 다음 외부 클라이언트를 위한 OAuth API 엔드포인트 만들기를 선택합니다. 클라이언트 ID와 클라이언트 보안 비밀번호를 가져옵니다.
  4. 필수 정보를 입력합니다.
    1. 이름: 고유한 이름입니다.
    2. 리디렉션 URL: https://vertexaisearch.cloud.google.com/oauth-redirect
  5. 제출을 클릭하여 사용자 인증 정보를 만듭니다.
  6. 제출 후 이름을 클릭하여 클라이언트 보안 비밀을 확인합니다.
  7. 보안 비밀이 마스킹되어 있습니다. 옆에 있는 자물쇠 아이콘을 클릭하여 보안 비밀을 마스킹 해제하고 확인합니다.
  8. 필요한 경우 사용할 수 있도록 클라이언트 ID와 보안 비밀을 복사해 둡니다.
  9. developer.service-now.com로 이동하여 인스턴스 비밀번호 관리를 클릭합니다.
  10. 필요한 경우 사용할 수 있도록 사용자 이름과 비밀번호를 복사해 둡니다.
  11. 이 단계에서는 ServiceNow 데이터 스토어를 설정하는 데 필요한 5가지 정보를 모두 사용할 수 있습니다. 관리자 역할을 사용하여 데이터를 가져오는 데 문제가 없다면 데이터 스토어를 만듭니다.

역할 및 권한 설정하기

사용자를 만들고 관리하려면 보안 관리자 역할이 있어야 합니다. 이 역할이 없으면 프로필에서 역할 업그레이드를 클릭하여 역할을 security_admin으로 업그레이드하세요. security_admin 역할을 선택하고 업데이트를 클릭합니다. 역할을 만들고 사용자를 관리하려면 security_admin 역할이 필요합니다.

  1. ACL 규칙으로 커스텀 역할을 만듭니다.
    1. 모두 > 사용자 관리 > 역할로 이동합니다.
    2. 새로 만들기를 클릭하여 새 역할을 만듭니다.
    3. 이름을 선택하고 제출을 클릭합니다.
    4. 시스템 보안 > 액세스 제어 (ACL)로 이동하여 새 ACL 규칙을 만듭니다.
    5. 새로 만들기를 클릭하여 새 ACL 규칙을 만듭니다.
    6. sys_user_role과 같은 역할을 선택합니다.
    7. 제출을 클릭하고 역할을 할당합니다.
    8. 모든 테이블 액세스 권한이 부여될 때까지 이 프로세스를 반복합니다. 커넥터는 각 항목이 성공적으로 실행되려면 다음 테이블에 액세스해야 합니다.
      1. 인시던트: incident.
      2. 카탈로그 항목: sc_cat_item, sc_cat_item_user_criteria_mtom, sc_cat_item_user_criteria_no_mtom, sc_cat_item_user_mtom, sc_cat_item_user_no_mtom.
      3. 지식: kb_knowledge, kb_knowledge_base, kb_uc_can_read_mtom, kb_uc_can_contribute_mtom.
      4. 첨부파일: 나열된 모든 항목
      5. ID: sys_user_role, sys_user_has_role, sys_user_group, sys_user_grmember, sys_user
      6. 새 기준이 가져와지면 업데이트됨: core_company, cmn_location, cmn_department
      7. 사용자 기준: user_criteria.
    9. 검색창에서 sys_security_acl_role_list.do로 이동하여 모든 ACL이 업데이트되었는지 확인합니다.
    10. 확인할 역할을 선택합니다.
    11. 필수 ACL이 모두 선택한 역할에 할당되었는지 확인합니다.
  2. 서비스 계정에 역할을 부여합니다.
    1. 모두 > 사용자 관리 > 사용자로 이동하여 사용자를 선택합니다.
    2. 역할을 부여할 사용자를 찾아 선택합니다.
  3. 사용자가 없는 경우 시스템 보안 > 사용자 및 그룹 > 사용자로 이동합니다.
  4. 사용자 표에서 새로 만들기를 클릭하여 새 서비스 계정을 만듭니다.
  5. 웹 서비스 액세스만 체크박스를 선택합니다.
  6. 페이지 하단의 역할 표로 이동합니다.
  7. 오른쪽의 수정을 클릭합니다.
  8. 앞서 생성한 역할을 부여하고 사용자에게 할당합니다. 생성된 역할의 유형에 따라 적절한 역할을 선택하고 할당합니다.
  9. 사용자의 사용자 이름과 비밀번호를 확인합니다. 동일한 페이지에서 비밀번호 설정을 클릭합니다.
  10. 비밀번호를 자동 생성하고 나중에 사용할 수 있도록 저장합니다.
    1. 사용자 ID: manager.
    2. 비밀번호: 자동 생성된 비밀번호를 입력합니다.

전용 역할 만들기 및 ACL 할당

관리자가 아닌 사용자 역할을 사용하는 경우 사용자 역할에 필요한 권한이 포함되어 있어도 ServiceNow 작업을 실행할 때 문제가 발생할 수 있습니다. 이 문제를 방지하려면 전용 역할을 만들고 필요한 권한을 할당하세요.

새 역할 만들기

  1. 사용자 관리 > 역할로 이동합니다.
  2. New(새로 만들기)를 클릭합니다.
  3. 새 역할의 이름을 지정합니다(예: database_admin_restricted).
  4. 선택적으로 설명을 입력합니다.
  5. 제출을 클릭합니다.

인증 사용자에게 새 역할 할당

  1. 사용자 관리 > 사용자로 이동합니다.
  2. 제한된 액세스가 필요한 사용자를 선택합니다.
  3. 사용자 레코드에서 역할 관련 목록으로 이동합니다.
  4. 역할 관련 목록에서 수정을 클릭합니다.
  5. 컬렉션 열에서 방금 만든 역할을 찾아 선택합니다.
  6. 추가를 클릭하여 역할을 역할 목록으로 이동합니다.
  7. 저장을 클릭합니다.

행 수준 권한 구현

  1. System Security > Access Controls (ACL)로 이동합니다.
  2. New(새로 만들기)를 클릭합니다.
  3. 다음 필드를 구성합니다.

    • Type: record를 선택합니다.
    • 작업: read를 선택합니다.
    • 이름:
      • sys_db_object 테이블을 선택합니다.
      • 두 번째 드롭다운에서 없음을 선택합니다.
    • 역할 필요: 새 행 삽입 필드에서 새로 만든 역할을 검색하여 선택합니다.
  4. 제출을 클릭합니다.

  5. 이 단계를 반복하여 sys_glide_objectsys_dictionary 테이블에 행 수준 권한을 구현합니다.

필드 수준 권한 구현

  1. System Security > Access Controls (ACL)로 이동합니다.
  2. New(새로 만들기)를 클릭합니다.
  3. 다음 필드를 구성합니다.
    • Type: record를 선택합니다.
    • 작업: read를 선택합니다.
    • 이름:
      • 첫 번째 드롭다운에서 sys_db_object와 같은 대상 테이블을 선택합니다.
      • 두 번째 드롭다운에서 테이블의 모든 필드에 권한을 적용하거나 이름과 같은 특정 필드 이름을 선택합니다.
    • 역할 필요: 새 행 삽입 필드에서 새로 만든 역할을 검색하여 선택합니다.
  4. 제출을 클릭합니다.
  5. 이 단계를 반복하여 sys_glide_objectsys_dictionary 테이블의 특정 필드 또는 모든 필드에 필드 수준 권한을 구현합니다.

직원 풀 구성

안내에 따라 다음 구성 중 하나를 사용하여 직원 풀을 설정합니다.

  1. Azure OIDC 설정
  2. Azure SAML 설정
  3. Okta 및 OIDC 설정
  4. Okta 및 SAML 설정

ServiceNow 작업 구성

시작하기 전에 Google Cloud 관리자가 ServiceNow의 인증 및 권한 설정의 단계를 완료하고 다음을 제공했는지 확인하세요.

필드 설명
클라이언트 ID ServiceNow 통합의 클라이언트 ID입니다.
클라이언트 보안 비밀번호 ServiceNow 통합의 클라이언트 보안 비밀
사용자 이름 통합의 사용자 계정입니다.
비밀번호 통합의 비밀번호입니다.
인스턴스 URL (또는 도착 호스트) ServiceNow 사이트의 인스턴스 URL입니다. 형식은 다음과 같습니다. https://INSTANCE_NAME.service-now.com
인증 URL ServiceNow API 클라이언트의 승인 URI입니다. 형식은 다음과 같습니다. https://INSTANCE_NAME.service-now.com/oauth_auth.do
토큰 URL ServiceNow API 클라이언트의 새로고침 토큰 URI입니다. 형식은 다음과 같습니다. https://INSTANCE_NAME.service-now.com/oauth_token.do

Google Cloud 콘솔에서 ServiceNow 작업 구성

콘솔을 사용하여 앱에 작업을 추가하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Agent Builder 페이지로 이동합니다.
  2. 탐색 메뉴에서 작업을 클릭합니다.
  3. 작업 추가를 클릭합니다.
  4. ServiceNow를 작업의 소스로 선택하려면 ServiceNow 카드에서 연결을 클릭합니다.
  5. 구성 페이지의 인스턴스 선택 드롭다운 목록에서 ServiceNow 데이터 저장소를 선택합니다.
    지금 서비스 설정
    ServiceNow 설정 구성
  6. 선택한 커넥터 인스턴스의 승인 정보를 입력합니다.

    1. OAuth 엔드포인트를 생성할 때 가져온 새 클라이언트 ID새 클라이언트 보안 비밀번호를 입력합니다.
    2. ServiceNow 인증 URI를 입력합니다. https://<var>INSTANCE_NAME</var>.service-now.com/oauth_auth.do 형식을 사용합니다.
    3. ServiceNow 대상 URI를 입력합니다. https://<var>INSTANCE_NAME</var>.service-now.com 형식을 사용합니다.
    4. ServiceNow 토큰 URI를 입력합니다. https://<var>INSTANCE_NAME</var>.service-now.com/oauth_token.do 형식을 사용합니다.
    5. ServiceNow 관리자의 사용자 계정비밀번호를 입력합니다.
  7. 선택사항: 앱의 추가 보안 계층을 위해 PKCE 지원 사용 설정을 선택합니다.

  8. 선택사항: ServiceNow의 기본 시스템 정보 (시스템 테이블)를 액세스 가능하게 만들려면 시스템 테이블 포함을 선택합니다. 신중하게 고려한 후 꼭 필요한 경우에만 이 옵션을 선택하세요.

  9. 사용 설정할 ServiceNow 작업을 선택합니다.

  10. 설정 완료를 클릭합니다. 작업이 작업 페이지에 표시됩니다. 앱에 작업이 적용되는 데 몇 분 정도 걸립니다.

API를 사용하여 ServiceNow 작업 구성

API를 사용하여 앱에 작업을 추가하려면 다음 단계를 따르세요.

  1. 작업을 위한 ServiceNow 커넥터를 만듭니다.

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -H "X-GFE-SSL: yes" \
      -H "X-Goog-User-Project: PROJECT_ID" \
      "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global:setUpDataConnector" \
      -d '{
        "collectionId": "COLLECTION_ID",
        "collectionDisplayName": "COLLECTION_DISPLAY_NAME",
        "dataConnector": {
          "dataSource": "servicenow",
          "params": {
            "user_account": "USER_ACCOUNT",
            "client_id": "CLIENT_ID",
            "client_secret": "CLIENT_SECRET",
            "password": "PASSWORD",
            "instance_uri": "INSTANCE_URI",
            "auth_type": "OAUTH_PASSWORD_GRANT"
          },
          "refreshInterval": "86400s",
          "entities": [
            {
              "entityName": "knowledge_base",
              "params": {
                "inclusion_filters":{},
                "exclusion_filters":{}
              }
            },
            {
              "entityName": "catalog"
            },
            {
              "entityName": "knowledge"
            },
            {
              "entityName": "incident"
            },
            {
              "entityName": "attachment"
            }
          ],
          "syncMode": "PERIODIC",
          "staticIpEnabled": false
        }
      }'
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트의 ID입니다.

    • COLLECTION_ID: 컬렉션의 ID입니다.

    • COLLECTION_DISPLAY_NAME: 컬렉션의 표시 이름입니다.

    • USER_ACCOUNT: ServiceNow 통합의 사용자 계정입니다.

    • CLIENT_ID: ServiceNow 통합의 클라이언트 ID입니다.

    • PASSWORD: ServiceNow 통합의 비밀번호입니다.

    • INSTANCE_URI: ServiceNow 사이트의 인스턴스 URI입니다.

  2. 작업 구성을 포함하도록 커넥터를 업데이트합니다.

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token --project "PROJECT_NUMBER")" \
      -H "Content-Type: application/json" \
      -H "X-Goog-User-Project: PROJECT_ID" \
      "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/COLLECTION_ID/dataConnector?update_mask=action_config,bap_config,destination_configs" \
      -d '{
      "name": "projects/PROJECT_ID/locations/global/collections/COLLECTION_ID/dataConnector",
      "actionConfig": {
        "isActionConfigured": true,
        "actionParams": {
          "client_id": "CLIENT_ID",
          "client_secret": "CLIENT_SECRET",
          "auth_uri": "AUTH_URI",
          "token_uri": "TOKEN_URI",
          "pkce_support_enabled": true,
          "include_system_tables": true
        }
      },
      "bapConfig": {
        "supported_connector_modes": "ACTIONS"
      },
      "destinationConfigs": [
        {
          "key": "host_url",
          "destinations": [
            {
              "host": "INSTANCE_URL"
            }
          ]
        }
      ]
    }'
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트의 ID입니다.

    • COLLECTION_ID: 컬렉션의 ID입니다.

    • USERNAME: ServiceNow 통합의 사용자 계정입니다.

    • CLIENT_ID: ServiceNow 통합의 클라이언트 ID입니다.

    • PASSWORD: ServiceNow 통합의 비밀번호입니다.

    • AUTH_URI: ServiceNow 통합의 승인 URI입니다.

    • TOKEN_URI: ServiceNow 통합의 갱신 토큰 URI입니다.

    • INSTANCE_URL: ServiceNow 사이트의 인스턴스 URL입니다.

  3. 어시스턴트의 ServiceNow 작업을 사용 설정합니다.

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token --project "PROJECT_NUMBER")" \
      -H "Content-Type: application/json" \
      -H "X-Goog-User-Project: PROJECT_NUMBER" \
      "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant?update_mask=enabledActions" \
      -d '{
        "name": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant",
        "enabledActions": {
          "projects/PROJECT_NUMBER/locations/global/collections/CONNECTOR_ID/dataConnector": {
            "actionInfo": [
              {
                "actionName": "create_servicenow_incident",
                "actionDisplayName": "Create ServiceNow Incident"
              },
              {
                "actionName": "update_servicenow_incident",
                "actionDisplayName": "Update ServiceNow Incident"
              }
            ]
          }
        }
      }'
    

    다음을 바꿉니다.

    • PROJECT_NUMBER: Google Cloud 프로젝트 수입니다.

    • APP_ID: 앱의 ID입니다.

    • CONNECTOR_ID: 이전 단계에서 생성한 커넥터의 컬렉션 ID입니다.

작업을 추가하면 어시스턴트가 앱에서 최종 사용자를 대신하여 이러한 작업을 실행할 수 있습니다. 사용자가 어시스턴트에게 ServiceNow 작업을 실행해 달라고 처음 요청하면 ServiceNow 계정에 대한 액세스 권한을 승인하라는 메시지가 표시됩니다. 어시스턴트를 사용하려면 사용자에게 Gemini Enterprise Plus 라이선스가 있어야 합니다.