AutoMate Technisch Help

Provisioning

De Provisioning feature beheert device provisioning via Windows AutoPilot en Microsoft 365 licenties. Alle operaties zijn tenant-specifiek en verlopen via de X-Tenant-Id header. De feature is georganiseerd onder API/Src/AutoMate.API/Features/Provisions/.

Devices

Device beheer is gericht op Windows AutoPilot (v1 en v2), Intune managed devices en stock beheer.

Architectuur

HTTP

Device Endpoints

DevicesService

IDevicesRepository

IDeviceMetadataService

Microsoft Graph API

DeviceMetadataService

DeviceMetadataRepository
Azure SQL

SyncAutoPilotDevices
Hangfire

DevicesService coördineert alle device operaties. De repository communiceert rechtstreeks met Microsoft Graph via HTTP. DeviceMetadataService beheert aanvullende device metadata in de lokale database.

AutoPilot Import

Devices kunnen worden geïmporteerd in Windows AutoPilot via twee versies van het endpoint:

Methode

Pad

Beschrijving

POST

/provisions/devices/autopilot/import

AutoPilot import v1

POST

/provisions/devices/autopilot/v2/import

AutoPilot import v2

Beide versies gebruiken ImportAutopilotDeviceCommandHandler. V1 maakt gebruik van PendingAutopilotV1Repository voor het bijhouden van imports in behandeling.

Device Stock

Device stock beheer voor voorraad van toe te wijzen apparaten:

Methode

Pad

Beschrijving

GET

/provisions/devices/stock

Voorraad opvragen

DELETE

/provisions/devices/stock

Device uit voorraad verwijderen

PUT

/provisions/devices/autopilot/v1/stock

AutoPilot v1 stock bijwerken

Overige Device Endpoints

Methode

Pad

Beschrijving

GET

/provisions/devices

Managed devices opvragen

GET

/provisions/devices/unmanaged

Onbeheerde devices opvragen

GET

/provisions/devices/metadata

Device metadata opvragen

GET

/provisions/devices/intune-eligible-users

Intune-geschikte gebruikers

GET

/provisions/devices/{id}/bitlocker-key

BitLocker herstelsleutel ophalen

DELETE

/provisions/devices/autopilot/{id}

AutoPilot identity verwijderen

DELETE

/provisions/devices/managed/{id}

Managed device verwijderen

POST

/provisions/devices/managed/{id}/wipe

Managed device wissen

Tenant ID wordt verkregen via de X-Tenant-Id header — nooit als parameter in de request body.

Hangfire Job: SyncAutoPilotDevices

SyncAutoPilotDevices is een Hangfire job die device metadata synchroniseert vanuit AutoPilot.

public class SyncAutoPilotDevices(ILogger<SyncAutoPilotDevices> logger, IDeviceMetadataService service) { public async Task RunSyncAutoPilotDevicesAsync(CancellationToken cancellationToken = default) => await SyncAutoPilotDevicesCoreAsync(cancellationToken); }

Job

Hangfire job name

Schedule

Beschrijving

SyncAutoPilotDevices

devices-sync-autopilot-hourly

Elk uur

Synchroniseert AutoPilot device metadata

Licenties

Licentie beheer voor Microsoft 365 via Microsoft Graph. De beschikbare licenties worden uitgelezen via de Graph API en kunnen worden toegewezen en ingetrokken per tenant.

Registratie verloopt via extension methods afkomstig uit de Tasks.License.Microsoft library:

services.AddLicensesApplication(); services.AddLicensesInfrastructure();

Endpoint:

Methode

Pad

Beschrijving

GET

/provisions/licences

Beschikbare licenties voor de tenant

Het response model LicencesResponse bevat de licentie details zoals product naam, SKU ID en het aantal beschikbare en toegewezen exemplaren.

Afhankelijkheden

Afhankelijkheid

Gebruikt door

MsGraph Plugin

AutoPilot import, device queries, licentie operaties via Graph API

Multi-tenancy

Alle devices en licenties zijn per tenant via X-Tenant-Id header

Hangfire

Periodieke device synchronisatie (devices-sync-autopilot-hourly)

Azure SQL

Device metadata opslag via DeviceMetadataRepository

Technische details

BitLocker sleutels ophalen

DevicesService.GetBitlockerKeyAsync voert een drietraps opvraag uit via Graph:

  1. Managed device opvragen aan de hand van het device ID → Azure AD device ID ophalen

  2. BitLocker herstelsleutels opvragen voor het Azure AD device ID

  3. De meest recente sleutel ophalen op basis van CreatedDateTime

AutoPilot v1 vs v2

AutoPilot v1 gebruikt een pending-registratie patroon via PendingAutopilotV1Repository waarmee de import-status bijgehouden wordt in de lokale database. AutoPilot v2 importeert direct via Graph zonder pending state.

Last modified: 24 March 2026