Connecteur SQL générique - Guide pas à pas

Cette rubrique est un guide pas à pas. Elle explique comment créer un simple exemple de base de données Ressources humaines et l’utiliser pour importer certains utilisateurs et leur appartenance à un groupe.

Notes

Microsoft Entra ID fournit désormais une solution légère basée sur un agent pour provisionner des utilisateurs dans une base de données SQL, sans avoir besoin d’un déploiement de synchronisation MIM. Nous vous recommandons de l’utiliser pour l’approvisionnement d’utilisateurs sortants. Plus d’informations

Préparer l’exemple de base de données

Sur un serveur exécutant SQL Server, exécutez le script SQL figurant à l’Annexe A. Ce script crée un exemple de base de données avec le nom GSQLDEMO. Le modèle objet pour la base de données créée a l’aspect suivant :
Modèle objet

Créez également l’utilisateur que vous souhaitez utiliser pour vous connecter à la base de données. Dans cette procédure pas à pas, l’utilisateur est appelé FABRIKAM\SQLUser et il est situé dans le domaine.

Créer le fichier de connexion ODBC

Le connecteur SQL générique utilise ODBC pour se connecter au serveur distant. Nous devons tout d’abord créer un fichier avec les informations de connexion ODBC.

  1. Démarrez l’utilitaire de gestion ODBC sur votre serveur :
    Capture d’écran montrant un champ de recherche avec O D B C entré.
  2. Sélectionnez l’onglet Fichier DSN. Cliquez sur Ajouter.
    Capture d’écran de l’utilitaire de gestion OD B C avec l’onglet File DS N sélectionné.
  3. Le pilote prête à l’emploi fonctionne correctement. Sélectionnez-le, puis cliquez sur Suivant>.
    Capture d’écran montrant les options de pilote pour la nouvelle source de données.
  4. Nommez le fichier, par exemple GenericSQL.
    Capture d’écran montrant un exemple de nouveau nom de fichier entré dans le champ et un bouton Suivant.
  5. Cliquez sur Terminer.
    Capture d’écran montrant les détails de la nouvelle source de données et un bouton Terminer.
  6. Il est temps de configurer la connexion. Décrivez la source de données et fournissez le nom du serveur exécutant SQL Server.
    Capture d’écran montrant l’Assistant Configuration avec un exemple de description et le nom du serveur, ainsi qu’un bouton Suivant.
  7. Sélectionnez le mode d’authentification avec SQL. Dans ce cas, nous utilisons l’authentification Windows.
    Capture d’écran montrant l’étape d’authentification avec l’option d’authentification Windows intégrée sélectionnée et un bouton Suivant.
  8. Indiquez le nom de l’exemple de base de données GSQLDEMO.
    Capture d’écran montrant le nom de la base de données entré dans le champ de base de données et un bouton Suivant.
  9. Conservez toutes les valeurs par défaut sur cet écran. Cliquez sur Terminer.
    Capture d’écran montrant les paramètres par défaut de la dernière étape de l’Assistant et un bouton Terminer.
  10. Pour vérifier que tout fonctionne comme prévu, cliquez sur Tester la source de données.
    Capture d’écran montrant les détails de configuration de la nouvelle source de données O D B C et un bouton Tester la source de données.
  11. Vérifiez que le test a réussi.
    Capture d’écran montrant les résultats du test et un bouton OK.
  12. Le fichier de configuration ODBC doit maintenant être visible dans le fichier DSN.
    Capture d’écran de l’utilitaire de gestion O D B C avec l’onglet Fichier DS N sélectionné et le nouveau fichier de configuration O D D B C répertorié.

Nous avons maintenant le fichier dont nous avons besoin et pouvons commencer à créer le connecteur.

Créer le connecteur SQL générique

  1. Dans l’interface utilisateur Synchronization Service Manager, sélectionnez Connecteurs et Créer. Sélectionnez SQL générique (Microsoft) et donnez-lui un nom descriptif.
    Capture d’écran montrant l’Assistant Création d’un connecteur avec le connecteur sélectionné et un bouton Suivant.
  2. Recherchez le fichier DSN que vous avez créé dans la section précédente et téléchargez-le sur le serveur. Entrez les informations de connexion à la base de données.
    Capture d’écran montrant le fichier DS N avec les informations d’identification entrées et un bouton Suivant.
  3. Pour simplifier cette procédure pas à pas, disons qu’il existe deux types d’objet : Utilisateur et Groupe. Capture d’écran montrant les deux types d’objets entrés dans le champ de liste de valeurs fixes et un bouton Suivant.
  4. Pour rechercher les attributs, nous voulons que le connecteur les détecte en examinant la table elle-même. Étant donné que Utilisateurs est un mot réservé dans SQL, nous devons l’indiquer entre crochets [ ].
    Capture d’écran montrant la valeur de détection d’attributs de la table et de la valeur de table des utilisateurs, ainsi qu’un bouton Suivant.
  5. Il est temps de définir l’attribut d’ancrage et l’attribut de nom de domaine. Pour Utilisateurs, nous utilisons la combinaison des deux attributs username et EmployeeID. Pour Groupe, nous utilisons GroupName (rappelons qu’il ne s’agit ici que d’un exemple). Capture d’écran montrant le nom d’utilisateur, l’ID d’employé et le nom du groupe, avec un bouton Suivant.
  6. Tous les types d’attribut ne peuvent pas être détectés dans une base de données SQL, le type d’attribut de référence en particulier. Pour le type d’objet de groupe, nous devons modifier OwnerID et MemberID en attributs de référence.
    Capture d’écran montrant les champs d’ID de propriétaire et d’ID de membre mis à jour, ainsi qu’un bouton Suivant.
  7. Les attributs que nous avons sélectionnés en tant qu’attributs de référence à l’étape précédente nécessitent le type d’objet auquel ces valeurs font référence. Dans notre cas, il s’agit du type d’objet User.
    Capture d’écran montrant le type d’objet sélectionné et un bouton Suivant.
  8. Dans la page Paramètres généraux, sélectionnez Filigrane comme stratégie delta. Entrez également le format de date/heure yyyy-MM-dd HH:mm:ss. Capture d’écran montrant les champs de la stratégie delta et le format de date et d’heure, ainsi qu’un bouton Suivant.
  9. Dans la page Configurer les partitions et hiérarchies , sélectionnez les deux types d’objet. Capture d’écran montrant les deux types d’objets sélectionnés et le bouton Suivant.
  10. Dans Sélectionner les types d’objet et Sélectionner les attributs, sélectionnez les types d’objet et tous les attributs. Sur la page Configurer les ancres, cliquez sur Terminer.

