

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configurer l'authentification des informations d'identification du client OAuth 2.0 pour ServiceNow
<a name="kb-managed-servicenow-oauth2-setup"></a>

Utilisez l'API ServiceNow Table avec les informations d'identification du client OAuth 2.0 (2LO) pour l'authentification. Effectuez toutes les étapes suivantes dans votre ServiceNow instance avant de configurer la source de données dans Amazon Bedrock.

## Étape 1 : activer le type d'autorisation des informations d'identification du client
<a name="kb-managed-servicenow-oauth2-step1"></a>

1. Dans ServiceNow, accédez à `sys_properties.list` l'utilisation du navigateur de filtres.

1. Créez une nouvelle propriété système avec les valeurs suivantes :
   + **Nom** – `glide.oauth.inbound.client.credential.grant_type.enabled`
   + **Type** – `true | false`
   + **Valeur** : `true`

## Étape 2 : créer un compte de service dédié
<a name="kb-managed-servicenow-oauth2-step2"></a>

1. Accédez à Administration des ** ** utilisateurs ** > Utilisateurs**.

1. Choisissez ** Nouveau ** et complétez le formulaire :
   + **ID utilisateur ** : nom descriptif (par exemple,`svc.amazon.quick.kb`).
   + **Accès au service Web uniquement ** — Coché. Cela empêche la connexion interactive.
   + **Mot de passe ** : définissez un mot de passe sécurisé. Le connecteur utilise OAuth, mais un mot de passe est requis pour la création du compte.

1. Sélectionnez **Soumettre**.

## Étape 3 : Attribuer des rôles aux comptes de service
<a name="kb-managed-servicenow-oauth2-step3"></a>

1. Ouvrez le compte de service (**Administration des ** utilisateurs ** > Utilisateurs ** > votre compte de service).

1. Dans l'**onglet ** Rôles, choisissez ** Modifier ** et ajoutez les rôles suivants :
   + `knowledge_admin`— Accès complet en lecture à tous les articles de la base de connaissances. Contourne les restrictions relatives aux critères utilisateur par Ko.
   + `catalog_admin`— Accès complet en lecture à tous les articles du catalogue de services. Contourne les restrictions par catalogue.

1. Choisissez **Enregistrer**.

**Note**  
Après avoir enregistré, vous pouvez voir environ 14 rôles au total. ServiceNowhérite automatiquement des rôles contenus des rôles `_admin` parents. Vous n'attribuez que manuellement les deux rôles répertoriés à l'étape 2 (`knowledge_admin`et`catalog_admin`). N'attribuez pas les `snc_read_only` rôles `admin``itil`, ou.

## Étape 4 : enregistrer l'application OAuth
<a name="kb-managed-servicenow-oauth2-step4"></a>

1. Accédez à ** System OAuth ** > Registre des ** applications. **

1. Choisissez ** Nouveau ** > ** Créer un point de terminaison d'API OAuth pour les clients externes. **

1. Complétez le formulaire :
   + **Nom ** : nom descriptif (par exemple,`Amazon-Quick-KB-Client`).
   + **URL de redirection ** — Laissez ce champ vide. Non requis pour le flux des informations d'identification des clients.

1. Sélectionnez **Soumettre**.

1. Copiez immédiatement l'ID ** client ** et ** le secret client**. Le secret client n'est affiché qu'une seule fois.

**Important**  
Vous devez utiliser la page de l'intercepteur pour créer l'application. Ne créez pas l'enregistrement en l'insérant directement dans le `oauth_entity` tableau.

## Étape 5 : Configuration de l'application OAuth
<a name="kb-managed-servicenow-oauth2-step5"></a>

1. Re-open l'enregistrement de la demande figurant dans la liste du registre des applications.

1. Si le ** champ Utilisateur de l'application ** OAuth n'est pas visible, ajoutez-le à l'aide de ** Configurer ** > Générateur de ** formulaires. **

1. Définissez les champs suivants :
   + **Utilisateur de l'application OAuth ** : votre compte de service (par exemple,`svc.amazon.quick.kb`).
   + **Restriction de portée ** —`Broadly scoped`.
   + **Type de client ** —`integration_as_a_service`.

