<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Microsoft Entra on justinverstijnen.nl</title><link>https://justinverstijnen.nl/categories/microsoft-entra/</link><description>Recent content in Microsoft Entra on justinverstijnen.nl</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 18 Apr 2026 14:32:09 +0200</lastBuildDate><atom:link href="https://justinverstijnen.nl/categories/microsoft-entra/index.xml" rel="self" type="application/rss+xml"/><item><title>Get notifications when Entra ID break glass admins are used</title><link>https://justinverstijnen.nl/get-notifications-when-entra-id-break-glass-admins-are-used/</link><pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/get-notifications-when-entra-id-break-glass-admins-are-used/</guid><description>&lt;h2 id="the-alert-solution-described"&gt;The alert solution described&lt;a class="td-heading-self-link" href="#the-alert-solution-described" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The solution we will configure looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Log Analytics Workspace&lt;/li&gt;
&lt;li&gt;Set diagnostic settings for Entra ID sign in logs to write to Log Analytics&lt;/li&gt;
&lt;li&gt;Set query to find successful or non-succesful sign in attempts (based on your needs)&lt;/li&gt;
&lt;li&gt;Set Azure Monitor alert to alert admins of the attempts taking place&lt;/li&gt;
&lt;li&gt;After all this we will test this to test if this works as excpected&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here we use all the features inside Azure only, and no 3rd party solutions.&lt;/p&gt;</description></item><item><title>How to properly secure Break Glass Accounts in your Entra ID</title><link>https://justinverstijnen.nl/how-to-properly-secure-break-glass-accounts-in-your-entra-id/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/how-to-properly-secure-break-glass-accounts-in-your-entra-id/</guid><description>&lt;h2 id="list-of-recommendations"&gt;List of recommendations&lt;a class="td-heading-self-link" href="#list-of-recommendations" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The list of recommendations which I will describe further:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Have at least 2 accounts&lt;/li&gt;
&lt;li&gt;Have the accounts cloud only -&amp;gt; not synced from Active Directory&lt;/li&gt;
&lt;li&gt;Use the .onmicrosoft.com domain and no license&lt;/li&gt;
&lt;li&gt;Exclude from all Conditional Access policies&lt;/li&gt;
&lt;li&gt;Do not use licenses on Administrator accounts&lt;/li&gt;
&lt;li&gt;Passwords must be at least 64 and max 256 characters&lt;/li&gt;
&lt;li&gt;Avoid &amp;ldquo;break glass admin&amp;rdquo; or any tip to a high privileged account&lt;/li&gt;
&lt;li&gt;Register FIDO2 key for the account&lt;/li&gt;
&lt;li&gt;Setup Monitoring for login alerts&lt;/li&gt;
&lt;li&gt;Test the accounts twice per year&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="1-have-at-least-2-accounts-with-global-administrator-permissions"&gt;1: Have at least 2 accounts with Global Administrator permissions&lt;a class="td-heading-self-link" href="#1-have-at-least-2-accounts-with-global-administrator-permissions" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Very important to have at least 2 accounts (with a maximum of 4) with Global Administrator permissions. Most of the time, we will limit the amount of privileges but we need to have at least 2 accounts with those permissions.&lt;/p&gt;</description></item><item><title>Solved - ADSync service stopped (Entra Connect Sync)</title><link>https://justinverstijnen.nl/solved-adsync-service-stopped-entra-connect-sync/</link><pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/solved-adsync-service-stopped-entra-connect-sync/</guid><description>&lt;p&gt;Sometimes, the ADSync service stops without further notice. You will see that the service has been stopped in the Services panel:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/solved-adsync-service-stopped-entra-connect-sync-6576/jv-media-6576-3fafbbf3b1d4.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;In this guide I will explain how I solved this problem using a simple PowerShell script.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-check-adsync-script"&gt;The Check ADSync script&lt;a class="td-heading-self-link" href="#the-check-adsync-script" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The PowerShell script that fixes this problem is on my GitHub page:&lt;/p&gt;
&lt;p&gt;&lt;a class="btn btn-primary" href="https://github.com/JustinVerstijnen/JV-CheckStartADSyncService"&gt;&lt;i class="fa-brands fa-github"&gt;&lt;/i&gt; Download script from GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The script simply checks if the service is running, if this is the case the script will be terminated. If the service is not running, the service will be started.&lt;/p&gt;</description></item><item><title>Match AD users using Entra Connect Sync and MSGraph</title><link>https://justinverstijnen.nl/match-active-directory-users-with-microsoft-365-using-entra-connect-sync-hard-match/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/match-active-directory-users-with-microsoft-365-using-entra-connect-sync-hard-match/</guid><description>&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/match-active-directory-users-with-microsoft-365-using-entra-connect-sync-hard-match-813/jv-media-813-da1d8fd6db71.png" alt="Entra Connect sync"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-difference-between-soft-and-hard-matching"&gt;The difference between soft and hard matching&lt;a class="td-heading-self-link" href="#the-difference-between-soft-and-hard-matching" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Most of the time the system itself will match the users automatically using soft-matching. Here the service will be matching users in both Entra ID and Active Directory by using known attributes like UserPrincipalName and ProxyAddresses.&lt;/p&gt;
&lt;p&gt;In some cases, especially when you use different Active Directory and Entra ID domains, we need to give the final tip to Entra ID to match and AD user to an Entra ID users. We will tell Entra ID what the GUID of the on-premises user is by getting that value and encode it into Base64. Then we pass Entra ID this value so it understands what local user to link with what cloud user. This process is called &amp;ldquo;hard-matching&amp;rdquo;, as we have to do this by hand or by scripting.&lt;/p&gt;</description></item><item><title>Implement Certificate-based authentication for Entra ID scripts</title><link>https://justinverstijnen.nl/implement-certificate-based-authentication-for-entra-id-scripts/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/implement-certificate-based-authentication-for-entra-id-scripts/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 20 minutes of your time&lt;/li&gt;
&lt;li&gt;An Entra ID environment if you want to test this&lt;/li&gt;
&lt;li&gt;A prepared Entra ID app registration&lt;/li&gt;
&lt;li&gt;A server or workstation running Windows to do the connection to Entra ID&lt;/li&gt;
&lt;li&gt;Some basic knowledge about Entra ID and certificates&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="how-does-these-certificates-work"&gt;How does these certificates work?&lt;a class="td-heading-self-link" href="#how-does-these-certificates-work" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Certificate based authentication means that we can authenticate ourselves to Entra ID using a certificate instead of user credentials or a password in plain text. When using some automated scripts it needs permissions to perform its actions but this means storing some sort of authentication. We don&amp;rsquo;t want to store our credentials on the server as this decreases our security and a potential risk of compromise.&lt;/p&gt;</description></item><item><title>Audit your Entra ID user role assignments</title><link>https://justinverstijnen.nl/audit-your-entra-id-user-role-assignments/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/audit-your-entra-id-user-role-assignments/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft Graph PowerShell module&lt;/li&gt;
&lt;li&gt;Entra P2 or Governance license for PIM
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Only required for fetching PIM specific data. Script can run without licenses.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="entra-id-user-role-assignments-script"&gt;Entra ID User role assignments script&lt;a class="td-heading-self-link" href="#entra-id-user-role-assignments-script" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To start off with the fast pass, my script can be downloaded here from my Github page:&lt;/p&gt;
&lt;p&gt;&lt;a class="btn btn-primary" href="https://github.com/JustinVerstijnen/JV-EntraIDGetAssignedRoles"&gt;&lt;i class="fa-brands fa-github"&gt;&lt;/i&gt; Download script from GitHub&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="using-the-entra-id-user-role-assignments-script"&gt;Using the Entra ID User role assignments script&lt;a class="td-heading-self-link" href="#using-the-entra-id-user-role-assignments-script" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I have already downloaded the script, and have it ready to execute:&lt;/p&gt;</description></item><item><title>Audit your privileged Entra ID applications</title><link>https://justinverstijnen.nl/audit-your-privileged-entra-id-applications/</link><pubDate>Wed, 25 Jun 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/audit-your-privileged-entra-id-applications/</guid><description>&lt;h2 id="entra-id-privileged-applications-report-script"&gt;Entra ID Privileged Applications report script&lt;a class="td-heading-self-link" href="#entra-id-privileged-applications-report-script" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To start off with the fast pass, my script can be downloaded here from my Github page:&lt;/p&gt;
&lt;p&gt;&lt;a class="btn btn-primary" href="https://github.com/JustinVerstijnen/JV-EntraIDGetPrivilegedEntApps"&gt;&lt;i class="fa-brands fa-github"&gt;&lt;/i&gt; Download script from GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This script can be used to get a report of all high privileged applications across the tenant. &lt;a href="https://justinverstijnen.nl/audit-your-privileged-entra-id-applications/#using-my-script-to-audit-all-high-privileged-applications"&gt;Go to this section&lt;/a&gt; for instructions of how to use the script and the output.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="what-are-enterprise-applications"&gt;What are Enterprise Applications?&lt;a class="td-heading-self-link" href="#what-are-enterprise-applications" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Enterprise Applications in Entra ID are the applications which will be registered when users need them. Somethimes, it can be for a add-on of Outlook or Teams, but other times this can be to enable Single Sign On to 3rd party applications.&lt;/p&gt;</description></item><item><title>The Zero Trust-model</title><link>https://justinverstijnen.nl/the-zero-trust-model/</link><pubDate>Mon, 25 Nov 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/the-zero-trust-model/</guid><description>&lt;p&gt;The Zero Trust model is a security model to enhance your security posture by using 3 basic principles, and segmenting aspects of your IT environment into pillars.&lt;/p&gt;
&lt;p&gt;The 3 primary principles are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify Explicitly&lt;/li&gt;
&lt;li&gt;Least privileged access&lt;/li&gt;
&lt;li&gt;Assume Breach&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At first, those terms seem very unclear to me. To further clarify the principles, i have added some practice examples to further understand what they mean:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Principle&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Outcomes&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Verify Explicity&lt;/td&gt;
 &lt;td&gt;Ensure people are really who they say they are Audit every login attempt from specific users Audit login attempts Block access from non-approved countries&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Least privileged access&lt;/td&gt;
 &lt;td&gt;Assign users only the permissions they need, not more Assign only the roles when they need them using PIM Use custom roles when default roles expose too much permissions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Assume breach&lt;/td&gt;
 &lt;td&gt;At every level, think about possible breaches Segment your network Password-based authentication only is too weak&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The model is the best illustrated like this:&lt;/p&gt;</description></item><item><title>How to solve DeletingCloudOnlyObjectNotAllowed error Entra Connect Sync</title><link>https://justinverstijnen.nl/how-to-solve-deletingcloudonlyobjectnotallowed-error-entra-connect-sync/</link><pubDate>Mon, 30 Sep 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/how-to-solve-deletingcloudonlyobjectnotallowed-error-entra-connect-sync/</guid><description>&lt;p&gt;Now and then we come across a problem with Entra Connect Sync which states &amp;ldquo;DeletingCloudOnlyObjectNotAllowed&amp;rdquo;. This error looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/how-to-solve-deletingcloudonlyobjectnotallowed-error-entra-connect-sync-5139/jv-media-5139-0b0f49fdf50a.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;This error will be shown if opening the Syncronization Service and email messages of this error will aso be sent to your tenant&amp;rsquo;s technical contact.&lt;/p&gt;
