<?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 ID on dp666</title><link>https://dp666.net/tags/microsoft-entra-id/</link><description>Recent content in Microsoft Entra ID on dp666</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><copyright>© 2026 Daniel Petri</copyright><lastBuildDate>Fri, 24 Apr 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://dp666.net/tags/microsoft-entra-id/index.xml" rel="self" type="application/rss+xml"/><item><title>Copilot readiness starts with permissions, not licenses</title><link>https://dp666.net/blog/copilot-readiness-permissions-not-licenses/</link><pubDate>Fri, 24 Apr 2026 10:00:00 +0200</pubDate><guid>https://dp666.net/blog/copilot-readiness-permissions-not-licenses/</guid><description>Copilot readiness is not a license assignment problem. It is an access boundary problem. If the tenant already overshares, Copilot only makes the blast radius easier to query.
That is the part that gets lost in adoption decks.
A Copilot license enables the experience. It does not make SharePoint clean. It does not remove broad sharing links. It does not review stale guests. It does not make an app registration less terrifying.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://dp666.net/blog/copilot-readiness-permissions-not-licenses/cover.png"/></item><item><title>PIM Role and Group Assignment Auditing with PowerShell</title><link>https://dp666.net/blog/pim-role-group-assignment-auditing/</link><pubDate>Mon, 09 Feb 2026 10:00:00 +0100</pubDate><guid>https://dp666.net/blog/pim-role-group-assignment-auditing/</guid><description>The Problem # If you ask “who has Global Administrator access in this tenant?” the answer is never simple. A user might have it directly. A group might be assigned the role, with PIM eligibility, and that group contains nested groups from two different business units. A service principal might hold it permanently. And all of this might be scoped to an Administrative Unit rather than the full directory.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://dp666.net/blog/pim-role-group-assignment-auditing/cover.png"/></item><item><title>Conditional Access Policy Report: Export Everything to Get an Overview</title><link>https://dp666.net/blog/conditional-access-policy-report/</link><pubDate>Mon, 15 Dec 2025 10:00:00 +0100</pubDate><guid>https://dp666.net/blog/conditional-access-policy-report/</guid><description>The Problem # You have 40 Conditional Access policies. Some target users, some target groups, some target roles. Some include locations, some exclude them. Some enforce MFA, some enforce compliant devices, some do both with different operators. And you need to answer the question: “What is our current CA posture?”
The Entra ID portal shows one policy at a time. There is no native export. There is no overview that lets you see all policies side by side with all their conditions and controls. So you end up with a shared spreadsheet that someone manually maintains and that is always out of date.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://dp666.net/blog/conditional-access-policy-report/cover.png"/></item><item><title>Automated Guest Account Lifecycle Management in Entra ID</title><link>https://dp666.net/blog/guest-account-lifecycle-management/</link><pubDate>Sun, 12 Oct 2025 10:00:00 +0100</pubDate><guid>https://dp666.net/blog/guest-account-lifecycle-management/</guid><description>The Problem # Every B2B collaboration, vendor engagement, and external consultant invitation creates a guest account in your Entra ID tenant. Over time, these accumulate. People leave partner organizations, projects end, contracts expire – but the guest accounts persist. They retain whatever access they were granted, their tokens remain valid, and nobody reviews them.
Access reviews help if someone’s running them. Usually, nobody is.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://dp666.net/blog/guest-account-lifecycle-management/cover.png"/></item><item><title>Setting Managed Identity Permissions via PowerShell (No Portal Needed)</title><link>https://dp666.net/blog/managed-identity-permissions-powershell/</link><pubDate>Fri, 26 Sep 2025 10:00:00 +0100</pubDate><guid>https://dp666.net/blog/managed-identity-permissions-powershell/</guid><description>The Problem # Managed Identities are the recommended way to authenticate Azure resources – Azure Functions, Logic Apps, Automation Accounts – to Microsoft Graph. No secrets. No certificates. No credential rotation. The identity is managed by the platform.
The problem comes when you need to assign Graph API permissions to that identity. Microsoft added basic portal support for this in late 2023 via Enterprise Applications, but it is click-heavy, not scriptable, and gives you no audit trail. If you’re deploying infrastructure as code, managing multiple identities, or need to know what every managed identity in your tenant can do – you need PowerShell.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://dp666.net/blog/managed-identity-permissions-powershell/cover.png"/></item><item><title>Audit MFA Methods Across Your Tenant via Graph API</title><link>https://dp666.net/blog/audit-mfa-methods-via-graph-api/</link><pubDate>Sat, 12 Jul 2025 10:00:00 +0100</pubDate><guid>https://dp666.net/blog/audit-mfa-methods-via-graph-api/</guid><description>The Problem # You can see which MFA methods users have registered. Entra ID tells you that. What it doesn’t tell you at a glance is which methods they’re actually using day-to-day. A user might have registered a FIDO2 key, a phone, and Microsoft Authenticator – but if they’re approving every sign-in with SMS, their registered FIDO2 key is security theater.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://dp666.net/blog/audit-mfa-methods-via-graph-api/cover.png"/></item><item><title>Reprocessing License Assignments in Entra ID with PowerShell</title><link>https://dp666.net/blog/reprocess-license-assignments-with-powershell/</link><pubDate>Sat, 10 May 2025 10:00:00 +0100</pubDate><guid>https://dp666.net/blog/reprocess-license-assignments-with-powershell/</guid><description>The Problem # Group-based licensing in Entra ID is great until it is not. License assignments get stuck in error states. A user’s license shows “Error” in the admin center. Maybe the license pool ran out temporarily and now there are available licenses, but Entra never retried. Maybe a service plan conflict caused a failure that has since been resolved. Maybe you just migrated a batch of users and the license processing stalled.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://dp666.net/blog/reprocess-license-assignments-with-powershell/cover.png"/></item><item><title>License Drift Detection: Find Users with Direct License Assignments</title><link>https://dp666.net/blog/license-drift-detection/</link><pubDate>Wed, 26 Feb 2025 10:00:00 +0100</pubDate><guid>https://dp666.net/blog/license-drift-detection/</guid><description>The Problem # You’ve moved to group-based licensing. All your Microsoft 365 licenses are assigned through Entra ID groups. Clean, governed, auditable.
Except someone gave a contractor a direct license assignment six months ago. And someone else added a license manually during a troubleshooting session and forgot to remove it. And three former employees still have licenses because they were removed from the group but had a direct assignment that nobody noticed.</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://dp666.net/blog/license-drift-detection/cover.png"/></item></channel></rss>