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 :
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.
- Démarrez l’utilitaire de gestion ODBC sur votre serveur :
- Sélectionnez l’onglet Fichier DSN. Cliquez sur Ajouter.
- Le pilote prête à l’emploi fonctionne correctement. Sélectionnez-le, puis cliquez sur Suivant>.
- Nommez le fichier, par exemple GenericSQL.
- Cliquez sur Terminer.
- Il est temps de configurer la connexion. Décrivez la source de données et fournissez le nom du serveur exécutant SQL Server.
- Sélectionnez le mode d’authentification avec SQL. Dans ce cas, nous utilisons l’authentification Windows.
- Indiquez le nom de l’exemple de base de données GSQLDEMO.
- Conservez toutes les valeurs par défaut sur cet écran. Cliquez sur Terminer.
- Pour vérifier que tout fonctionne comme prévu, cliquez sur Tester la source de données.
- Vérifiez que le test a réussi.
- Le fichier de configuration ODBC doit maintenant être visible dans le fichier DSN.
Nous avons maintenant le fichier dont nous avons besoin et pouvons commencer à créer le connecteur.
Créer le connecteur SQL générique
- 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.
- 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.
- Pour simplifier cette procédure pas à pas, disons qu’il existe deux types d’objet : Utilisateur et Groupe.
- 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 [ ].
- 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).
- 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.
- 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.
- 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.
- Dans la page Configurer les partitions et hiérarchies , sélectionnez les deux types d’objet.
- 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
- 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.
- Sélectionnez le type Importation intégrale (intermédiaire uniquement).
- Sélectionnez la partition OBJECT=User.
- 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.
- 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.
- 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.
- 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.
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