Procedura dettagliata per la creazione del connettore Generic SQL
Questo argomento è una guida dettagliata. Verrà creato un semplice database delle risorse umane di esempio che sarà usato per importare alcuni utenti con la relativa appartenenza ai gruppi.
Nota
Microsoft Entra ID offre ora una soluzione semplificata basata su agente per il provisioning degli utenti in un database SQL, senza la necessità di una distribuzione di sincronizzazione MIM. È consigliabile usarlo per il provisioning utenti in uscita. Altre informazioni
Preparare il database di esempio
In un server che esegue SQL Server eseguire lo script SQL disponibile nell'Appendice A. Questo script crea un database di esempio con il nome GSQLDEMO. Il modello a oggetti per il database creato sarà simile a questa immagine:
Creare anche un utente da usare per connettersi al database. In questa procedura dettagliata l'utente si chiama FABRIKAM\SQLUser e si trova nel dominio.
Creare il file di connessione ODBC
Il connettore Generic SQL usa ODBC per connettersi al server remoto. È necessario innanzitutto creare un file con le informazioni di connessione ODBC.
- Avviare l'utilità di gestione di ODBC sul server:
- Selezionare la scheda DSN su file. Fare clic su Aggiungi.
- Il driver out-of-box funziona correttamente, quindi selezionarlo e fare clic su Avanti>.
- Assegnare un nome al file, ad esempio GenericSQL.
- Fare clic su Fine.
- È ora necessario configurare la connessione. Assegnare una descrizione appropriata all'origine dati e specificare il nome del server che esegue SQL Server.
- Selezionare la modalità di autenticazione con SQL. In questo caso si userà l'autenticazione di Windows.
- Specificare il nome del database di esempio, GSQLDEMO.
- In questa schermata mantenere tutte le selezioni predefinite. Fare clic su Fine.
- Per verificare che tutto funzioni come previsto, fare clic su Verifica origine dati.
- Assicurarsi che la verifica abbia esito positivo.
- Il file di configurazione ODBC dovrebbe essere ora visibile in DSN su file.
Il file necessario è ora disponibile e si può iniziare a creare il connettore.
Creare il connettore Generic SQL
- Nell'interfaccia utente di Synchronization Service Manager selezionare Connettori e Crea. Selezionare Generic SQL (Microsoft) e assegnargli un nome descrittivo.
- Trovare il file DSN creato nella sezione precedente e caricarlo nel server. Immettere le credenziali per connettersi al database.
- In questa procedura dettagliata si considera un caso semplificato in cui esistono due tipi di oggetti, User e Group.
- Il connettore dovrà trovare gli attributi esaminando la tabella. Poiché Users è una parola riservata in SQL, occorre specificarla fra parentesi quadre [ ].
- È ora necessario definire l'attributo di ancoraggio e l'attributo DN. Per Userssi usa la combinazione dei due attributi Username ed EmployeeID. Per Groupsi usa GroupName, non molto plausibile in un caso reale, ma adeguato per questa procedura dettagliata.
- Non tutti i tipi di attributo possono essere rilevati in un database SQL. In particolare, non può essere rilevato il tipo di attributo di riferimento. Per il tipo di oggetto Group è necessario cambiare OwnerID e MemberID a cui fare riferimento.
- Gli attributi selezionati come attributi di riferimento nel passaggio precedente richiedono il tipo di oggetto cui questi valori fanno riferimento. In questo caso si tratta del tipo di oggetto User.
- Nella pagina Global Parameters (Parametri globali) selezionare Watermark (Limite) come strategia differenziale. Digitare anche il formato di data/ora yyyy-MM-dd HH:mm:ss(aaaa-MM-gg HH:mm:ss).
- Nella pagina Configure Partitions and Hierarchies (Configura partizioni e gerarchie) selezionare entrambi i tipi di oggetto.
- In Select Object Types (Seleziona tipi di oggetto) e Select Attributes (Seleziona attributi) selezionare entrambi i tipi di oggetto e tutti gli attributi. Nella pagina Configure Anchors (Configura ancoraggi) fare clic su Finish (Fine).
Creare i profili di esecuzione
- Nell'interfaccia utente di Synchronization Service Manager selezionare Connectors (Connettori) e Configure Run Profiles (Configura profili di esecuzione). Fare clic su New Profile(Nuovo profilo). Si inizierà con Full Import(Importazione completa).
- Selezionare il tipo Full Import (Stage Only)(Importazione completa - solo staging).
- Selezionare la partizione OBJECT=User.
- Selezionare Table (Tabella) e digitare [USERS]. Scorrere fino alla sezione del tipo di oggetto multivalore e immettere i dati riportati di seguito. Selezionare Finish (Fine) per salvare il passaggio.
- Selezionare Nuovo passaggio. Questa volta selezionare OBJECT=Group. Nell'ultima pagina usare la configurazione illustrata nell'immagine. Fare clic su Fine.
- Facoltativo: se si vuole, è possibile configurare altri profili di esecuzione. In questa procedura dettagliata si usa solo l'importazione completa.
- Fare clic su OK per terminare la modifica dei profili di esecuzione.
Aggiungere alcuni dati di prova e testare l'importazione
Immettere alcuni dati di prova nel database di esempio. Quando si è pronti, selezionare Run (Esegui) e Full import (Importazione completa).
In questo esempio si ottiene un utente con due numeri di telefono e un gruppo con alcuni membri.
Appendice A
Script SQL per la creazione del database di esempio
---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