View a markdown version of this page

ServiceNow에 대한 OAuth 2.0 클라이언트 자격 증명 인증 설정 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

ServiceNow에 대한 OAuth 2.0 클라이언트 자격 증명 인증 설정

인증을 위해 OAuth 2.0 클라이언트 자격 증명(2LO)과 함께 ServiceNow 테이블 API를 사용합니다. Amazon Bedrock에서 데이터 소스를 구성하기 전에 ServiceNow 인스턴스에서 다음 단계를 모두 완료합니다.

1단계: 클라이언트 자격 증명 권한 부여 유형 활성화

  1. ServiceNow에서 필터 탐색기 sys_properties.list 사용으로 이동합니다.

  2. 다음 값을 사용하여 새 시스템 속성을 생성합니다.

    • 명칭 – glide.oauth.inbound.client.credential.grant_type.enabled

    • 유형 – true | false

    • 값-true

2단계: 전용 서비스 계정 생성

  1. 사용자 관리 > 사용자로 이동합니다.

  2. 새로 만들기를 선택하고 양식을 작성합니다.

    • 사용자 ID - 설명이 포함된 이름(예: svc.amazon.quick.kb).

    • 웹 서비스 액세스만 - 확인됨. 이렇게 하면 대화형 로그인이 방지됩니다.

    • 암호 - 강력한 암호를 설정합니다. 커넥터는 OAuth를 사용하지만 계정 생성에는 암호가 필요합니다.

  3. 제출을 선택합니다.

3단계: 서비스 계정 역할 할당

  1. 서비스 계정(사용자 관리 > 사용자 > 서비스 계정)을 엽니다.

  2. 역할 탭에서 편집을 선택하고 다음 역할을 추가합니다.

    • knowledge_admin - 모든 지식 기반 문서에 대한 전체 읽기 액세스. KB당 사용자 기준 제한을 우회합니다.

    • catalog_admin - 모든 서비스 카탈로그 항목에 대한 전체 읽기 액세스. 카탈로그당 제한을 우회합니다.

  3. 저장을 선택합니다.

참고

저장한 후에는 총 약 14개의 역할이 표시됩니다. ServiceNow는 _admin 상위 역할에서 포함된 역할을 자동으로 상속합니다. 2단계(knowledge_admin 및 )에 나열된 두 역할만 수동으로 할당합니다catalog_admin. admin, itil또는 snc_read_only 역할을 할당하지 마십시오.

4단계: OAuth 애플리케이션 등록

  1. 시스템 OAuth > 애플리케이션 레지스트리로 이동합니다.

  2. 새로 만들기 > 외부 클라이언트에 대한 OAuth API 엔드포인트 생성을 선택합니다.

  3. 양식을 작성합니다.

    • 이름 - 설명이 포함된 이름입니다(예: Amazon-Quick-KB-Client).

    • 리디렉션 URL - 비워 둡니다. 클라이언트 자격 증명 흐름에는 필요하지 않습니다.

  4. 제출을 선택합니다.

  5. 클라이언트 ID와 클라이언트 보안 암호를 즉시 복사합니다. 클라이언트 보안 암호는 한 번만 표시됩니다.

중요

인터셉터 페이지를 사용하여 애플리케이션을 생성해야 합니다. oauth_entity 테이블에 직접 삽입하여 레코드를 생성하지 마십시오.

5단계: OAuth 애플리케이션 구성

  1. Application Registry 목록에서 애플리케이션 레코드를 다시 엽니다.

  2. OAuth 애플리케이션 사용자 필드가 표시되지 않으면 구성 > 양식 빌더를 사용하여 추가합니다.

  3. 다음 필드를 설정합니다.

    • OAuth 애플리케이션 사용자 - 서비스 계정(예: svc.amazon.quick.kb).

    • 범위 제한 - Broadly scoped.

    • 클라이언트 유형 - integration_as_a_service.

  4. 업데이트를 선택합니다.

