Entra Verified ID: Credential Issuance Implementatie

💼 Management Samenvatting

Microsoft Entra Verified ID credential issuance maakt het mogelijk voor organisaties om verifieerbare digitale credentials uit te geven die voldoen aan de W3C Verifiable Credentials standaard. Deze technologie vormt de basis voor decentralized identity en self-sovereign identity oplossingen, waarbij individuen controle behouden over hun digitale identiteit zonder afhankelijk te zijn van centrale identity providers. Voor Nederlandse overheidsorganisaties biedt credential issuance nieuwe mogelijkheden voor het uitgeven van digitale identiteitsbewijzen, diploma's, certificeringen en andere officiële documenten die cryptografisch verifieerbaar zijn en niet kunnen worden vervalst.

Aanbeveling
OVERWEG VOOR MODERNE IDENTITY GOVERNANCE
Risico zonder
Medium
Risk Score
6/10
Implementatie
120u (tech: 80u)
Van toepassing op:
Microsoft Entra ID
Microsoft Entra Verified ID
Decentralized Identity

Traditionele digitale identiteitsoplossingen zijn gebaseerd op centrale identity providers waarbij organisaties volledige controle hebben over gebruikersidentiteiten. Dit model heeft verschillende beperkingen: gebruikers zijn afhankelijk van de identity provider voor toegang tot hun digitale identiteit, identiteitsgegevens worden opgeslagen in centrale databases die kwetsbaar zijn voor datalekken, en gebruikers hebben beperkte controle over hoe hun identiteitsgegevens worden gedeeld. Bovendien maken traditionele systemen het moeilijk om identiteitsgegevens te delen tussen verschillende organisaties zonder dat elke organisatie toegang moet hebben tot de centrale database. Zonder Entra Verified ID credential issuance kunnen organisaties geen verifieerbare digitale credentials uitgeven die voldoen aan moderne privacy-standaarden. Dit betekent dat organisaties afhankelijk blijven van traditionele methoden zoals papieren documenten of gecentraliseerde databases voor het beheren van identiteitsgegevens. Deze methoden zijn kwetsbaar voor vervalsing, vereisen handmatige verificatieprocessen die tijdrovend en foutgevoelig zijn, en bieden gebruikers geen controle over hun eigen identiteitsgegevens. Voor Nederlandse overheidsorganisaties die digitale diensten willen aanbieden aan burgers, betekent dit dat zij niet kunnen profiteren van de voordelen van decentralized identity, zoals verbeterde privacy, verminderde afhankelijkheid van centrale systemen, en betere gebruikerservaring. Beveiligingsrisico's nemen toe wanneer organisaties geen moderne credential issuance oplossing hebben. Zonder verifieerbare credentials blijven organisaties afhankelijk van traditionele authenticatiemethoden die kwetsbaar zijn voor phishing-aanvallen, credential theft, en identiteitsfraude. Bovendien maken gecentraliseerde identity databases deze systemen tot aantrekkelijke doelen voor cybercriminelen, omdat een succesvolle aanval toegang geeft tot alle identiteitsgegevens in de database. Zonder credential issuance kunnen organisaties niet profiteren van de cryptografische beveiliging die inherent is aan verifieerbare credentials, waarbij elke credential cryptografisch wordt ondertekend en kan worden geverifieerd zonder toegang tot een centrale database. Compliance-vereisten zoals de Algemene Verordening Gegevensbescherming (AVG) vereisen dat organisaties minimale persoonsgegevens verzamelen en dat individuen controle hebben over hun persoonsgegevens. Entra Verified ID credential issuance ondersteunt deze vereisten door gebruikers controle te geven over welke credentials zij delen en met wie, zonder dat organisaties toegang nodig hebben tot een centrale database met alle identiteitsgegevens. Bovendien maken verifieerbare credentials het mogelijk om alleen de benodigde informatie te delen, in plaats van volledige identiteitsprofielen, wat de privacy verbetert en voldoet aan het principe van dataminimalisatie. Voor Nederlandse overheidsorganisaties biedt credential issuance nieuwe mogelijkheden voor het digitaliseren van diensten. Organisaties kunnen digitale versies uitgeven van officiële documenten zoals identiteitsbewijzen, diploma's, vergunningen en certificeringen die cryptografisch verifieerbaar zijn en niet kunnen worden vervalst. Burgers kunnen deze credentials gebruiken om zich te identificeren bij verschillende overheidsorganisaties zonder dat elke organisatie toegang nodig heeft tot een centrale database. Dit verbetert de privacy, vermindert administratieve overhead, en maakt het mogelijk om nieuwe digitale diensten aan te bieden die voorheen niet haalbaar waren.

PowerShell Modules Vereist
Primary API: Microsoft Graph API
Connection: Connect-MgGraph
Required Modules: Microsoft.Graph, Microsoft.Graph.Identity.DirectoryManagement

Implementatie