Créer les profils d’exécution

  1. Dans l’interface Synchronization Service Manager, cliquez sur Connecteurs, puis sur Configurer les profils d’exécution. Cliquez sur Nouveau profil. Nous commençons par Importation intégrale.
    Capture d’écran montrant l’Assistant Configurer le profil d’exécution avec importation complète entrée dans le champ Nom et un bouton Suivant.
  2. Sélectionnez le type Importation intégrale (intermédiaire uniquement).
    Capture d’écran montrant le type sélectionné et un bouton Suivant.
  3. Sélectionnez la partition OBJECT=User.
    Capture d’écran montrant la partition sélectionnée et un bouton Suivant.
  4. Sélectionnez Table et tapez [USERS]. Faites défiler jusqu’à la section de type d’objet à valeurs multiples et entrez les données tel qu’indiqué dans l’image suivante. Sélectionnez Terminer pour enregistrer l’étape.
    Capture d’écran montrant la méthode d’opération Table sélectionnée et les utilisateurs dans le champ de table.
    Capture d’écran montrant les valeurs de type d’objet à valeurs multiples entrées pour le nom et la condition de jointure.
  5. Sélectionnez Nouvelle étape. Cette fois, sélectionnez OBJECT=Group. Sur la dernière page, utilisez la configuration indiquée dans l’image suivante. Cliquez sur Terminer.
    Capture d’écran montrant la méthode d’opération Table sélectionnée et groupe dans le champ de table.
    Capture d’écran montrant les valeurs de type d’objet entrées pour le nom de la table et la condition de jointure.
  6. Facultatif : si vous le souhaitez, vous pouvez configurer des profils d’exécution supplémentaires. Pour cette procédure pas à pas, seule l’importation intégrale est utilisée.
  7. Cliquez sur OK pour terminer de modifier les profils d’exécution.

Ajouter quelques données de test et tester l’importation

Remplissez quelques données de test dans votre exemple de base de données. Lorsque vous êtes prêt, sélectionnez Exécuter et Importation intégrale.

Voici un utilisateur avec deux numéros de téléphone et un groupe avec quelques membres.
Capture d’écran des données montrant un utilisateur avec deux numéros de téléphone.
Capture d’écran des données montrant un groupe avec certains membres.

Annexe A

Script SQL pour créer l’exemple de base de données

---Creating the Database---------
Create Database GSQLDEMO
Go
-------Using the Database-----------
Use [GSQLDEMO]
Go
-------------------------------------
USE [GSQLDEMO]
GO
/****** Object:  Table [dbo].[GroupMembers]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GroupMembers](
    [MemberID] [int] NOT NULL,
    [Group_ID] [int] NOT NULL
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[GROUPS]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GROUPS](
    [GroupID] [int] NOT NULL,
    [GROUPNAME] [nvarchar](200) NOT NULL,
    [DESCRIPTION] [nvarchar](200) NULL,
    [WATERMARK] [datetime] NULL,
    [OwnerID] [int] NULL,
PRIMARY KEY CLUSTERED
(
    [GroupID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[USERPHONE]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[USERPHONE](
    [USER_ID] [int] NULL,
    [Phone] [varchar](20) NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[USERS]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[USERS](
    [USERID] [int] NOT NULL,
    [USERNAME] [nvarchar](200) NOT NULL,
    [FirstName] [nvarchar](100) NULL,
    [LastName] [nvarchar](100) NULL,
    [DisplayName] [nvarchar](100) NULL,
    [ACCOUNTDISABLED] [bit] NULL,
    [EMPLOYEEID] [int] NOT NULL,
    [WATERMARK] [datetime] NULL,
PRIMARY KEY CLUSTERED
(
    [USERID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[GroupMembers]  WITH CHECK ADD  CONSTRAINT [FK_GroupMembers_GROUPS] FOREIGN KEY([Group_ID])
REFERENCES [dbo].[GROUPS] ([GroupID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_GROUPS]
GO
ALTER TABLE [dbo].[GroupMembers]  WITH CHECK ADD  CONSTRAINT [FK_GroupMembers_USERS] FOREIGN KEY([MemberID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_USERS]
GO
ALTER TABLE [dbo].[GROUPS]  WITH CHECK ADD  CONSTRAINT [FK_GROUPS_USERS] FOREIGN KEY([OwnerID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GROUPS] CHECK CONSTRAINT [FK_GROUPS_USERS]
GO
ALTER TABLE [dbo].[USERPHONE]  WITH CHECK ADD  CONSTRAINT [FK_USERPHONE_USER] FOREIGN KEY([USER_ID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[USERPHONE] CHECK CONSTRAINT [FK_USERPHONE_USER]
GO