&lt;p&gt;In this guide, I will explain the cause of this problem and the options to solve the issue.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="cause-of-this-problem"&gt;Cause of this problem&lt;a class="td-heading-self-link" href="#cause-of-this-problem" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The cause of this problem is mostly an object that is first created cloud-only and then created in Active Directory, or a user that was synced previously but is deselected or deleted. Entra Connect Sync will not match the users correctly, and a the ImmutableId of the user in Entra still exists. In short; it still wants to sync a user that not exists.&lt;/p&gt;</description></item><item><title>Dynamic group for access to Windows 365</title><link>https://justinverstijnen.nl/dynamic-group-for-access-to-windows-365/</link><pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/dynamic-group-for-access-to-windows-365/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Azure AD/Entra ID/Microsoft Graph Powershell module
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/nl-nl/powershell/module/azuread/?view=azureadps-2.0"&gt;https://learn.microsoft.com/nl-nl/powershell/module/azuread/?view=azureadps-2.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;10 minutes of your time&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-are-dynamic-groups"&gt;What are Dynamic Groups?&lt;a class="td-heading-self-link" href="#what-are-dynamic-groups" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Dynamic Groups feature of Microsoft Entra is a great tool for auto-managing members of a group based on a single rule or collection of rules. Some examples of using dynamic groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Group for all users with the department &amp;ldquo;Office&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Group for all users with or without a specific attribute&lt;/li&gt;
&lt;li&gt;Group for all users with a specific license assigned&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dynamic group don&amp;rsquo;t need any manual assignment or un-assignment. Instead of that, members will be automatically added based on the rules. Great feature for automation purposes!&lt;/p&gt;</description></item></channel></rss>