Entra Verified ID credential issuance omvat het volledige proces van het ontwikkelen, configureren en uitgeven van verifieerbare digitale credentials die voldoen aan de W3C Verifiable Credentials standaard. Het issuance proces begint met het definiëren van een credential type, waarbij organisaties specificeren welke claims (attributen) de credential zal bevatten, zoals naam, geboortedatum, of andere relevante informatie. Deze definitie wordt opgeslagen als een credential manifest dat beschrijft welke informatie vereist is voor het uitgeven van de credential en welke informatie wordt opgenomen in de uitgegeven credential. De volgende stap is het configureren van een verifiable credential service in Entra ID, waarbij organisaties een Azure Key Vault gebruiken voor het beheren van de cryptografische sleutels die worden gebruikt voor het ondertekenen van credentials. Deze sleutels vormen de basis voor de cryptografische integriteit van credentials, waarbij elke uitgegeven credential cryptografisch wordt ondertekend met een private key die alleen toegankelijk is voor de issuer. De bijbehorende public key wordt gepubliceerd in een verifiable data registry, waardoor verifiers kunnen verifiëren dat credentials daadwerkelijk zijn uitgegeven door de geautoriseerde issuer. Het issuance proces zelf omvat het verzamelen van de benodigde informatie van de gebruiker, het valideren van deze informatie tegen de vereisten die zijn gedefinieerd in het credential manifest, en het genereren van een verifieerbare credential die cryptografisch wordt ondertekend. Deze credential wordt vervolgens aangeboden aan de gebruiker, die deze kan opslaan in een digitale wallet zoals Microsoft Authenticator of een andere W3C-compliant wallet. De gebruiker behoudt volledige controle over de credential en kan beslissen wanneer en met wie deze wordt gedeeld. Het issuance proces ondersteunt verschillende issuance flows, waaronder direct issuance waarbij credentials direct worden uitgegeven aan gebruikers, en issuance via verificatie waarbij gebruikers eerst hun identiteit moeten verifiëren voordat credentials worden uitgegeven. Het proces ondersteunt ook conditional issuance, waarbij credentials alleen worden uitgegeven wanneer bepaalde voorwaarden zijn vervuld, zoals het voltooien van een training of het behalen van een certificering. Bovendien kan het issuance proces worden geïntegreerd met bestaande systemen via Microsoft Graph API, waardoor organisaties credentials kunnen uitgeven als onderdeel van bestaande workflows. Monitoring en audit vormen kritieke onderdelen van het issuance proces. Alle issuance activiteiten worden gelogd in Azure Monitor, inclusief welke credentials zijn uitgegeven, aan wie ze zijn uitgegeven, wanneer ze zijn uitgegeven, en welke informatie ze bevatten. Deze logs zijn essentieel voor compliance-doeleinden en maken het mogelijk om issuance activiteiten te auditen en te verifiëren dat credentials correct zijn uitgegeven volgens organisatorische policies. Bovendien kunnen waarschuwingen worden geconfigureerd om teams te informeren wanneer ongebruikelijke issuance activiteiten worden gedetecteerd, zoals een groot aantal credentials dat in korte tijd wordt uitgegeven.

Vereisten voor Credential Issuance Implementatie

Voordat Entra Verified ID credential issuance kan worden geïmplementeerd, moeten organisaties verschillende essentiële vereisten vervullen die de basis vormen voor een succesvolle implementatie. De eerste vereiste is een Microsoft Entra ID tenant met de juiste licenties. Credential issuance vereist Microsoft Entra ID Premium P1 of P2, omdat deze functionaliteit deel uitmaakt van de geavanceerde identity governance features. Zonder de juiste licenties kan credential issuance niet worden geconfigureerd, wat betekent dat organisaties moeten investeren in de benodigde licenties voordat implementatie kan beginnen. Een tweede essentiële vereiste is een Azure Key Vault voor het beheren van de cryptografische sleutels die worden gebruikt voor het ondertekenen van credentials. Deze Key Vault moet worden geconfigureerd met de juiste toegangsbeperkingen, waarbij alleen geautoriseerde services toegang hebben tot de private keys die worden gebruikt voor credential signing. De Key Vault moet ook worden geconfigureerd met soft delete en purge protection om te garanderen dat sleutels niet per ongeluk kunnen worden verwijderd, wat zou leiden tot het verlies van de mogelijkheid om credentials te verifiëren die zijn uitgegeven met deze sleutels. Vanuit technisch perspectief zijn de juiste PowerShell-modules een absolute vereiste voor het implementeren en beheren van credential issuance. De Microsoft.Graph en Microsoft.Graph.Identity.DirectoryManagement modules moeten zijn geïnstalleerd en bijgewerkt naar de nieuwste versies om toegang te hebben tot alle benodigde cmdlets voor credential issuance beheer. Deze modules bieden de functionaliteit om credential types te definiëren, issuance services te configureren, credentials uit te geven, en issuance activiteiten te monitoren. Zonder deze modules kan credential issuance niet volledig worden geïmplementeerd, of kunnen bepaalde functionaliteiten ontbreken. Een gedocumenteerde credential issuance strategie is essentieel om te bepalen welke credentials moeten worden uitgegeven en hoe ze moeten worden gestructureerd. Deze strategie moet expliciet definiëren welke types van credentials moeten worden uitgegeven, welke claims moeten worden opgenomen in elke credential, wie bevoegd is om credentials uit te geven, en welke verificatieprocessen moeten worden gevolgd voordat credentials worden uitgegeven. De strategie moet worden ontwikkeld in samenwerking met identity governance teams, compliance managers en business stakeholders, en moet regelmatig worden herzien naarmate nieuwe use cases ontstaan of wanneer compliance-vereisten worden bijgewerkt. Een geautomatiseerd platform voor credential issuance is belangrijk voor het efficiënt uitgeven van credentials. Dit platform kan bestaan uit Microsoft Power Automate voor het automatiseren van issuance workflows, Azure Logic Apps voor het integreren van issuance met bestaande systemen, of custom applicaties die gebruik maken van Microsoft Graph API. Het platform moet de mogelijkheid hebben om issuance workflows te versiebeheren, wijzigingen te tracken, en geautomatiseerde tests uit te voeren voordat credentials worden uitgegeven. Voor organisaties die grote volumes van credentials willen uitgeven, moet het platform kunnen worden geschaald om hoge volumes te ondersteunen zonder prestatieproblemen. Een rapportage- en documentatieproces is essentieel om credential issuance activiteiten vast te leggen voor audit-doeleinden. Dit proces moet duidelijk beschrijven hoe issuance activiteiten worden gedocumenteerd, waar deze documentatie wordt opgeslagen, en hoe lang ze wordt bewaard. Voor compliance-doeleinden moeten issuance logs vaak minimaal zeven jaar worden bewaard, wat betekent dat een geschikt archiefsysteem moet worden geconfigureerd. Documentatie moet gedetailleerde informatie bevatten over welke credentials zijn uitgegeven, aan wie ze zijn uitgegeven, wanneer ze zijn uitgegeven, en welke informatie ze bevatten. Deze informatie is essentieel voor auditors om te begrijpen hoe organisaties credential issuance beheren en handhaven. Ten slotte moet een training- en awareness-programma worden ontwikkeld om ervoor te zorgen dat alle stakeholders die betrokken zijn bij credential issuance, de juiste kennis en vaardigheden hebben. Dit programma moet training bieden over hoe credential issuance werkt, hoe credentials worden uitgegeven, en hoe issuance activiteiten worden gemonitord. Training moet worden aangeboden aan identity governance teams, compliance managers, developers die issuance workflows ontwikkelen, en andere relevante stakeholders. Zonder adequate training kunnen stakeholders credential issuance niet effectief gebruiken, wat leidt tot inconsistenties en fouten in het issuance proces.

