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는 두 가지 기본 사이트를 제공합니다.
- 기본 ServiceNow 사이트: ServiceNow 인스턴스의 사이트입니다.
- 사용자, 그룹, 시스템 관리 작업을 관리합니다.
- URL: ServiceNow 인스턴스의 URL입니다.
- 관리자 사용자 인증 정보를 사용하여 로그인합니다.
- 개발자 사이트:
- 기술 자료를 구성하고, 워크플로를 설정하고, 맞춤 애플리케이션을 개발합니다.
- URL:
https://developer.service-now.com
- ServiceNow ID를 사용하여 로그인합니다.
OAuth 엔드포인트 만들기
OAuth 엔드포인트를 만들려면 다음 단계를 따르세요.
- 관리자 권한으로 기본 ServiceNow 인스턴스에 로그인합니다.
- 모두 > 시스템 OAuth > 애플리케이션 레지스트리로 이동합니다.
- 새로 만들기를 클릭한 다음 외부 클라이언트를 위한 OAuth API 엔드포인트 만들기를 선택합니다. 클라이언트 ID와 클라이언트 보안 비밀번호를 가져옵니다.
- 필수 정보를 입력합니다.
- 이름: 고유한 이름입니다.
- 리디렉션 URL:
https://vertexaisearch.cloud.google.com/oauth-redirect
- 제출을 클릭하여 사용자 인증 정보를 만듭니다.
- 제출 후 이름을 클릭하여 클라이언트 보안 비밀을 확인합니다.
- 보안 비밀이 마스킹되어 있습니다. 옆에 있는 자물쇠 아이콘을 클릭하여 보안 비밀을 마스킹 해제하고 확인합니다.
- 필요한 경우 사용할 수 있도록 클라이언트 ID와 보안 비밀을 복사해 둡니다.
developer.service-now.com
로 이동하여 인스턴스 비밀번호 관리를 클릭합니다.- 필요한 경우 사용할 수 있도록 사용자 이름과 비밀번호를 복사해 둡니다.
- 이 단계에서는 ServiceNow 데이터 스토어를 설정하는 데 필요한 5가지 정보를 모두 사용할 수 있습니다. 관리자 역할을 사용하여 데이터를 가져오는 데 문제가 없다면 데이터 스토어를 만듭니다.
역할 및 권한 설정하기
사용자를 만들고 관리하려면 보안 관리자 역할이 있어야 합니다. 이 역할이 없으면 프로필에서 역할 업그레이드를 클릭하여 역할을 security_admin으로 업그레이드하세요. security_admin 역할을 선택하고 업데이트를 클릭합니다. 역할을 만들고 사용자를 관리하려면 security_admin 역할이 필요합니다.
- ACL 규칙으로 커스텀 역할을 만듭니다.
- 모두 > 사용자 관리 > 역할로 이동합니다.
- 새로 만들기를 클릭하여 새 역할을 만듭니다.
- 이름을 선택하고 제출을 클릭합니다.
- 시스템 보안 > 액세스 제어 (ACL)로 이동하여 새 ACL 규칙을 만듭니다.
- 새로 만들기를 클릭하여 새 ACL 규칙을 만듭니다.
sys_user_role
과 같은 역할을 선택합니다.- 제출을 클릭하고 역할을 할당합니다.
- 모든 테이블 액세스 권한이 부여될 때까지 이 프로세스를 반복합니다. 커넥터는 각 항목이 성공적으로 실행되려면 다음 테이블에 액세스해야 합니다.
- 인시던트:
incident
. - 카탈로그 항목:
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
. - 지식:
kb_knowledge
,kb_knowledge_base
,kb_uc_can_read_mtom
,kb_uc_can_contribute_mtom
. - 첨부파일: 나열된 모든 항목
- ID:
sys_user_role
,sys_user_has_role
,sys_user_group
,sys_user_grmember
,sys_user
- 새 기준이 가져와지면 업데이트됨:
core_company
,cmn_location
,cmn_department
- 사용자 기준:
user_criteria
.
- 인시던트:
- 검색창에서
sys_security_acl_role_list.do
로 이동하여 모든 ACL이 업데이트되었는지 확인합니다. - 확인할 역할을 선택합니다.
- 필수 ACL이 모두 선택한 역할에 할당되었는지 확인합니다.
- 서비스 계정에 역할을 부여합니다.
- 모두 > 사용자 관리 > 사용자로 이동하여 사용자를 선택합니다.
- 역할을 부여할 사용자를 찾아 선택합니다.
- 사용자가 없는 경우 시스템 보안 > 사용자 및 그룹 > 사용자로 이동합니다.
- 사용자 표에서 새로 만들기를 클릭하여 새 서비스 계정을 만듭니다.
- 웹 서비스 액세스만 체크박스를 선택합니다.
- 페이지 하단의 역할 표로 이동합니다.
- 오른쪽의 수정을 클릭합니다.
- 앞서 생성한 역할을 부여하고 사용자에게 할당합니다. 생성된 역할의 유형에 따라 적절한 역할을 선택하고 할당합니다.
- 사용자의 사용자 이름과 비밀번호를 확인합니다. 동일한 페이지에서 비밀번호 설정을 클릭합니다.
- 비밀번호를 자동 생성하고 나중에 사용할 수 있도록 저장합니다.
- 사용자 ID:
manager
. - 비밀번호: 자동 생성된 비밀번호를 입력합니다.
- 사용자 ID:
전용 역할 만들기 및 ACL 할당
관리자가 아닌 사용자 역할을 사용하는 경우 사용자 역할에 필요한 권한이 포함되어 있어도 ServiceNow 작업을 실행할 때 문제가 발생할 수 있습니다. 이 문제를 방지하려면 전용 역할을 만들고 필요한 권한을 할당하세요.
새 역할 만들기
- 사용자 관리 > 역할로 이동합니다.
- New(새로 만들기)를 클릭합니다.
- 새 역할의 이름을 지정합니다(예:
database_admin_restricted
). - 선택적으로 설명을 입력합니다.
- 제출을 클릭합니다.
인증 사용자에게 새 역할 할당
- 사용자 관리 > 사용자로 이동합니다.
- 제한된 액세스가 필요한 사용자를 선택합니다.
- 사용자 레코드에서 역할 관련 목록으로 이동합니다.
- 역할 관련 목록에서 수정을 클릭합니다.
- 컬렉션 열에서 방금 만든 역할을 찾아 선택합니다.
- 추가를 클릭하여 역할을 역할 목록으로 이동합니다.
- 저장을 클릭합니다.
행 수준 권한 구현
- System Security > Access Controls (ACL)로 이동합니다.
- New(새로 만들기)를 클릭합니다.
다음 필드를 구성합니다.
- Type: record를 선택합니다.
- 작업: read를 선택합니다.
- 이름:
- sys_db_object 테이블을 선택합니다.
- 두 번째 드롭다운에서 없음을 선택합니다.
- 역할 필요: 새 행 삽입 필드에서 새로 만든 역할을 검색하여 선택합니다.
제출을 클릭합니다.
이 단계를 반복하여 sys_glide_object 및 sys_dictionary 테이블에 행 수준 권한을 구현합니다.
필드 수준 권한 구현
- System Security > Access Controls (ACL)로 이동합니다.
- New(새로 만들기)를 클릭합니다.
- 다음 필드를 구성합니다.
- Type: record를 선택합니다.
- 작업: read를 선택합니다.
- 이름:
- 첫 번째 드롭다운에서 sys_db_object와 같은 대상 테이블을 선택합니다.
- 두 번째 드롭다운에서 테이블의 모든 필드에 권한을 적용하거나 이름과 같은 특정 필드 이름을 선택합니다.
- 역할 필요: 새 행 삽입 필드에서 새로 만든 역할을 검색하여 선택합니다.
- 제출을 클릭합니다.
- 이 단계를 반복하여 sys_glide_object 및 sys_dictionary 테이블의 특정 필드 또는 모든 필드에 필드 수준 권한을 구현합니다.
직원 풀 구성
안내에 따라 다음 구성 중 하나를 사용하여 직원 풀을 설정합니다.
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 작업 구성
콘솔을 사용하여 앱에 작업을 추가하려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 Agent Builder 페이지로 이동합니다.
- 탐색 메뉴에서 작업을 클릭합니다.
- 작업 추가를 클릭합니다.
- ServiceNow를 작업의 소스로 선택하려면 ServiceNow 카드에서 연결을 클릭합니다.
- 구성 페이지의 인스턴스 선택 드롭다운 목록에서 ServiceNow 데이터 저장소를 선택합니다.
ServiceNow 설정 구성 선택한 커넥터 인스턴스의 승인 정보를 입력합니다.
- OAuth 엔드포인트를 생성할 때 가져온 새 클라이언트 ID와 새 클라이언트 보안 비밀번호를 입력합니다.
- ServiceNow 인증 URI를 입력합니다.
https://<var>INSTANCE_NAME</var>.service-now.com/oauth_auth.do
형식을 사용합니다. - ServiceNow 대상 URI를 입력합니다.
https://<var>INSTANCE_NAME</var>.service-now.com
형식을 사용합니다. - ServiceNow 토큰 URI를 입력합니다.
https://<var>INSTANCE_NAME</var>.service-now.com/oauth_token.do
형식을 사용합니다. - ServiceNow 관리자의 사용자 계정과 비밀번호를 입력합니다.
선택사항: 앱의 추가 보안 계층을 위해 PKCE 지원 사용 설정을 선택합니다.
선택사항: ServiceNow의 기본 시스템 정보 (시스템 테이블)를 액세스 가능하게 만들려면 시스템 테이블 포함을 선택합니다. 신중하게 고려한 후 꼭 필요한 경우에만 이 옵션을 선택하세요.
사용 설정할 ServiceNow 작업을 선택합니다.
설정 완료를 클릭합니다. 작업이 작업 페이지에 표시됩니다. 앱에 작업이 적용되는 데 몇 분 정도 걸립니다.
API를 사용하여 ServiceNow 작업 구성
API를 사용하여 앱에 작업을 추가하려면 다음 단계를 따르세요.
작업을 위한 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입니다.
작업 구성을 포함하도록 커넥터를 업데이트합니다.
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입니다.
어시스턴트의 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 라이선스가 있어야 합니다.