1. Choisissez **Mettre à jour**.

## Étape 6 : Configuration des politiques d'accès aux API
<a name="kb-managed-servicenow-oauth2-step6"></a>

Sans politiques d'accès à l'API, les jetons s'authentifient mais l'API Table renvoie HTTP 401. Effectuez les deux sous-étapes ci-dessous.

**Création du profil d'authentification entrant**

1. Accédez à ** System Web Services ** > Politiques d'accès aux ** API ** > Profil ** d'authentification ** entrant.

1. Choisissez ** Nouveau ** et définissez :
   + **Nom ** — Par exemple,`Amazon-Quick-KB-Client-Profile`.
   + **Tapez ** —`OAuth`.
   + **Entité OAuth ** : sélectionnez votre application OAuth.

1. Sélectionnez **Soumettre**.

1. Re-open le profil. Dans la liste ** associée Politiques ** d'authentification, choisissez ** Modifier ** et ajoutez ** Autoriser la politique d'accès**. Choisissez **Enregistrer**.

**Création de la politique d'accès à l'API REST**

1. Accédez à ** System Web Services ** > Politiques d'accès aux ** API ** > Politiques d'accès à l'**API REST**.

1. Choisissez ** Nouveau ** et définissez :
   + **Nom ** — Par exemple,`Table API Oauth access policy`.
   + **API REST ** —`Table API`.
   + **Chemin de l'API REST ** —`now/table`.
   + **Appliquer à toutes les méthodes ** — Coché.
   + **Appliquer à toutes les ressources ** — Coché.
   + **Appliquer à tous les tableaux ** — Coché.
   + **Appliquer à toutes les versions ** — Coché.

1. Sélectionnez **Soumettre**.

1. Re-open la politique. Dans la liste ** associée aux profils d'authentification ** entrants, choisissez ** Modifier ** et ajoutez votre profil d'authentification entrant. Choisissez **Enregistrer**.

## Étape 7 : Vérifiez le flux OAuth
<a name="kb-managed-servicenow-oauth2-step7"></a>

Avant de configurer la source de données, vérifiez que le flux OAuth fonctionne de bout en bout.

**Demandez un jeton : **

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

**Vérifiez l'accès à l'API Table : **

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

Le tableau suivant décrit chaque résultat de vérification et les mesures à prendre.


**Résultats de vérification**  

| Résultat | Signification | Action | 
| --- | --- | --- | 
| HTTP 200 avec données | Fonctionnant correctement | Procédez à la création du secret Secrets Manager. | 
| HTTP 200 avec tableau vide | knowledge\_adminRôle manquant | Attribuez le knowledge\_admin rôle au compte de service. | 
| HTTP 401 | Politique d'accès à l'API non configurée | Vérifiez à la fois le profil d'authentification entrant et la configuration de la politique d'accès à l'API REST. | 

## Étape 8 : Création du secret du gestionnaire de secrets
<a name="kb-managed-servicenow-oauth2-step8"></a>

Stockez les informations d'identification de manière AWS Secrets Manager secrète, Région AWS comme dans votre base de connaissances, à l'aide des paires clé-valeur suivantes :

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


**Champs secrets**  

| Champ | Description | 
| --- | --- | 
| clientId | L'ID du client de l'application de l'étape 4. | 
| clientSecret | Le secret du client de l'application révélé lors de la création à l'étape 4. | 
| instanceUrl | URL complète de l' ServiceNow instance (inclurehttps://, sans barre oblique de fin). | 

**Important**  
`instanceUrl`Il ne doit pas y avoir de barre oblique à la fin.

Créez le secret à l'aide de AWS Command Line Interface :

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

Enregistrez l'ARN secret de la réponse. Vous l'utilisez comme source de données`secretArn`.

## Étapes suivantes
<a name="kb-managed-servicenow-oauth2-next"></a>

Après avoir enregistré le secret, créez la source de données. Consultez [Connecter une source ServiceNow de données](kb-managed-ds-servicenow-connect.md).