Stapsgewijze Implementatie van Credential Issuance

Gebruik PowerShell-script credential-issuance.ps1 (functie Invoke-Implementation) – Implementeert Entra Verified ID credential issuance volgens best practices.

Gebruik PowerShell-script credential-issuance.ps1 (functie Invoke-Monitoring) – Monitort credential issuance activiteiten en compliance.

De implementatie van Entra Verified ID credential issuance begint met het configureren van een verifiable credential service in Entra ID. Dit proces omvat het registreren van een verifiable credential service in de Azure Portal, waarbij organisaties een naam opgeven voor de service en de Azure Key Vault selecteren die wordt gebruikt voor het beheren van cryptografische sleutels. Tijdens de registratie wordt een service principal aangemaakt die wordt gebruikt voor het authenticeren van API-aanroepen naar de verifiable credential service. Deze service principal moet worden geconfigureerd met de juiste permissions om credentials te kunnen uitgeven en issuance activiteiten te kunnen monitoren. Een tweede belangrijke stap in implementatie is het definiëren van credential types via het credential manifest. Dit manifest beschrijft welke claims de credential zal bevatten, welke informatie vereist is voor het uitgeven van de credential, en welke metadata wordt opgenomen in de credential. Het manifest wordt opgeslagen als een JSON-bestand dat voldoet aan de W3C Verifiable Credentials standaard, en wordt gebruikt door zowel issuers als verifiers om te begrijpen welke informatie een credential bevat en hoe deze moet worden geïnterpreteerd. Organisaties moeten zorgvuldig nadenken over welke claims moeten worden opgenomen in credentials, waarbij alleen de benodigde informatie wordt opgenomen om te voldoen aan het principe van dataminimalisatie. Het configureren van issuance policies vormt een kritiek onderdeel van de implementatie. Deze policies definiëren wie bevoegd is om credentials uit te geven, welke verificatieprocessen moeten worden gevolgd voordat credentials worden uitgegeven, en welke voorwaarden moeten worden vervuld voordat credentials kunnen worden uitgegeven. Issuance policies kunnen worden geconfigureerd op basis van verschillende criteria, zoals gebruikersgroepen, rollen, of andere attributen. Bovendien kunnen policies worden geconfigureerd om conditional issuance te ondersteunen, waarbij credentials alleen worden uitgegeven wanneer bepaalde voorwaarden zijn vervuld, zoals het voltooien van een training of het behalen van een certificering. Het ontwikkelen van issuance workflows is essentieel voor het automatiseren van het issuance proces. Deze workflows kunnen worden ontwikkeld met Microsoft Power Automate, Azure Logic Apps, of custom applicaties die gebruik maken van Microsoft Graph API. Workflows moeten worden ontworpen om de volledige issuance lifecycle te ondersteunen, van het verzamelen van benodigde informatie tot het uitgeven van credentials en het monitoren van issuance activiteiten. Workflows moeten ook worden ontworpen om foutafhandeling te ondersteunen, waarbij fouten worden gedetecteerd en gecorrigeerd zonder dat het issuance proces wordt onderbroken. Het configureren van monitoring en logging is cruciaal voor het bijhouden van issuance activiteiten. Alle issuance activiteiten moeten worden gelogd in Azure Monitor, inclusief welke credentials zijn uitgegeven, aan wie ze zijn uitgegeven, wanneer ze zijn uitgegeven, en welke informatie ze bevatten. Deze logs moeten worden geconfigureerd met de juiste retentieperioden om te voldoen aan compliance-vereisten, en moeten worden beschermd tegen ongeautoriseerde toegang. Bovendien moeten waarschuwingen worden geconfigureerd om teams te informeren wanneer ongebruikelijke issuance activiteiten worden gedetecteerd, zoals een groot aantal credentials dat in korte tijd wordt uitgegeven of issuance activiteiten die afwijken van normale patronen. Het testen van de implementatie is essentieel om te garanderen dat credential issuance correct functioneert voordat het in productie wordt gebracht. Testen moet verschillende scenario's omvatten, zoals het uitgeven van credentials aan verschillende gebruikers, het verifiëren van uitgegeven credentials, en het testen van foutafhandeling wanneer issuance mislukt. Testen moet ook worden uitgevoerd in een testomgeving die identiek is aan de productieomgeving, om te garanderen dat de implementatie correct functioneert onder realistische omstandigheden. Na het testen moet een go-live plan worden ontwikkeld dat beschrijft hoe credential issuance wordt geïmplementeerd in productie, inclusief rollback-plannen voor het geval dat problemen optreden. Tot slot moet documentatie worden ontwikkeld die beschrijft hoe credential issuance is geïmplementeerd, hoe het wordt gebruikt, en hoe het wordt beheerd. Deze documentatie moet worden opgeslagen in een centrale locatie die toegankelijk is voor alle relevante stakeholders, en moet regelmatig worden bijgewerkt wanneer wijzigingen worden aangebracht aan de implementatie. Documentatie moet ook worden gebruikt voor training-doeleinden, waarbij nieuwe teamleden worden getraind in het gebruik van credential issuance. Door uitgebreide documentatie te ontwikkelen kunnen organisaties garanderen dat credential issuance correct wordt gebruikt en beheerd, zelfs wanneer teamleden veranderen.

