Aller au contenu principal

Configurer ServiceNow pour l'ingestion Databricks

Découvrez comment configurer votre instance ServiceNow pour l'ingestion Databricks.

Choisissez une méthode d'authentication

Les méthodes d'authentification suivantes sont prises en charge :

  • U2M OAuth (recommandé)
  • Informations d'identification du mot de passe du propriétaire de la ressource OAuth (ROPC)

Databricks recommande U2M OAuth car c'est l'approche la plus sécurisée. Cependant, votre connexion ServiceNow expirera lorsque votre jeton d'authentification expirera. Par default, cela se produit tous les 100 jours. Pour réduire la fréquence, vous pouvez modifier la période d'expiration dans ServiceNow ou utiliser ROPC.

Vous utiliserez les détails d’authentification que vous obtenez pour créer une connexion Databricks Unity Catalog à ServiceNow.

Accorder les autorisations utilisateur

Les options suivantes pour l'octroi d'autorisations utilisateur ServiceNow sont prises en charge :

Champ d'application d'OAuth

Description

Accès administrateur (recommandé)

Nécessite les rôles admin et snc_read_only.

Accès au moindre privilège

Utilise les ACL au niveau de la table.

Champ d'application d'OAuth

Description

Accès administrateur (recommandé)

Nécessite les rôles admin et snc_read_only.

Accès au moindre privilège

Utilise les ACL au niveau de la table.

Accès administrateur (recommandé)

Databricks recommande cette approche car elle permet une découverte efficace des schémas. Avec un accès administrateur, le connecteur récupère le schéma de table complet en un seul appel d'API par table, indépendamment de la hiérarchie d'héritage de la table. Ceci réduit l'utilisation de l'API et améliore les performances de Startup du pipeline.

Vous devez disposer des autorisations suivantes :

  • Pour capturer les suppressions, votre utilisateur ServiceNow doit avoir accès à sys_audit_delete table, et la table en cours d'ingestion doit suivre les suppressions (l'attribut de table ne peut pas être défini sur no_audit_delete=true dans ServiceNow).
  • Votre utilisateur ServiceNow doit avoir le rôle admin.
  • (Facultatif) Pour limiter l'utilisateur administrateur à un accès en lecture seule, vous pouvez lui attribuer le rôle snc_read_only.

Accès à moindre privilège

Choisissez cette approche uniquement si la restriction des autorisations est plus importante que la minimisation de l'utilisation de l'API.

Sans accès administrateur, le connecteur doit effectuer plusieurs appels d'API pour découvrir le schéma. Étant donné que ServiceNow utilise l'héritage de table, le connecteur doit parcourir toute la hiérarchie de table (de la table cible, en passant par chaque table parente jusqu'à la racine), puis récupérer les définitions de champ pour chaque table de la chaîne. Le nombre exact d'appels API dépend de la profondeur de la hiérarchie d'héritage de la table.

La découverte de schémas avec un accès à moindre privilège a lieu à chaque exécution de pipeline, et pas seulement lors de la configuration initiale.

Cette approche nécessite les autorisations ACL suivantes :

  • sys_dictionary
  • sys_dictionary.*
  • sys_db_object
  • sys_db_object.*
  • sys_audit_delete
  • sys_audit_delete.*
  • sys_glide_object
  • sys_glide_object.*

Créer une application OAuth

Cette étape recueille les détails d'authentification ServiceNow pour l'ingestion Databricks.

important

ServiceNow exige l'authentification multifacteur (MFA) par default pour U2M OAuth. Lorsque vous vous connectez, indiquez votre deuxième méthode d'authentification dans le cadre du flux MFA standard. Cette exigence ne s'applique pas à l'authentification ROPC.

Un administrateur ServiceNow peut exempter les utilisateurs s’authentifiant de l’exigence MFA. Pour les instructions, consultez Exemption d’utilisateur dans la documentation ServiceNow.

  1. Dans le menu All , recherchez System OAuth , puis cliquez sur Application Registry .

    Registre d'applications OAuth ServiceNow

  2. Cliquez sur Nouveau > Créer un endpoint d'API OAuth pour les clients externes .

    ServiceNow Créer l'Endpoint API OAuth pour les clients externes

  3. Saisir un nom pour l'application.

  4. Pour **Portée d'authentification**,useraccount saisissez.

  5. (U2M OAuth uniquement) Pour URL de redirection , saisissez https://<databricks-workspace-url>/login/oauth/servicenow.html. Remplacez <databricks-workspace-url> par l'URL complète de votre Workspace Databricks (par exemple, https://cust-success.cloud.databricks.com).

remarque

Ignorez cette étape si vous utilisez ROPC.

  1. Cliquez sur **Envoyer**.

    Détails de l&#39;application OAuth ServiceNow

  2. Copiez l' ID client et le Secret client .

Obtenir l'ID de l'instance

L'ID d'instance est la première partie de l'URL de connexion du compte ServiceNow :

https://<instanceid>.service-now.com

Par exemple, si la page d'accueil de votre instance ServiceNow est https://abc.service-now.com, l'ID de l'instance est abc.

Obtenez un nom d'utilisateur et un mot de passe

remarque

Cette étape est requise uniquement pour le flux ROPC. Databricks recommande d'utiliser plutôt U2M OAuth.

Obtenez le nom d'utilisateur et le mot de passe d'un utilisateur ServiceNow actif.

Activer l'indexation sur la colonne du curseur

Pour améliorer les performances d'ingestion, Databricks recommande de travailler avec votre administrateur ServiceNow pour activer l'indexation sur le champ du curseur dans ServiceNow. La colonne du curseur est sélectionnée dans la liste suivante, par ordre de disponibilité et de préférence : sys_updated_on (premier choix), sys_created_on (deuxième choix), sys_archived (troisième choix). C'est une approche standard pour améliorer les performances lors de l'ingestion à l'aide des ServiceNow APIs. La définition de l'index permet à Databricks d'éviter de scanner entièrement la colonne de curseur, ce qui peut entraîner un goulot d'étranglement pour les mises à jour importantes. Pour les instructions, consultez Créer un index de table dans la documentation ServiceNow.

Étape suivante

Ingérer les données de ServiceNow