

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configurar la autenticación de credenciales de cliente de OAuth 2.0 para ServiceNow
<a name="kb-managed-servicenow-oauth2-setup"></a>

Utilice la API de ServiceNow tabla con las credenciales de cliente de OAuth 2.0 (2LO) para la autenticación. Complete todos los pasos siguientes en su ServiceNow instancia antes de configurar la fuente de datos en Amazon Bedrock.

## Paso 1: Habilite el tipo de concesión de credenciales de cliente
<a name="kb-managed-servicenow-oauth2-step1"></a>

1. En ServiceNow, navegue hasta `sys_properties.list` usar el navegador de filtros.

1. Cree una nueva propiedad del sistema con los valores siguientes:
   + **Nombre**: `glide.oauth.inbound.client.credential.grant_type.enabled`
   + **Tipo**: `true | false`
   + **Valor**: `true`

## Paso 2: Cree una cuenta de servicio dedicada
<a name="kb-managed-servicenow-oauth2-step2"></a>

1. Vaya a Administración ** de usuarios ** > ** Usuarios**.

1. Seleccione ** Nuevo ** y complete el formulario:
   + **ID de usuario**: un nombre descriptivo (por ejemplo,`svc.amazon.quick.kb`).
   + **Solo acceso al servicio web**: activado. Esto impide el inicio de sesión interactivo.
   + **Contraseña**: establezca una contraseña segura. El conector usa OAuth, pero se requiere una contraseña para crear la cuenta.

1. Seleccione **Enviar**.

## Paso 3: Asignar funciones a la cuenta de servicio
<a name="kb-managed-servicenow-oauth2-step3"></a>

1. Abra la cuenta de servicio (Administración ** de usuarios ** > ** Usuarios ** > su cuenta de servicio).

1. En la ** pestaña ** Funciones, elija ** Editar ** y añada las siguientes funciones:
   + `knowledge_admin`— Acceso de lectura completo a todos los artículos de la base de conocimientos. Omite las restricciones de criterios de usuario por KB.
   + `catalog_admin`— Acceso de lectura completo a todos los elementos del catálogo de servicios. Evita las restricciones por catálogo.

1. Seleccione **Save**.

**nota**  
Después de guardar, verá aproximadamente 14 roles en total. ServiceNowhereda automáticamente los roles contenidos de los roles `_admin` principales. Solo se asignan manualmente las dos funciones enumeradas en el paso 2 (`knowledge_admin`y`catalog_admin`). No asigne los `admin` `snc_read_only` roles ni los roles. `itil`

## Paso 4: Registrar la aplicación OAuth
<a name="kb-managed-servicenow-oauth2-step4"></a>

1. Diríjase a ** Sistema OAuth ** > Registro de aplicaciones. ** **

1. Seleccione ** Nuevo ** > ** Crear un punto final de la API de OAuth para clientes externos. **

1. Complete el formulario:
   + **Nombre**: un nombre descriptivo (por ejemplo,`Amazon-Quick-KB-Client`).
   + **URL de redireccionamiento**: déjelo en blanco. No es necesario para el flujo de credenciales del cliente.

1. Seleccione **Enviar**.

1. Copie inmediatamente el ** ID ** y el secreto ** del cliente**. El secreto del cliente solo se muestra una vez.

**importante**  
Debe usar la página del interceptor para crear la aplicación. No cree el registro insertándolo directamente en la `oauth_entity` tabla.

## Paso 5: Configurar la aplicación OAuth
<a name="kb-managed-servicenow-oauth2-step5"></a>

1. Re-open el registro de la aplicación de la lista de registro de aplicaciones.

1. Si el ** campo Usuario de ** la aplicación OAuth no está visible, agréguelo mediante ** Configurar ** > ** Form Builder. **

1. Configura los siguientes campos:
   + **Usuario de la aplicación OAuth**: su cuenta de servicio (por ejemplo,`svc.amazon.quick.kb`).
   + **Restricción de alcance —**. `Broadly scoped`
   + **Tipo de cliente ** —`integration_as_a_service`.

1. Elija **Actualizar**.