Monitoring en Verificatie van Credential Issuance

Gebruik PowerShell-script credential-issuance.ps1 (functie Invoke-Monitoring) – Monitort credential issuance activiteiten en compliance.

Effectieve monitoring van Entra Verified ID credential issuance is essentieel om te garanderen dat het issuance proces correct functioneert en dat organisaties op de hoogte blijven van issuance activiteiten. Het monitoringproces moet verschillende aspecten omvatten, waaronder het bijhouden van issuance volumes, het monitoren van issuance success rates, het identificeren van trends in issuance activiteiten, en het detecteren van afwijkingen die kunnen wijzen op problemen in het issuance proces of mogelijke beveiligingsincidenten. Het bijhouden van issuance volumes maakt het mogelijk om te verifiëren dat het issuance proces daadwerkelijk wordt gebruikt en om trends te identificeren in issuance activiteiten. Door historische data te analyseren kunnen identity governance teams zien of issuance volumes toenemen of afnemen, of nieuwe use cases leiden tot veranderingen in issuance patronen, en of issuance activiteiten consistent zijn met verwachte volumes. Deze trendanalyse is waardevol voor het identificeren van systematische problemen, zoals wanneer issuance volumes significant afwijken van verwachte volumes, wat kan wijzen op een probleem in het issuance proces of in de manier waarop credentials worden gebruikt. Het monitoren van issuance success rates maakt het mogelijk om te bepalen of het issuance proces betrouwbaar functioneert. Success rates moeten worden gemonitord op verschillende niveaus, zoals het percentage van succesvolle issuance pogingen, het percentage van mislukte issuance pogingen, en de gemiddelde tijd die nodig is om credentials uit te geven. Wanneer success rates afnemen of wanneer foutpercentages toenemen, moet dit worden onderzocht om te bepalen wat de oorzaak is en hoe dit kan worden opgelost. Bovendien moeten fouten worden gecategoriseerd op basis van hun type, zoals technische fouten, validatiefouten, of autorisatiefouten, om te bepalen welke soorten problemen het meest voorkomen. Waarschuwingen moeten worden geconfigureerd om teams onmiddellijk te informeren wanneer kritieke issuance problemen worden gedetecteerd. Deze waarschuwingen moeten worden geconfigureerd met verschillende prioriteitsniveaus, waarbij kritieke problemen zoals het volledig falen van het issuance proces de hoogste prioriteit krijgen, gevolgd door waarschuwingen voor ongebruikelijke issuance activiteiten zoals een groot aantal credentials dat in korte tijd wordt uitgegeven. Waarschuwingen moeten worden doorgestuurd naar de juiste teams, zoals identity governance teams voor issuance-gerelateerde problemen en security teams voor beveiligingsgerelateerde afwijkingen. Het is belangrijk om waarschuwingsmoeheid te voorkomen door waarschuwingen te configureren op een manier die alleen relevante en actievereiste meldingen genereert. Maandelijkse issuance-rapporten moeten worden gegenereerd die een overzicht bieden van issuance activiteiten over de afgelopen maand. Deze rapporten moeten niet alleen de huidige status weergeven, maar ook trends over tijd, waardoor organisaties kunnen zien of issuance activiteiten toenemen of afnemen. Rapporten moeten worden geëxporteerd in verschillende formaten voor distributie aan stakeholders en voor archivering voor audit-doeleinden. Voor organisaties die moeten voldoen aan compliance-vereisten zoals ISO 27001 of de BIO-normen, zijn deze rapporten vaak een vereiste voor certificering. Het monitoren van credential gebruik is bijzonder belangrijk omdat dit inzicht biedt in hoe credentials worden gebruikt na uitgifte. Monitoring moet controleren op credentials die zijn uitgegeven maar nooit zijn gebruikt, credentials die zijn gebruikt voor ongebruikelijke doeleinden, en credentials die zijn ingetrokken maar nog steeds worden gebruikt. Deze informatie is waardevol voor het identificeren van problemen in het issuance proces, zoals wanneer credentials worden uitgegeven aan gebruikers die ze niet nodig hebben, of wanneer credentials worden gebruikt op manieren die niet zijn bedoeld. Het bijhouden van credential lifecycle activiteiten is belangrijk om te garanderen dat credentials correct worden beheerd gedurende hun hele levenscyclus. Dit omvat het documenteren van wanneer credentials zijn uitgegeven, wanneer ze zijn gebruikt, wanneer ze zijn verlopen, en wanneer ze zijn ingetrokken. Voor audit-doeleinden is deze documentatie essentieel om aan te tonen dat organisaties proactief omgaan met credential beheer en dat ze een gestructureerd proces hebben voor het beheren van credentials gedurende hun hele levenscyclus. Naast het monitoren van issuance activiteiten moeten organisaties ook monitoren of het issuance systeem zelf correct functioneert. Dit omvat het controleren of de verifiable credential service beschikbaar is, of de Azure Key Vault correct functioneert, of issuance workflows correct worden uitgevoerd, en of monitoring- en loggingprocessen correct functioneren. Problemen met het issuance systeem zelf kunnen leiden tot blinde vlekken waarbij issuance activiteiten niet worden gedetecteerd of gemonitord, wat kan resulteren in onopgemerkte beveiligingsincidenten. Monitoring van het issuance systeem moet worden geïntegreerd in bestaande monitoring-systemen zodat problemen snel worden gedetecteerd en opgelost.

