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 :

  • OAuth utilisateur à machine (U2M) (recommandé)
  • OAuth machine à machine (M2M) (identifiants client)
  • Informations d'identification du mot de passe du propriétaire de la ressource OAuth (ROPC)

Databricks recommande d'utiliser OAuth U2M ou M2M plutôt que ROPC, car aucune de ces méthodes ne nécessite de stocker le mot de passe d'un utilisateur ServiceNow dans la connexion. Avec OAuth U2M, votre connexion ServiceNow expire lorsque votre jeton d'authentification expire. 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 OAuth M2M ou ROPC.

Utilisez l’OAuth M2M pour des pipelines de production entièrement automatisés qui s’exécutent sans interaction de l’utilisateur. Avec l’OAuth M2M, Databricks s’authentifie avec l’ID client et le secret client de l’application OAuth et demande un nouveau jeton d’accès si nécessaire ; il n’y a donc pas de jeton de refresh à faire expirer ni de connexion interactive. Les demandes s’exécutent avec les autorisations de l’ utilisateur de l’application OAuth que vous attribuez à l’application OAuth. L’OAuth M2M nécessite la version Washington DC de ServiceNow ou une version ultérieure.

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.

Pour l'OAuth M2M, accordez ces autorisations à l'utilisateur que vous attribuez comme Utilisateur d'application OAuth dans Créer une application OAuth.

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.*

Activer l'octroi des informations d'identification du client (M2M uniquement)​

remarque

Ignorez cette étape si vous utilisez U2M OAuth ou ROPC.

ServiceNow désactive default l’octroi des identifiants du client OAuth. Un administrateur ServiceNow doit l’activer avant que vous puissiez utiliser l’OAuth M2M.

  1. Dans le menu Tous , saisissez sys_properties.list et appuyez sur Entrée .

    Menu Tous de ServiceNow filtré par sys_properties.list

  2. Rechercher la propriété glide.oauth.inbound.client.credential.grant_type.enabled.

    • Si la propriété existe, ouvrez-la et définissez Value sur true.
    • Si la propriété n'existe pas, cliquez sur Nouveau et saisissez les informations suivantes :
      • Nom : glide.oauth.inbound.client.credential.grant_type.enabled
      • Type : true | false
      • Valeur : true

    Propriété système ServiceNow pour l'octroi des identifiants client définie sur true

  3. Cliquez sur Mettre à jour (ou Envoyer pour une nouvelle propriété).

Créer une application OAuth​

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

important

ServiceNow exige l'authentification multifactorielle (MFA) par default pour U2M OAuth. Lorsque vous vous connectez, fournissez votre seconde méthode d’authentification dans le cadre du flux MFA standard. Cette exigence ne s’applique pas à l’authentification M2M OAuth ou 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. Dans la liste Périmètres d’authentification , ajoutez useraccount.

  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://8757561887652360.0.gcp.databricks.com).

  6. (OAuth M2M uniquement) Configurez l'application pour l'octroi des identifiants client :

    1. Si le formulaire comporte un champ Type d'autorisation default , sélectionnez Identifiants client .

    2. Pour Utilisateur d'application OAuth , sélectionnez l'utilisateur sous lequel le connecteur s'exécute. Cet utilisateur a besoin des autorisations dans Accorder des autorisations utilisateur. Databricks recommande un utilisateur de compte de service dédié.

      Si le champ Utilisateur de l’application OAuth ne figure pas dans le formulaire, cliquez avec le bouton droit sur l’en-tête du formulaire, puis cliquez sur Configurer > Layout du formulaire . Déplacez Utilisateur de l’application OAuth vers la liste Sélectionnés , puis cliquez sur Enregistrer .

      Application OAuth ServiceNow avec champ d’application OAuth Application User et useraccount

  7. Cliquez sur **Envoyer**.

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

  8. 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