## Paso 6: Configurar las políticas de acceso a la API
<a name="kb-managed-servicenow-oauth2-step6"></a>

Sin políticas de acceso a la API, los tokens se autentican, pero la API de tabla devuelve el protocolo HTTP 401. Complete los dos subpasos que aparecen a continuación.

**Cree el perfil de autenticación entrante**

1. Vaya a Servicios web ** del sistema ** > Políticas de acceso a la ** API ** > Perfil de autenticación ** entrante. **

1. Seleccione ** Nuevo ** y configure:
   + **Nombre**: por ejemplo,`Amazon-Quick-KB-Client-Profile`.
   + **Type** – `OAuth`.
   + **Entidad de OAuth**: selecciona tu aplicación de OAuth.

1. Seleccione **Enviar**.

1. Re-open el perfil. En la lista ** relacionada de políticas de ** autenticación, elija ** Editar ** y agregue la política de ** permiso de acceso**. Seleccione **Save**.

**Cree la política de acceso a la API REST**

1. Vaya a Servicios web ** del sistema ** > Políticas de acceso a la ** API ** > Políticas de acceso a la API ** REST**.

1. Seleccione ** Nuevo ** y defina:
   + **Nombre**: por ejemplo,`Table API Oauth access policy`.
   + **API REST ** —`Table API`.
   + **Ruta de la API REST ** —`now/table`.
   + **Aplicar a todos los métodos**: marcado.
   + **Aplicar a todos los recursos**: marcada.
   + **Aplicar a todas las tablas**: marcada.
   + **Aplicar a todas las versiones**: marcada.

1. Seleccione **Enviar**.

1. Re-open la política. En la lista ** relacionada de perfiles de autenticación ** entrante, elija ** Editar ** y añada su perfil de autenticación entrante. Seleccione **Save**.

## Paso 7: Verifique el flujo de OAuth
<a name="kb-managed-servicenow-oauth2-step7"></a>

Antes de configurar la fuente de datos, verifique que el flujo de OAuth funcione de principio a fin.

**Solicita un token: **

```
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}}"
```

**Verifique el acceso a la API de Table: **

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

En la siguiente tabla se describen los resultados de cada verificación y las medidas que se deben tomar.


**Resultados de verificación**  

| Resultado | Significado | Action | 
| --- | --- | --- | 
| HTTP 200 con datos | Funciona correctamente | Continúe con la creación del secreto del Gestor de Secretos. | 
| HTTP 200 con una matriz vacía | Falta el knowledge\_admin rol | Asigne el knowledge\_admin rol a la cuenta de servicio. | 
| HTTP 401 | La política de acceso a la API no está configurada | Verifique tanto el perfil de autenticación entrante como la configuración de la política de acceso a la API REST. | 

## Paso 8: Cree el secreto de Secrets Manager
<a name="kb-managed-servicenow-oauth2-step8"></a>

Guarde las credenciales de forma AWS Secrets Manager secreta en la Región de AWS misma ubicación que su base de conocimientos con los siguientes pares clave-valor:

```
{
    "clientId": "{{your-client-id}}",
    "clientSecret": "{{your-client-secret}}",
    "instanceUrl": "https://{{YOUR_INSTANCE}}.service-now.com"
}
```


**Campos secretos**  

| Campo | Description (Descripción) | 
| --- | --- | 
| clientId | El ID de cliente de la aplicación del paso 4. | 
| clientSecret | El secreto del cliente de la aplicación se reveló en el momento de la creación, en el paso 4. | 
| instanceUrl | URL completa de la ServiceNow instancia (incluidahttps://, sin barra al final). | 

**importante**  
No `instanceUrl` debe tener una barra al final.

Crea el secreto con: AWS Command Line Interface

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

Registra el ARN secreto de la respuesta. Lo usa como fuente `secretArn` de datos.

## Siguientes pasos
<a name="kb-managed-servicenow-oauth2-next"></a>

Después de almacenar el secreto, cree la fuente de datos. Consulte [Conectar una fuente ServiceNow de datos](kb-managed-ds-servicenow-connect.md).