Compliance en Naleving voor Credential Issuance

Een goed geïmplementeerd Entra Verified ID credential issuance systeem speelt een cruciale rol in het voldoen aan verschillende compliance-vereisten die van toepassing zijn op Nederlandse organisaties, met name in de publieke sector. De Algemene Verordening Gegevensbescherming (AVG) vereist dat organisaties minimale persoonsgegevens verzamelen en dat individuen controle hebben over hun persoonsgegevens. Entra Verified ID credential issuance ondersteunt deze vereisten door gebruikers controle te geven over welke credentials zij delen en met wie, zonder dat organisaties toegang nodig hebben tot een centrale database met alle identiteitsgegevens. Bovendien maken verifieerbare credentials het mogelijk om alleen de benodigde informatie te delen, in plaats van volledige identiteitsprofielen, wat de privacy verbetert en voldoet aan het principe van dataminimalisatie zoals vereist door AVG Artikel 5. Voor organisaties die moeten voldoen aan ISO 27001, specifiek controle A.9.2.1 (User registration and de-registration), biedt credential issuance een mechanisme om te voldoen aan de vereiste dat organisaties een gestructureerd proces moeten hebben voor het registreren en deregistreren van gebruikers. Het issuance proces documenteert hoe credentials worden uitgegeven aan gebruikers, welke verificatieprocessen worden gevolgd voordat credentials worden uitgegeven, en hoe credentials worden ingetrokken wanneer gebruikers niet langer toegang nodig hebben. ISO 27001 vereist ook dat organisaties regelmatig controleren of gebruikersregistratieprocessen correct worden uitgevoerd, en het issuance monitoringproces biedt de mogelijkheid om aan deze vereiste te voldoen. De issuance logs die worden gegenereerd door het systeem kunnen worden gebruikt als bewijs voor auditors dat gebruikersregistratieprocessen correct worden uitgevoerd. De NIS2-richtlijn, die van toepassing is op essentiële en belangrijke entiteiten in verschillende sectoren, vereist in Artikel 10 dat organisaties beleidsmechanismen implementeren voor het beheren van cybersecurity-risico's. Entra Verified ID credential issuance vormt een directe implementatie van deze vereiste, omdat het beschrijft hoe digitale identiteiten worden beheerd en hoe toegang wordt gecontroleerd via verifieerbare credentials. Voor Nederlandse organisaties die onder NIS2 vallen, is het hebben van een gestructureerd credential issuance proces niet alleen een best practice maar kan het helpen bij het voldoen aan NIS2-vereisten voor identiteits- en toegangsbeheer. De NIS2-richtlijn vereist expliciet dat organisaties kunnen aantonen dat zij processen hebben voor het beheren van digitale identiteiten, en credential issuance biedt het mechanisme om dit te bewijzen. De BIO-normen, die specifiek zijn ontwikkeld voor de Nederlandse overheid, bevatten in Thema 12.01 vereisten voor toegangsbeheer. Dit thema benadrukt het belang van gestructureerd toegangsbeheer en vereist dat organisaties kunnen aantonen dat toegang wordt gecontroleerd en gemonitord. Entra Verified ID credential issuance vertegenwoordigt een moderne implementatie van deze vereiste, waarbij wordt beschreven hoe digitale identiteiten worden beheerd en hoe toegang wordt gecontroleerd via verifieerbare credentials. Voor overheidsorganisaties die moeten voldoen aan BIO-normen, is documentatie van het credential issuance proces en de resultaten daarvan een essentieel onderdeel van de audit-evidentie. De issuance documentatie en monitoring-rapporten die worden gegenereerd kunnen worden gebruikt om aan te tonen dat toegangsbeheer correct wordt uitgevoerd en dat er een gestructureerd proces bestaat voor het beheren van digitale identiteiten. Naast deze specifieke compliance-frameworks kan Entra Verified ID credential issuance ook helpen bij het voldoen aan andere relevante standaarden en regelgeving. De eIDAS-verordening vereist bijvoorbeeld dat organisaties kunnen aantonen dat elektronische identificatiemiddelen voldoen aan bepaalde beveiligingsniveaus. Verifieerbare credentials die zijn uitgegeven via Entra Verified ID kunnen worden gebruikt om te voldoen aan eIDAS-vereisten, omdat ze cryptografisch worden ondertekend en kunnen worden geverifieerd zonder toegang tot een centrale database. Evenzo kunnen issuance documentatie en monitoring-rapporten worden gebruikt om te voldoen aan sector-specifieke vereisten, zoals die voor de gezondheidszorg of financiële dienstverlening. Door credential issuance te configureren die specifiek is afgestemd op de compliance-vereisten van de organisatie, kunnen organisaties ervoor zorgen dat hun digitale identiteitsbeheer consistent voldoen aan alle relevante standaarden en regelgeving.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# ================================================================================ MICROSOFT GRAPH POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS Entra Verified ID: Credential Issuance Implementatie en Monitoring .DESCRIPTION Monitort en verifieert de implementatie van Entra Verified ID credential issuance, inclusief verifiable credential services, credential types, issuance policies en activiteiten. .NOTES Filename: credential-issuance.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/entra/verified-id/credential-issuance.json #> #Requires -Version 5.1 #Requires -Modules Microsoft.Graph, Microsoft.Graph.Identity.DirectoryManagement [CmdletBinding()] param( [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Implementation ) $ErrorActionPreference = 'Stop' function Connect-RequiredServices { if (-not (Get-MgContext)) { Connect-MgGraph -Scopes "Directory.Read.All", "Policy.Read.All", "AuditLog.Read.All" | Out-Null } } function Test-VerifiableCredentialService { <# .SYNOPSIS Test of Verifiable Credential Service is geconfigureerd #> $results = @{ ServiceConfigured = $false KeyVaultConfigured = $false ServicePrincipalExists = $false Details = @() } try { # Controleer of Verifiable Credential Service is geregistreerd # Opmerking: Deze functionaliteit vereist specifieke Graph API endpoints # die mogelijk nog niet beschikbaar zijn in alle tenants Write-Verbose "Controleren Verifiable Credential Service configuratie..." # Check voor service principal voor Verified ID $servicePrincipals = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Entra Verified ID'" -ErrorAction SilentlyContinue if ($servicePrincipals) { $results.ServicePrincipalExists = $true $results.Details += "Verifiable Credential Service Principal gevonden" } else { $results.Details += "Verifiable Credential Service Principal niet gevonden" } # Check voor Key Vault (vereist Azure PowerShell) try { $azContext = Get-AzContext -ErrorAction SilentlyContinue if ($azContext) { $keyVaults = Get-AzKeyVault -ErrorAction SilentlyContinue if ($keyVaults) { $results.KeyVaultConfigured = $true $results.Details += "Azure Key Vault gevonden voor credential signing" } else { $results.Details += "Azure Key Vault niet gevonden" } } else { $results.Details += "Azure context niet beschikbaar - Key Vault check overgeslagen" } } catch { $results.Details += "Key Vault check mislukt: $($_.Exception.Message)" } if ($results.ServicePrincipalExists -and $results.KeyVaultConfigured) { $results.ServiceConfigured = $true } } catch { Write-Warning "Fout bij controleren Verifiable Credential Service: $_" } return $results } function Get-CredentialIssuanceActivity { <# .SYNOPSIS Haalt credential issuance activiteiten op #> $results = @{ TotalIssuances = 0 RecentIssuances = @() Errors = @() } try { # Haal audit logs op voor Verified ID activiteiten # Opmerking: Specifieke audit log queries voor Verified ID kunnen variëren Write-Verbose "Ophalen credential issuance activiteiten..." # Get audit logs (laatste 30 dagen) $startDate = (Get-Date).AddDays(-30).ToString("yyyy-MM-ddTHH:mm:ssZ") try { $auditLogs = Get-MgAuditLogDirectoryAudit -Filter "ActivityDateTime ge $startDate" -Top 100 -ErrorAction SilentlyContinue if ($auditLogs) { # Filter voor Verified ID gerelateerde activiteiten $verifiedIdLogs = $auditLogs | Where-Object { $_.ActivityDisplayName -like "*Verified*" -or $_.ActivityDisplayName -like "*Credential*" -or $_.Category -eq "UserManagement" } $results.TotalIssuances = $verifiedIdLogs.Count $results.RecentIssuances = $verifiedIdLogs | Select-Object -First 10 | ForEach-Object { @{ Activity = $_.ActivityDisplayName User = $_.TargetResources[0].DisplayName DateTime = $_.ActivityDateTime Result = $_.Result } } } } catch { $results.Errors += "Kon audit logs niet ophalen: $($_.Exception.Message)" } } catch { Write-Warning "Fout bij ophalen issuance activiteiten: $_" $results.Errors += $_.Exception.Message } return $results } function Test-IssuancePolicies { <# .SYNOPSIS Test of issuance policies zijn geconfigureerd #> $results = @{ PoliciesConfigured = $false PolicyCount = 0 Details = @() } try { Write-Verbose "Controleren issuance policies..." # Check voor Conditional Access policies die kunnen worden gebruikt voor issuance $caPolicies = Get-MgIdentityConditionalAccessPolicy -ErrorAction SilentlyContinue if ($caPolicies) { $results.PolicyCount = $caPolicies.Count $results.Details += "$($caPolicies.Count) Conditional Access policies gevonden" # Check voor policies met MFA requirements (relevant voor issuance) $mfaPolicies = $caPolicies | Where-Object { $_.GrantControls.RequireAuthenticationStrength -ne $null -or $_.GrantControls.BuiltInControls -contains "mfa" } if ($mfaPolicies) { $results.Details += "$($mfaPolicies.Count) policies met MFA vereisten gevonden" } } else { $results.Details += "Geen Conditional Access policies gevonden" } # Opmerking: Specifieke Verified ID issuance policies kunnen worden beheerd # via andere endpoints die mogelijk nog niet beschikbaar zijn if ($results.PolicyCount -gt 0) { $results.PoliciesConfigured = $true } } catch { Write-Warning "Fout bij controleren issuance policies: $_" $results.Details += "Fout: $($_.Exception.Message)" } return $results } # ============================================================================ # FUNCTION: Invoke-Implementation # ============================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert Entra Verified ID credential issuance #> Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Entra Verified ID Credential Issuance" -ForegroundColor Cyan Write-Host "Implementatie" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan try { Connect-RequiredServices Write-Host "STAP 1: Verifieer Verifiable Credential Service" -ForegroundColor White Write-Host "-" * 50 -ForegroundColor Gray $vcService = Test-VerifiableCredentialService if (-not $vcService.ServiceConfigured) { Write-Host "⚠️ Verifiable Credential Service niet volledig geconfigureerd" -ForegroundColor Yellow Write-Host "`nHandmatige configuratie vereist:" -ForegroundColor Yellow Write-Host "1. Registreer Verifiable Credential Service in Azure Portal" -ForegroundColor Gray Write-Host " - Ga naar Entra ID → Verified ID → Issuance" -ForegroundColor Gray Write-Host " - Klik 'Add verifiable credential service'" -ForegroundColor Gray Write-Host " - Selecteer Azure Key Vault voor credential signing" -ForegroundColor Gray Write-Host "2. Configureer Azure Key Vault" -ForegroundColor Gray Write-Host " - Maak Key Vault aan in Azure Portal" -ForegroundColor Gray Write-Host " - Configureer soft delete en purge protection" -ForegroundColor Gray Write-Host " - Geef Verifiable Credential Service toegang tot Key Vault" -ForegroundColor Gray } else { Write-Host "✅ Verifiable Credential Service is geconfigureerd" -ForegroundColor Green } Write-Host "`nSTAP 2: Definieer Credential Types" -ForegroundColor White Write-Host "-" * 50 -ForegroundColor Gray Write-Host "Handmatige configuratie vereist:" -ForegroundColor Yellow Write-Host "1. Maak credential manifest JSON-bestand" -ForegroundColor Gray Write-Host " - Definieer claims (attributen) die credential bevat" -ForegroundColor Gray Write-Host " - Specificeer vereiste informatie voor issuance" -ForegroundColor Gray Write-Host " - Voeg metadata toe (display name, description, etc.)" -ForegroundColor Gray Write-Host "2. Upload manifest naar Verifiable Credential Service" -ForegroundColor Gray Write-Host " - Via Azure Portal of Microsoft Graph API" -ForegroundColor Gray Write-Host "`nSTAP 3: Configureer Issuance Policies" -ForegroundColor White Write-Host "-" * 50 -ForegroundColor Gray $policies = Test-IssuancePolicies if ($policies.PoliciesConfigured) { Write-Host "✅ $($policies.PolicyCount) policies gevonden" -ForegroundColor Green } else { Write-Host "⚠️ Geen issuance policies geconfigureerd" -ForegroundColor Yellow Write-Host "`nHandmatige configuratie vereist:" -ForegroundColor Yellow Write-Host "1. Definieer wie bevoegd is om credentials uit te geven" -ForegroundColor Gray Write-Host "2. Configureer verificatieprocessen voor issuance" -ForegroundColor Gray Write-Host "3. Stel voorwaarden in voor conditional issuance" -ForegroundColor Gray Write-Host "`nSTAP 4: Ontwikkel Issuance Workflows" -ForegroundColor White Write-Host "-" * 50 -ForegroundColor Gray Write-Host "Handmatige ontwikkeling vereist:" -ForegroundColor Yellow Write-Host "1. Gebruik Microsoft Power Automate of Azure Logic Apps" -ForegroundColor Gray Write-Host "2. Integreer met Microsoft Graph API voor issuance" -ForegroundColor Gray Write-Host "3. Implementeer foutafhandeling en retry-logica" -ForegroundColor Gray Write-Host "4. Test workflows in testomgeving" -ForegroundColor Gray Write-Host "`nSTAP 5: Configureer Monitoring en Logging" -ForegroundColor White Write-Host "-" * 50 -ForegroundColor Gray Write-Host "Handmatige configuratie vereist:" -ForegroundColor Yellow Write-Host "1. Schakel audit logging in voor Verified ID activiteiten" -ForegroundColor Gray Write-Host "2. Configureer Azure Monitor waarschuwingen" -ForegroundColor Gray Write-Host "3. Stel retentieperioden in voor compliance" -ForegroundColor Gray Write-Host "4. Maak dashboards voor issuance activiteiten" -ForegroundColor Gray Write-Host "`n✅ Implementatie-instructies voltooid" -ForegroundColor Green Write-Host "Zie het artikel voor gedetailleerde stappen." -ForegroundColor Cyan } } catch { Write-Error "Fout bij implementatie: $_" exit 1 } } # ============================================================================ # FUNCTION: Invoke-Monitoring # ============================================================================ function Invoke-Monitoring { <# .SYNOPSIS Monitort credential issuance activiteiten en compliance #> Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Entra Verified ID Credential Issuance" -ForegroundColor Cyan Write-Host "Monitoring Rapport" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan try { Connect-RequiredServices Write-Host "VERIFIABLE CREDENTIAL SERVICE STATUS" -ForegroundColor White Write-Host "=" * 50 -ForegroundColor Gray $vcService = Test-VerifiableCredentialService if ($vcService.ServiceConfigured) { Write-Host "✅ Verifiable Credential Service: GECONFIGUREERD" -ForegroundColor Green } else { Write-Host "❌ Verifiable Credential Service: NIET GECONFIGUREERD" -ForegroundColor Red } foreach ($detail in $vcService.Details) { Write-Host " • $detail" -ForegroundColor Gray } Write-Host "`nISSUANCE POLICIES STATUS" -ForegroundColor White Write-Host "=" * 50 -ForegroundColor Gray $policies = Test-IssuancePolicies if ($policies.PoliciesConfigured) { Write-Host "✅ Issuance Policies: GECONFIGUREERD ($($policies.PolicyCount) policies)" -ForegroundColor Green } else { Write-Host "⚠️ Issuance Policies: NIET GECONFIGUREERD" -ForegroundColor Yellow } foreach ($detail in $policies.Details) { Write-Host " • $detail" -ForegroundColor Gray } Write-Host "`nISSUANCE ACTIVITEITEN (Laatste 30 dagen)" -ForegroundColor White Write-Host "=" * 50 -ForegroundColor Gray $activities = Get-CredentialIssuanceActivity Write-Host "Totaal aantal activiteiten: $($activities.TotalIssuances)" -ForegroundColor Cyan if ($activities.RecentIssuances.Count -gt 0) { Write-Host "`nRecente activiteiten:" -ForegroundColor White foreach ($activity in $activities.RecentIssuances) { $status = if ($activity.Result -eq "success") { "✅" } else { "❌" } Write-Host " $status $($activity.DateTime) - $($activity.Activity) - $($activity.User)" -ForegroundColor Gray } } else { Write-Host "Geen recente issuance activiteiten gevonden" -ForegroundColor Gray } if ($activities.Errors.Count -gt 0) { Write-Host "`n⚠️ Waarschuwingen:" -ForegroundColor Yellow foreach ($error in $activities.Errors) { Write-Host " • $error" -ForegroundColor Yellow } } Write-Host "`nCOMPLIANCE STATUS" -ForegroundColor White Write-Host "=" * 50 -ForegroundColor Gray $complianceStatus = @{ ServiceConfigured = $vcService.ServiceConfigured PoliciesConfigured = $policies.PoliciesConfigured MonitoringEnabled = $activities.TotalIssuances -ge 0 } $allCompliant = $complianceStatus.ServiceConfigured -and $complianceStatus.PoliciesConfigured -and $complianceStatus.MonitoringEnabled if ($allCompliant) { Write-Host "✅ OVERAL COMPLIANT" -ForegroundColor Green } else { Write-Host "⚠️ COMPLIANCE PROBLEMEN GEDETECTEERD" -ForegroundColor Yellow if (-not $complianceStatus.ServiceConfigured) { Write-Host " ❌ Verifiable Credential Service niet geconfigureerd" -ForegroundColor Red } if (-not $complianceStatus.PoliciesConfigured) { Write-Host " ❌ Issuance policies niet geconfigureerd" -ForegroundColor Red } if (-not $complianceStatus.MonitoringEnabled) { Write-Host " ⚠️ Monitoring mogelijk niet volledig geconfigureerd" -ForegroundColor Yellow } } Write-Host "`n" + ("=" * 50) -ForegroundColor Gray Write-Host "Monitoring voltooid. Zie het artikel voor gedetailleerde informatie." -ForegroundColor Cyan } catch { Write-Error "Fout bij monitoring: $_" exit 1 } } # ============================================================================ # FUNCTION: Invoke-Remediation # ============================================================================ function Invoke-Remediation { <# .SYNOPSIS Herstelt ontbrekende of incorrect geconfigureerde componenten #> Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Entra Verified ID Credential Issuance" -ForegroundColor Cyan Write-Host "Remediatie" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan try { Connect-RequiredServices $vcService = Test-VerifiableCredentialService $policies = Test-IssuancePolicies Write-Host "REMEDIATIE ACTIES" -ForegroundColor White Write-Host "=" * 50 -ForegroundColor Gray if (-not $vcService.ServiceConfigured) { Write-Host "ACTIE VEREIST: Verifiable Credential Service" -ForegroundColor Red Write-Host " - Registreer service in Azure Portal" -ForegroundColor Gray Write-Host " - Configureer Azure Key Vault voor signing" -ForegroundColor Gray Write-Host " - Geef service toegang tot Key Vault" -ForegroundColor Gray } if (-not $policies.PoliciesConfigured) { Write-Host "ACTIE VEREIST: Issuance Policies" -ForegroundColor Red Write-Host " - Definieer issuance policies" -ForegroundColor Gray Write-Host " - Configureer verificatieprocessen" -ForegroundColor Gray Write-Host " - Stel conditional issuance voorwaarden in" -ForegroundColor Gray } if ($vcService.ServiceConfigured -and $policies.PoliciesConfigured) { Write-Host "Alle componenten zijn aanwezig. Geen remediatie nodig." -ForegroundColor Green } else { Write-Host "" Write-Host "Zie het artikel voor gedetailleerde remediatie-instructies." -ForegroundColor Cyan } } catch { Write-Error "Fout bij remediatie: $_" exit 1 } } # ============================================================================ # MAIN EXECUTION # ============================================================================ try { if ($Implementation) { Invoke-Implementation } elseif ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { # Default: Monitoring Invoke-Monitoring } } catch { Write-Error $_ exit 1 }

