Aprovisionamiento de entrada controlado por API con script de PowerShell
En este tutorial se describe cómo usar un script de PowerShell para implementar o aprovisionamiento de entrada controlado por API de Microsoft Entra ID. Siguiendo los pasos de este tutorial, puede convertir un archivo CSV que contenga datos de RRHH en una carga útil de solicitud masiva y enviarla al punto final de la API /bulkUpload de aprovisionamiento de Microsoft Entra. En el artículo también se proporcionan instrucciones sobre cómo se puede usar el mismo patrón de integración con cualquier sistema de registro.
Escenario de integración
Requisitos empresariales
El sistema de registro genera exportaciones periódicas de archivos CSV que contienen datos de trabajo. Quiere implementar una integración que lea datos del archivo CSV y aprovisione automáticamente cuentas de usuario en el directorio de destino (Active Directory local para usuarios híbridos y Microsoft Entra ID para usuarios solo en la nube).
Requisito de implementación
Desde una perspectiva de implementación:
- Quiere usar un script de PowerShell desatendido para leer datos de las exportaciones de archivos CSV y enviarlos al punto de conexión de la API de aprovisionamiento de entrada.
- En el script de PowerShell, no quiere implementar la lógica compleja de comparar los datos de identidad entre el sistema de registro y el directorio de destino.
- Desea utilizar el servicio de aprovisionamiento de Microsoft Entra para aplicar sus reglas de aprovisionamiento gestionadas por TI para crear/actualizar/habilitar/deshabilitar automáticamente cuentas en el directorio de destino (Active Directory local o Microsoft Entra ID).
Variaciones del escenario de integración
Aunque en este tutorial se usa un archivo CSV como sistema de registro, puede personalizar el script de PowerShell de ejemplo para leer datos de cualquier sistema de registro. Esta es una lista de variaciones de escenarios de integración empresarial, donde el aprovisionamiento entrante controlado por API se puede implementar con un script de PowerShell.
# | Sistema de registro | Guía de integración sobre el uso de PowerShell para leer datos de origen |
---|---|---|
1 | Tabla de base de datos | Si utiliza una base de datos Azure SQL o un servidor SQL Server local, puede utilizar el cmdlet Read-SqlTableData para leer los datos almacenados en una tabla de una base de datos SQL. Puede utilizar el cmdlet Invoke-SqlCmd para ejecutar scripts Transact-SQL o XQuery. Si utiliza una base de datos Oracle / MySQL / Postgres, puede encontrar un módulo PowerShell publicado por el proveedor o disponible en la Galería de PowerShell. Use el módulo para leer datos de la tabla de base de datos. |
2 | Servidor LDAP | Utilice la API .NET System.DirectoryServices.Protocols o uno de los módulos LDAP disponibles en la Galería de PowerShell para consultar su servidor LDAP. Comprenda el esquema LDAP y la jerarquía para recuperar datos de usuario del servidor LDAP. |
3 | Cualquier sistema que exponga las API de REST | Para leer datos de un punto final de la API de REST mediante PowerShell, puede utilizar el cmdlet Invoke-RestMethod del módulo Microsoft.PowerShell.Utility . Compruebe la documentación de la API de REST y averigüe qué parámetros y encabezados espera, qué formato devuelve y qué método de autenticación usa. Después, puede ajustar el comando Invoke-RestMethod en consecuencia. |
4 | Cualquier sistema que exponga las API del SOAP | Para leer datos de un punto de conexión de API de SOAP mediante PowerShell, puede usar el cmdlet New-WebServiceProxy del módulo Microsoft.PowerShell.Management . Compruebe la documentación de la API de SOAP y averigüe qué parámetros y encabezados espera, qué formato devuelve y qué método de autenticación usa. A continuación, puede ajustar su mando en consecuencia New-WebServiceProxy . |
Después de leer los datos de origen, aplique las reglas de preprocesamiento y convierta la salida del sistema de registro en una solicitud masiva que se pueda enviar al punto de conexión de API bulkUpload de aprovisionamiento de Microsoft Entra.
Importante
Si desea compartir su script de integración PowerShell con la comunidad, publíquelo en la Galería de PowerShell y notifíquenoslo en el repositorio de GitHub entra-id-inbound-provisioning
, para que podamos agregar una referencia al mismo.
Cómo usar este tutorial
El script de ejemplo de PowerShell publicado en el repositorio GitHub de aprovisionamiento entrante de Microsoft Entra automatiza varias tareas. Tiene lógica para controlar archivos CSV grandes y fragmentar la solicitud masiva para enviar 50 registros en cada solicitud. Aquí se muestra cómo puede probarla y personalizarla según sus requisitos de integración.
Nota
El script de PowerShell de ejemplo se proporciona "tal cual" para la referencia de implementación. Si tiene preguntas relacionadas con el script o si quiere mejorarlo, use el repositorio de proyectos de GitHub.
# | Tarea de automatización | Guía de implementación | Personalización avanzada |
---|---|---|---|
1 | Lee los datos de trabajo del archivo CSV. | Descargue el script de PowerShell. Tiene lógica integrada para leer datos de cualquier archivo CSV. Consulte los detalles de uso de PowerShell de CSV2SCIM para familiarizarse con los diferentes modos de ejecución de este script. | Si su sistema de registro es diferente, consulte la guía proporcionada en la sección Variaciones del escenario de integración sobre cómo puede personalizar el script de PowerShell. |
2 | Preprocesar y convertir datos a formato SCIM. | De manera predeterminada, el script de PowerShell convierte cada registro del archivo CSV en una representación de usuario principal y usuario de empresa de SCIM. Siga los pasos de la sección Generación de una carga de solicitud masiva con el esquema estándar para familiarizarse con este proceso. | Si el archivo CSV tiene campos diferentes, ajuste el archivo AttributeMapping.psd para generar un usuario SCIM válido. También puede generar una solicitud masiva con el esquema SCIM personalizado. Actualice el script de PowerShell para incluir cualquier lógica de validación de datos CSV personalizada. |
3 | Use un certificado para la autenticación en Microsoft Entra ID. | Cree una entidad de servicio que pueda acceder a la API de aprovisionamiento de entrada. Consulte los pasos de la sección Configuración del certificado de cliente para la autenticación de la entidad de servicio para aprender a usar el certificado de cliente para la autenticación. | Si desea usar la identidad administrada en lugar de una entidad de servicio para la autenticación, revise el uso de Connect-MgGraph en el script de ejemplo y actualícelo para usar identidades administradas. |
4 | Aprovisione cuentas en Active Directory local o en Microsoft Entra ID. | Configure la aplicación de aprovisionamiento de entrada controlada por API. Esto generará un único punto de conexión de API /bulkUpload. Para ejecutar el script mediante una entidad de servicio con autenticación basada en certificados, consulte los pasos de la sección Carga de la carga de solicitudes masivas mediante la autenticación de certificados de cliente. Valide el flujo de atributos y personalice las asignaciones de atributos según sus requisitos de integración. | Si tiene previsto usar una solicitud masiva con el esquema SCIM personalizado, amplíe el esquema de la aplicación de aprovisionamiento para incluir los elementos de esquema SCIM personalizados. |
5 | Examine los registros de aprovisionamiento y vuelva a intentar el aprovisionamiento de registros con errores. | Consulte los pasos de la sección Obtención de registros de aprovisionamiento de los ciclos de sincronización más recientes para obtener información sobre cómo capturar y analizar los datos de registro de aprovisionamiento. Identifique los registros de usuario con errores e inclúyalos en el siguiente ciclo de carga. | - |
6 | Implemente la automatización basada en PowerShell en producción. | Una vez que haya verificado su flujo de aprovisionamiento basado en API y personalizado el script de PowerShell para satisfacer sus requisitos, puede implementar la automatización como un runbook de flujo de trabajo de PowerShell en Azure Automation o como un proceso de servidor programado para ejecutarse en un servidor Windows. | - |
Descarga del script de PowerShell
- Acceso al repositorio de GitHub
entra-id-inbound-provisioning
- Use la opción Código ->Clone o Código ->Descargar archivo ZIP para copiar el contenido de este repositorio en la carpeta local.
- Vaya a la carpeta PowerShell/CSV2SCIM. Tiene la estructura de directorios siguiente:
- src
- CSV2SCIM.ps1 (script principal)
- ScimSchemaRepresentations (carpeta que contiene definiciones de esquema SCIM estándar para validar archivos AttributeMapping.psd1)
- EnterpriseUser.json, Group.json, Schema.json, User.json
- Ejemplos
- AttributeMapping.psd1 (ejemplo de asignación de columnas en el archivo CSV a atributos SCIM estándar)
- csv-with-2-records.csv (archivo CSV de ejemplo con dos registros)
- csv-with-1000-records.csv (archivo CSV de ejemplo con 1000 registros)
- Test-ScriptCommands.ps1 (comandos de uso de ejemplo)
- UseClientCertificate.ps1 (script para generar un certificado autofirmado y cargarlo como credencial de entidad de servicio para su uso en el flujo de OAuth)
Sample1
(carpeta con más ejemplos de cómo se pueden asignar columnas de archivo CSV a atributos estándar SCIM. Si obtiene archivos CSV diferentes para empleados, contratistas, personal en prácticas, puede crear un archivo AttributeMapping.psd1 independiente para cada entidad.)
- src
- Descargue e instale la versión más reciente de PowerShell.
- Ejecute el comando para habilitar la ejecución de scripts firmados remotos:
set-executionpolicy remotesigned
- Instale los siguientes módulos de requisitos previos:
Install-Module -Name Microsoft.Graph.Applications,Microsoft.Graph.Reports
Generación de una carga masiva de solicitudes con el esquema estándar
En esta sección se explica cómo generar una carga masiva de solicitudes con atributos estándar de usuario principal y usuario de empresa de SCIM a partir de un archivo CSV.
Para ilustrar el procedimiento, vamos a usar el archivo CSV Samples/csv-with-2-records.csv
.
Abra el archivo CVSV
Samples/csv-with-2-records.csv
en Notepad++ o Excel para comprobar las columnas presentes en el archivo.En Notepad++ o en un editor de código fuente como Visual Studio Code, abra el archivo de datos
Samples/AttributeMapping.psd1
de PowerShell, que permite asignar columnas de archivo CSV a atributos de esquema estándar SCIM. El archivo que se distribuye listo para usar ya tiene una asignación preconfigurada de columnas de archivo CSV a los atributos de esquema SCIM correspondientes.@{ externalId = 'WorkerID' name = @{ familyName = 'LastName' givenName = 'FirstName' } active = { $_.'WorkerStatus' -eq 'Active' } userName = 'UserID' displayName = 'FullName' nickName = 'UserID' userType = 'WorkerType' title = 'JobTitle' addresses = @( @{ type = { 'work' } streetAddress = 'StreetAddress' locality = 'City' postalCode = 'ZipCode' country = 'CountryCode' } ) phoneNumbers = @( @{ type = { 'work' } value = 'OfficePhone' } ) "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" = @{ employeeNumber = 'WorkerID' costCenter = 'CostCenter' organization = 'Company' division = 'Division' department = 'Department' manager = @{ value = 'ManagerID' } } }
Abra PowerShell y cambie al directorio CSV2SCIM\src.
Ejecute el comando siguiente para inicializar la variable
AttributeMapping
:$AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
Ejecute el siguiente comando para validar si el archivo
AttributeMapping
tiene atributos de esquema SCIM válidos. Este comando devuelve True si la validación se realiza correctamente..\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ValidateAttributeMapping
Supongamos que el archivo
AttributeMapping
tiene un atributo SCIM no válido denominado userId y, a continuación, el modoValidateAttributeMapping
muestra el siguiente error.Una vez comprobado que el archivo
AttributeMapping
es válido, ejecute el siguiente comando para generar una solicitud masiva en el archivoBulkRequestPayload.json
que incluya los dos registros presentes en el archivo CSV..\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping > BulkRequestPayload.json
Puede abrir el contenido del archivo
BulkRequestPayload.json
para comprobar si los atributos SCIM se establecen según la asignación definida en el archivoAttributeMapping.psd1
.Puedes publicar el archivo generado anteriormente tal cual en el punto de conexión de API /bulkUpload asociado a tu aplicación de aprovisionamiento mediante Probador de Graph o cURL. Referencia:
Para cargar directamente la carga generada en el punto de conexión de API mediante el mismo script de PowerShell, consulte la sección siguiente.
Configure el certificado de cliente para la autenticación de la entidad de servicio
Nota
En estas instrucciones se muestra cómo generar un certificado autofirmado. De forma predeterminada, los certificados autofirmados no son de confianza y pueden ser difíciles de mantener. Además, pueden usar conjuntos hash y de cifrado no actualizados que podrían no ser seguros. Para mejorar la seguridad, compre un certificado firmado por una entidad de certificación conocida.
- Ejecute el siguiente script de PowerShell para generar un certificado autofirmado nuevo. Puede omitir este paso si ha adquirido un certificado firmado por una entidad de certificación conocida.
El certificado generado se almacena en Current User\Personal\Certificates. Puede verlo mediante la opción Panel de control ->Administrar certificados de usuario).$ClientCertificate = New-SelfSignedCertificate -Subject 'CN=CSV2SCIM' -KeyExportPolicy 'NonExportable' -CertStoreLocation Cert:\CurrentUser\My $ThumbPrint = $ClientCertificate.ThumbPrint
- Para asociar este certificado a una entidad de servicio válida, inicie sesión en el Centro de administración de Microsoft Entra como administrador de aplicaciones.
- Abra la entidad de servicio que configuró en Registros de aplicaciones.
- Copie el Object ID de la hoja Información general . Use el valor para reemplazar la cadena
<AppObjectId>
. Copie el identificador de la aplicación (cliente). Lo usaremos más adelante. Se hace referencia a él como<AppClientId>
. - Ejecute el siguiente comando para cargar el certificado en la entidad de servicio registrada.
Debería ver el certificado en la hoja Certificados y secretos de la aplicación registrada.Connect-MgGraph -Scopes "Application.ReadWrite.All" Update-MgApplication -ApplicationId '<AppObjectId>' -KeyCredentials @{ Type = "AsymmetricX509Cert" Usage = "Verify" Key = $ClientCertificate.RawData }
- Agregue los dos ámbitos de permisos de Aplicación a la aplicación de entidad de servicio: Application.Read.All y Synchronization.Read.All. Estos son necesarios para que el script de PowerShell busque la aplicación de aprovisionamiento por el
ServicePrincipalId
y capture el aprovisionamientoJobId
.
Carga de la carga masiva de solicitudes mediante la autenticación de certificados de cliente
En esta sección se explica cómo enviar la carga masiva de solicitudes generada al punto de conexión de la API de aprovisionamiento de entrada mediante un certificado de cliente de confianza.
Abra la aplicación de aprovisionamiento controlada por API que configuró. Copie el
ServicePrincipalId
asociado a la aplicación de aprovisionamiento desde Aplicación de aprovisionamiento>Propiedades>Object ID.Ejecute el siguiente comando proporcionando los valores correctos para
ServicePrincipalId
,ClientId
yTenantId
.$ClientCertificate = Get-ChildItem -Path cert:\CurrentUser\my\ | Where-Object {$_.Subject -eq "CN=CSV2SCIM"} $ThumbPrint = $ClientCertificate.ThumbPrint .\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -TenantId "contoso.onmicrosoft.com" -ServicePrincipalId "<ProvisioningAppObjectId>" -ClientId "<AppClientId>" -ClientCertificate (Get-ChildItem Cert:\CurrentUser\My\$ThumbPrint)
Visite la hoja Registros de aprovisionamiento de la aplicación de aprovisionamiento para comprobar el procesamiento de la solicitud anterior.
Generación de una solicitud masiva con el esquema SCIM personalizado
En esta sección se describe cómo generar una solicitud masiva con un espacio de nombres de esquema SCIM personalizado que consta de campos del archivo CSV.
En Notepad++ o en un editor de código fuente como Visual Studio Code, abra el archivo de datos
Samples/AttributeMapping.psd1
de PowerShell, que permite asignar columnas de archivo CSV a atributos de esquema estándar SCIM. El archivo que se distribuye listo para usar ya tiene una asignación preconfigurada de columnas de archivo CSV a los atributos de esquema SCIM correspondientes.Abra PowerShell y cambie al directorio CSV2SCIM\src.
Ejecute el comando siguiente para inicializar la variable
AttributeMapping
:$AttributeMapping = Import-PowerShellDataFile '..\Samples\AttributeMapping.psd1'
Ejecute el siguiente comando para validar si el archivo
AttributeMapping
tiene atributos de esquema SCIM válidos. Este comando devuelve True si la validación se realiza correctamente..\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ValidateAttributeMapping
Además de los atributos de usuario principal y usuario de empresa de SCIM, para obtener una lista plana de todos los campos CSV en un espacio de nombres de esquema SCIM personalizado
urn:ietf:params:scim:schemas:extension:contoso:1.0:User
, ejecute el siguiente comando..\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -AttributeMapping $AttributeMapping -ScimSchemaNamespace "urn:ietf:params:scim:schemas:extension:contoso:1.0:User" > BulkRequestPayloadWithCustomNamespace.json
Los campos CSV se mostrarán en el espacio de nombres de esquema SCIM personalizado.
Ampliación del esquema del trabajo de aprovisionamiento
A menudo, el archivo de datos enviado por los equipos de RR. HH. contiene más atributos que no tienen una representación directa en el esquema SCIM estándar. Para representar estos atributos, se recomienda crear un esquema de extensión SCIM y agregar atributos en este espacio de nombres.
El script CSV2SCIM proporciona un modo de ejecución denominado UpdateSchema
, que lee todas las columnas del archivo CSV, las agrega en un espacio de nombres de esquema de extensión y actualiza el esquema de la aplicación de aprovisionamiento.
Nota
Si las extensiones de atributo ya están presentes en el esquema de la aplicación de aprovisionamiento, este modo solo emite una advertencia de que la extensión de atributo ya existe. Por lo tanto, no hay ningún problema al ejecutar el script CSV2SCIM en el modo UpdateSchema si se agregan nuevos campos al archivo CSV y desea agregarlos como una extensión.
Para ilustrar el procedimiento, usaremos el archivo CSV Samples/csv-with-2-records.csv
presente en la carpeta CSV2SCIM .
Abra el archivo CSV
Samples/csv-with-2-records.csv
en un Notepad, Excel o TextPad para comprobar las columnas presentes en el archivo.Ejecute el siguiente comando:
.\CSV2SCIM.ps1 -Path '..\Samples\csv-with-2-records.csv' -UpdateSchema -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com" -ScimSchemaNamespace "urn:ietf:params:scim:schemas:extension:contoso:1.0:User"
Para comprobar la actualización del esquema de la aplicación de aprovisionamiento, abra la página Asignación de atributos y acceda a la opción Editar lista de atributos para la API en Opciones avanzadas.
La lista de atributos muestra los atributos en el nuevo espacio de nombres.
Obtención de registros de aprovisionamiento de los ciclos de sincronización más recientes
Después de enviar la solicitud masiva, puede consultar los registros de los ciclos de sincronización más recientes procesados por Microsoft Entra ID. Puede recuperar las estadísticas de sincronización y los detalles de procesamiento con el script de PowerShell y guardarlos para su análisis.
Para ver los detalles del registro y las estadísticas de sincronización en la consola, ejecute el siguiente comando:
.\CSV2SCIM.ps1 -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com" -GetPreviousCycleLogs -NumberOfCycles 1
Nota
NumberOfCycles es 1 de manera predeterminada. Especifique un número para recuperar más ciclos de sincronización.
Para ver las estadísticas de sincronización en la consola y guardar los detalles de los registros en una variable, ejecute el siguiente comando:
$logs=.\CSV2SCIM.ps1 -ServicePrincipalId <servicePrincipalId> -TenantId "contoso.onmicrosoft.com" -GetPreviousCycleLogs
Para ejecutar el comando mediante la autenticación de certificados de cliente, ejecute el comando proporcionando los valores correctos para
ServicePrincipalId
,ClientId
yTenantId
:$ClientCertificate = Get-ChildItem -Path cert:\CurrentUser\my\ | Where-Object {$_.Subject -eq "CN=CSV2SCIM"} $ThumbPrint = $ClientCertificate.ThumbPrint $logs=.\CSV2SCIM.ps1 -ServicePrincipalId "<ProvisioningAppObjectId>" -TenantId "contoso.onmicrosoft.com" -ClientId "<AppClientId>" -ClientCertificate (Get-ChildItem Cert:\CurrentUser\My\$ThumbPrint) -GetPreviousCycleLogs -NumberOfCycles 1
Para ver los detalles de un registro específico, podemos recorrer en bucle la colección o seleccionar un índice específico, por ejemplo:
$logs[0]
También podemos usar la instrucción
where-object
para buscar un registro específico mediante sourceID o DisplayName. En la propiedad ProvisioningLogs, podemos encontrar todos los detalles de la operación realizada para ese registro específico.$user = $logs | where sourceId -eq '1222' $user.ProvisioningLogs | fl
Podemos ver las propiedades específicas afectadas por el usuario en el atributo ModifiedProperties.
$user.ProvisioningLogs.ModifiedProperties
Apéndice
Detalles del uso de CSV2SCIM de PowerShell
Esta es una lista de parámetros de línea de comandos aceptados por el script CSV2SCIM de PowerShell.
PS > CSV2SCIM.ps1 -Path <path-to-csv-file>
[-ScimSchemaNamespace <customSCIMSchemaNamespace>]
[-AttributeMapping $AttributeMapping]
[-ServicePrincipalId <spn-guid>]
[-ValidateAttributeMapping]
[-UpdateSchema]
[-ClientId <client-id>]
[-ClientCertificate <certificate-object>]
[-RestartService]
Nota
Los parámetros de línea de comandos AttributeMapping
y ValidateAttributeMapping
hacen referencia a la asignación de atributos de columna CSV a los elementos de esquema SCIM estándar.
No hace referencia a las asignaciones de atributos que usted realiza en la aplicación de aprovisionamiento del centro de administración de Microsoft Entra entre los elementos del esquema SCIM de origen y los atributos de Active Directory local o de Microsoft Entra de destino.
Parámetro | Descripción | Procesamiento de comentarios |
---|---|---|
Ruta de acceso | Ruta de acceso completa o relativa al archivo CSV. Por ejemplo: .\Samples\csv-with-1000-records.csv |
Obligatorio: Sí |
ScimSchemaNamespace | Espacio de nombres de esquema SCIM personalizado que se va a usar para enviar todas las columnas del archivo CSV como atributos SCIM personalizados que pertenecen a un espacio de nombres específico. Por ejemplo, urn:ietf:params:scim:schemas:extension:csv:1.0:User . |
Obligatorio: Solo cuando quiera: - Actualizar el esquema de la aplicación de aprovisionamiento o Cuando desee incluir atributos SCIM personalizados en la carga. |
AttributeMapping | Apunta a un archivo de datos de PowerShell (extensión .psd1) que asigna columnas del archivo CSV a los atributos de usuario principal y usuario de empresa de SCIM. Vea el ejemplo: archivo AttributeMapping.psd para el script CSV2SCIM. Por ejemplo: powershell $AttributeMapping = Import-PowerShellDataFile '.\Samples\AttributeMapping.psd1'`-AttributeMapping $AttributeMapping |
Obligatorio: Sí El único escenario en el que no es necesario especificarlo es cuando se usa el modificador UpdateSchema . |
ValidateAttributeMapping | Use la marca de este modificador para validar que el archivo AttributeMapping contiene atributos que cumplen con el esquema de usuario principal y usuario de empresa de SCIM. | Obligatorio: No Se recomienda usarlo para garantizar el cumplimiento. |
ServicePrincipalId | El valor GUID del identificador de entidad de servicio de la aplicación de aprovisionamiento que puede recuperar de la aplicación de aprovisionamiento>Propiedades>Object ID | Obligatorio: Solo cuando quiera: - Actualizar el esquema de la aplicación de aprovisionamiento o - Enviar la solicitud masiva generada al punto de conexión de la API. |
UpdateSchema | Use este modificador para indicar al script que lea las columnas CSV y agréguelas como atributos SCIM personalizados en el esquema de la aplicación de aprovisionamiento. | |
ClientId | El identificador de cliente de una aplicación registrada de Microsoft Entra que se va a usar para el flujo de autenticación de OAuth. Esta aplicación debe tener credenciales de certificado válidas. | Obligatorio: Solo al realizar la autenticación basada en certificados. |
ClientCertificate | Certificado de autenticación de cliente que se va a usar durante el flujo de OAuth. | Obligatorio: Solo al realizar la autenticación basada en certificados. |
GetPreviousCycleLogs | Obtención de registros de aprovisionamiento de los ciclos de sincronización más recientes. | |
NumberOfCycles | Para especificar cuántos ciclos de sincronización se deben recuperar. De manera predeterminada, este valor es 1. | |
RestartService | Con esta opción, el script pausa temporalmente el trabajo de aprovisionamiento antes de cargar los datos, carga los datos y, a continuación, inicia el trabajo de nuevo para garantizar el procesamiento inmediato de la carga. | Use esta opción solo durante la fase de pruebas. |
Archivo AttributeMapping.psd
Este archivo se usa para asignar columnas del archivo CSV a los elementos estándar del esquema de los atributos de usuario principal y usuario de empresa de SCIM. El archivo también genera una representación adecuada del contenido del archivo CSV como una carga de solicitudes.
En el ejemplo siguiente, asignamos las siguientes columnas del archivo CSV a sus atributos homólogos de usuario principal y usuario de empres de SCIM.
@{
externalId = 'WorkerID'
name = @{
familyName = 'LastName'
givenName = 'FirstName'
}
active = { $_.'WorkerStatus' -eq 'Active' }
userName = 'UserID'
displayName = 'FullName'
nickName = 'UserID'
userType = 'WorkerType'
title = 'JobTitle'
addresses = @(
@{
type = { 'work' }
streetAddress = 'StreetAddress'
locality = 'City'
postalCode = 'ZipCode'
country = 'CountryCode'
}
)
phoneNumbers = @(
@{
type = { 'work' }
value = 'OfficePhone'
}
)
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" = @{
employeeNumber = 'WorkerID'
costCenter = 'CostCenter'
organization = 'Company'
division = 'Division'
department = 'Department'
manager = @{
value = 'ManagerID'
}
}
}