6단계: API 액세스 정책 구성

API 액세스 정책이 없으면 토큰이 인증되지만 테이블 API는 HTTP 401을 반환합니다. 아래 두 하위 단계를 모두 완료합니다.

인바운드 인증 프로필 생성
  1. 시스템 웹 서비스 > API 액세스 정책 > 인바운드 인증 프로필로 이동합니다.

  2. 새로 만들기를 선택하고 다음을 설정합니다.

    • 이름 - 예: Amazon-Quick-KB-Client-Profile.

    • 유형 – OAuth.

    • OAuth 엔터티 - OAuth 애플리케이션을 선택합니다.

  3. 제출을 선택합니다.

  4. 프로필을 다시 엽니다. 인증 정책 관련 목록에서 편집을 선택하고 액세스 허용 정책을 추가합니다. 저장을 선택합니다.

REST API 액세스 정책 생성
  1. 시스템 웹 서비스 > API 액세스 정책 > REST API 액세스 정책으로 이동합니다.

  2. 새로 만들기를 선택하고 다음을 설정합니다.

    • 이름 - 예: Table API Oauth access policy.

    • REST API – Table API.

    • REST API 경로 - now/table.

    • 모든 메서드에 적용 - 확인됨.

    • 모든 리소스에 적용 - 확인됨.

    • 모든 테이블에 적용 - 확인됨.

    • 모든 버전에 적용 - 확인됨.

  3. 제출을 선택합니다.

  4. 정책을 다시 엽니다. 인바운드 인증 프로필 관련 목록에서 편집을 선택하고 인바운드 인증 프로필을 추가합니다. 저장을 선택합니다.

7단계: OAuth 흐름 확인

데이터 소스를 구성하기 전에 OAuth 흐름이 end-to-end로 작동하는지 확인합니다.

토큰 요청:

curl -s -X POST "https://INSTANCE.service-now.com/oauth_token.do" \ -d "grant_type=client_credentials" \ -d "client_id=CLIENT_ID" \ -d "client_secret=CLIENT_SECRET"

테이블 API 액세스 확인:

curl -s "https://INSTANCE.service-now.com/api/now/table/kb_knowledge?sysparm_limit=1" \ -H "Authorization: Bearer ACCESS_TOKEN"

다음 표에서는 각 확인 결과와 수행할 작업을 설명합니다.

확인 결과
결과 의미 작업
데이터가 포함된 HTTP 200 올바른 작업 Secrets Manager 보안 암호 생성을 진행합니다.
빈 배열이 있는 HTTP 200 누락된 knowledge_admin 역할 서비스 계정에 knowledge_admin 역할을 할당합니다.
HTTP 401 API 액세스 정책이 구성되지 않음 인바운드 인증 프로필과 REST API 액세스 정책 구성을 모두 확인합니다.

8단계: Secrets Manager 보안 암호 생성

다음 키-값 페어를 사용하여 지식 기반 AWS 리전 과 동일한의 AWS Secrets Manager 보안 암호에 자격 증명을 저장합니다.

{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "instanceUrl": "https://YOUR_INSTANCE.service-now.com" }
보안 암호 필드
필드 설명
clientId 4단계의 앱 클라이언트 ID입니다.
clientSecret 4단계의 생성 시 공개된 앱 클라이언트 보안 암호입니다.
instanceUrl 전체 ServiceNow 인스턴스 URL( 포함https://, 후행 슬래시 없음).
중요

에는 후행 슬래시가 없어야 instanceUrl 합니다.

AWS Command Line Interface다음을 사용하여 보안 암호를 생성합니다.

aws secretsmanager create-secret \ --name bedrock-servicenow-creds \ --secret-string file://secret.json

응답의 보안 암호 ARN을 기록합니다. 이를 데이터 소스 로 사용합니다secretArn.

다음 단계

보안 암호를 저장한 후 데이터 소스를 생성합니다. ServiceNow 데이터 소스 연결을(를) 참조하세요.