Risico zonder implementatie

Risico zonder implementatie
Medium: Zonder Entra Verified ID credential issuance kunnen organisaties geen verifieerbare digitale credentials uitgeven die voldoen aan moderne privacy-standaarden. Dit betekent dat organisaties afhankelijk blijven van traditionele methoden zoals papieren documenten of gecentraliseerde databases voor het beheren van identiteitsgegevens. Deze methoden zijn kwetsbaar voor vervalsing, vereisen handmatige verificatieprocessen die tijdrovend en foutgevoelig zijn, en bieden gebruikers geen controle over hun eigen identiteitsgegevens. Voor Nederlandse overheidsorganisaties die digitale diensten willen aanbieden aan burgers, betekent dit dat zij niet kunnen profiteren van de voordelen van decentralized identity, zoals verbeterde privacy, verminderde afhankelijkheid van centrale systemen, en betere gebruikerservaring. Het risico is bijzonder relevant voor organisaties die moderne digitale diensten willen aanbieden of die moeten voldoen aan strikte privacy-vereisten zoals de AVG.

Management Samenvatting

Entra Verified ID credential issuance maakt het mogelijk voor organisaties om verifieerbare digitale credentials uit te geven die voldoen aan de W3C Verifiable Credentials standaard. Het issuance proces omvat het definiëren van credential types, het configureren van een verifiable credential service, het ontwikkelen van issuance workflows, en het monitoren van issuance activiteiten. Implementatie vereist ongeveer 120 uur voor ontwikkeling, configuratie en training. Credential issuance is bijzonder waardevol voor organisaties die moderne digitale diensten willen aanbieden, die moeten voldoen aan strikte privacy-vereisten zoals de AVG, of die willen profiteren van de voordelen van decentralized identity en self-sovereign identity.