<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Core Infrastructure and Security Blog articles</title>
    <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/bg-p/CoreInfrastructureandSecurityBlog</link>
    <description>Core Infrastructure and Security Blog articles</description>
    <pubDate>Tue, 02 Jun 2026 02:08:25 GMT</pubDate>
    <dc:creator>CoreInfrastructureandSecurityBlog</dc:creator>
    <dc:date>2026-06-02T02:08:25Z</dc:date>
    <item>
      <title>Redefining Security for an AI Driven World</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/redefining-security-for-an-ai-driven-world/ba-p/4521961</link>
      <description>&lt;P class="lia-align-justify"&gt;Vendors are being challenged to help customers address these challenges not as a point-solution vendor but as an &lt;STRONG&gt;end-to-end security and AI platform partner&lt;/STRONG&gt;. By integrating identity, data governance, threat protection, and AI services into a unified ecosystem, Microsoft can deliver coordinated defenses, continuous compliance monitoring, and operational efficiency gains that fragmented toolsets cannot match. The sections that follow examine each challenge in depth — why it persists, what makes it hard, and specifically how Microsoft helps organizations bridge the gap.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H2&gt;&lt;SPAN class="lia-text-color-10"&gt;Challenge 1: Safeguarding Data Privacy in the AI Era&lt;/SPAN&gt;&lt;/H2&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;AI systems are voracious consumers of data, and their adoption is outpacing the governance structures meant to protect it.&lt;/STRONG&gt; More than &lt;STRONG&gt;80% of business leaders&lt;/STRONG&gt; cite leakage of sensitive data as their primary concern with generative AI, and nearly &lt;STRONG&gt;48%&lt;/STRONG&gt; have responded by banning all use of GenAI in the workplace entirely. Meanwhile, AI is raising the value of human-generated data as a critical training input while introducing entirely new avenues for potential data leakage through models and AI-powered applications.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;Why This Challenge Persists&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;Fragmented tooling&lt;/STRONG&gt; is the most immediate obstacle. Organizations are managing security, compliance, and data governance through disconnected platforms, creating siloed visibility that undermines cohesive protection. Only &lt;STRONG&gt;31%&lt;/STRONG&gt; of organizations have established a global data architecture, and just &lt;STRONG&gt;25%&lt;/STRONG&gt; maintain a global data quality program — two foundations essential for trustworthy AI innovation. Without enterprise-wide data classification and access controls, AI systems cannot distinguish what is too sensitive to surface.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;At the same time, &lt;STRONG&gt;shadow AI&lt;/STRONG&gt; compounds the risk. When employees turn to unapproved AI tools to boost productivity, sensitive data can flow to services outside IT's purview. According to Microsoft's guide on securing the AI-powered enterprise, &lt;STRONG&gt;80% of business leaders worry that sensitive data could slip through the cracks due to unchecked AI use&lt;/STRONG&gt;. AI models also inherit the permissions of their users, meaning an over-permissioned employee can unknowingly expose critical data to an AI system. Gartner has estimated that by 2025, generative AI will account for&amp;nbsp;&lt;STRONG&gt;10% of all data produced&lt;/STRONG&gt;, further blurring the boundary between what is corporate-controlled and what is AI-generated.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Regulatory stakes add urgency: Gartner projects that by &lt;STRONG&gt;2027&lt;/STRONG&gt;, at least one global company will see its AI deployment banned by a regulator for non-compliance with data protection or AI governance legislation.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;How can organizations bridge the gap?&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;Microsoft Purview&lt;/STRONG&gt; provides a unified platform that combines data classification, data loss prevention (DLP), and AI-specific posture management to address fragmentation head-on. Its &lt;STRONG&gt;Data Security Posture Management (DSPM) for AI&lt;/STRONG&gt; centralizes visibility into how AI applications interact with sensitive data across the organization — including Microsoft 365 Copilot, enterprise AI apps, and third-party AI tools. Security teams can see, for example, how many unlabeled files were referenced by Copilot and where the greatest concentrations of unprotected data reside.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;Sensitivity labels&lt;/STRONG&gt; created in Purview travel with documents and are enforced at inference time: when an AI app retrieves a file labeled "Highly Confidential," the system ensures the requesting user holds the required EXTRACT and VIEW usage rights before returning data. In practice, an executive running a Copilot query on a labeled strategy document would see the sensitivity label clearly marked alongside the response. Purview's DLP policies now extend to AI scenarios directly, including &lt;STRONG&gt;inline browser protection&lt;/STRONG&gt; that can block or warn users attempting to paste sensitive data into third-party generative AI sites such as ChatGPT in Microsoft Edge, Chrome, or Firefox.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;For organizations handling the most sensitive workloads, &lt;STRONG&gt;Azure Confidential Computing&lt;/STRONG&gt; protects data even while it is being processed, using hardware-based Trusted Execution Environments (TEEs) that keep information encrypted in memory — invisible even to cloud operators. This capability is especially relevant for AI training and inference on regulated data, where customers need verifiable proof that their information was never exposed in plaintext during processing.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;The net result is defense-in-depth for data: &lt;STRONG&gt;discover&lt;/STRONG&gt; where sensitive information lives, &lt;STRONG&gt;classify&lt;/STRONG&gt; it so AI systems respect boundaries, &lt;STRONG&gt;enforce&lt;/STRONG&gt; policies at the point of AI interaction, and &lt;STRONG&gt;encrypt&lt;/STRONG&gt; data in use for the highest-risk scenarios — all governed through a single compliance surface.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H2&gt;&lt;SPAN class="lia-text-color-10"&gt;Challenge 2: The AI-Weaponized Threat Landscape&lt;/SPAN&gt;&lt;/H2&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;Adversaries are using AI to accelerate, scale, and personalize attacks faster than traditional defenses can respond.&lt;/STRONG&gt; In the past year, &lt;STRONG&gt;67% of all phishing attacks&lt;/STRONG&gt; employed some form of AI, and organizations now face an average of &lt;STRONG&gt;66 data security alerts per day&lt;/STRONG&gt; — up from &lt;STRONG&gt;52 in 2023&lt;/STRONG&gt;. Under this pressure, &lt;STRONG&gt;73% of cybersecurity experts&lt;/STRONG&gt; admit they have missed, ignored, or failed to respond to high-priority security alerts.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;Why This Challenge Persists&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;The speed differential&lt;/STRONG&gt; is the core problem. AI-enabled threat actors can now use models to autonomously discover, chain, and exploit vulnerabilities, compressing the window from discovery to exploitation &lt;STRONG&gt;from months to hours&lt;/STRONG&gt;. Attackers leverage generative AI for malware generation, automated vulnerability scanning, customized exploits, password cracking, sophisticated phishing and social engineering, and deepfake-based impersonation of data, email, and voice.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;At the same time, &lt;STRONG&gt;AI systems themselves introduce novel attack surfaces&lt;/STRONG&gt;. A staggering &lt;STRONG&gt;88% of organizations&lt;/STRONG&gt;, according to a Gartner Peer Community survey of 332 participants, are concerned about indirect prompt injection attacks — where malicious instructions embedded in data manipulate an AI's behavior to reveal confidential information or bypass controls. AI models are also susceptible to fabrications, initially known as hallucinations, in essence biased outputs, and data poisoning — risks that traditional vulnerability management frameworks were never designed to address.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;From an &lt;STRONG&gt;operational standpoint&lt;/STRONG&gt;, SOC analysts already spend &lt;STRONG&gt;nearly three hours per day on incidents&lt;/STRONG&gt;, accumulating costs that reach billions in aggregate. Layering AI-driven attacks on top of this existing overload threatens to break conventional security operations entirely.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;How can organizations bridge the gap?&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;Microsoft counters the asymmetry with &lt;STRONG&gt;AI-powered defense at cloud scale&lt;/STRONG&gt;, grounded in threat intelligence no single organization could replicate alone. Microsoft processes &lt;STRONG&gt;more than 100 trillion security signals per day&lt;/STRONG&gt; from endpoints, cloud services, identity systems, and the edge, and tracks &lt;STRONG&gt;1,500 unique threat actor groups&lt;/STRONG&gt; — including &lt;STRONG&gt;600 nation-state actors, 300 cybercrime groups, and 200 influence operations groups&lt;/STRONG&gt;. This intelligence feeds directly into detection models and product updates, ensuring customers benefit from patterns observed across billions of users and devices worldwide.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;Microsoft Security Copilot&lt;/STRONG&gt; is the most visible expression of this strategy. A generative AI security assistant combining advanced OpenAI models with a Microsoft-developed security-specific model, it helps analysts investigate and remediate incidents in natural language — from triaging complex alerts into actionable summaries, to reverse-engineering malicious scripts, to generating KQL queries for threat hunting. Early deployment data shows that Defender XDR customers using Security Copilot experienced a &lt;STRONG&gt;30% reduction in incident resolution time&lt;/STRONG&gt; in just three months.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;For &lt;STRONG&gt;securing AI models themselves&lt;/STRONG&gt;, Microsoft Defender for Cloud now offers &lt;STRONG&gt;AI model security&lt;/STRONG&gt; (in public preview since March 2026), which scans custom AI models in Azure Machine Learning registries and workspaces for embedded malware, unsafe operators, and exposed secrets — integrated directly into CI/CD pipelines so risky models are stopped before reaching production.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;The Microsoft Digital Defense Report 2025 reinforced this posture with seven top recommendations, led by managing cyber risk at the boardroom level, prioritizing identity protection, and investing in people alongside tools. Microsoft's approach treats AI threats not as a separate domain but as an intensification of the broader threat landscape that demands coordinated, platform-level defense.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H2&gt;&lt;SPAN class="lia-text-color-10"&gt;Challenge 3: Identity and Access Governance for AI Agents&lt;/SPAN&gt;&lt;/H2&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;AI is creating an entirely new class of digital actors that most identity systems were never designed to manage.&lt;/STRONG&gt; According to IDC, there will be approximately &lt;STRONG&gt;1.3 billion AI agents&lt;/STRONG&gt; operating across enterprises by 2028. These agents — which range from simple automation bots to fully autonomous decision-making systems — require resource access, generate data, and interact with users and services in ways that fundamentally differ from traditional applications or human users.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;Why This Challenge Persists&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;Most organizations &lt;STRONG&gt;lack lifecycle management, ownership models, and policy controls&lt;/STRONG&gt; for non-human identities, and AI agents amplify these gaps significantly. Industry analysts argue that AI agents should not be treated as just another non-human identity; they introduce &lt;STRONG&gt;complex delegation chains&lt;/STRONG&gt; between humans, agents, and services that require distinct identity, accountability, and audit models. Traditional human-in-the-loop controls may not scale for agentic systems, yet new identity-centric governance mechanisms are only beginning to emerge.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Compounding the issue, the &lt;STRONG&gt;indeterministic nature of large language models&lt;/STRONG&gt; means that an AI agent with broad access privileges may behave unpredictably — potentially taking actions its developers did not anticipate. Without proper controls, forgotten or orphaned agent identities can become easy targets for attackers, and the resulting security incidents may be difficult to attribute or contain.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;How can organizations bridge the gap?&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;Microsoft extends its identity-first Zero Trust architecture to AI through &lt;STRONG&gt;Microsoft Entra Agent ID&lt;/STRONG&gt; (in public preview). The core idea: every AI agent receives a &lt;STRONG&gt;unique, first-class identity&lt;/STRONG&gt; — discoverable, manageable, and securable alongside human users, applications, and devices. Once registered, an agent's access can be scoped using the same enterprise-grade controls as any other identity: conditional access policies, role-based access control, lifecycle governance, and risk-based protection.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;Conditional Access for Agents&lt;/STRONG&gt; allows organizations to evaluate an agent's context and risk level before granting a token. Policies can enforce controls such as restricting agents to specific network locations or blocking access when risk signals are elevated. Microsoft is also developing&amp;nbsp;&lt;STRONG&gt;RBAC guardrails&lt;/STRONG&gt; specifically tailored to AI agent behaviors, acknowledging that LLM-based agents present heightened risk when granted broad role assignments.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;For lifecycle management, Microsoft provides mechanisms for IT administrators to create &lt;STRONG&gt;automated lifecycle policies for agent identities&lt;/STRONG&gt; — including periodic attestation by designated sponsors, automated cleanup of unmonitored agents, and notifications when agent identities approach expiration. This directly addresses the "agent sprawl" problem identified by CISOs and security architects.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;At a broader level, &lt;STRONG&gt;Microsoft Agent 365&lt;/STRONG&gt; delivers a unified control plane for agents, aggregating posture, and real-time risk signals from Defender, Entra, and Purview into a single dashboard — providing discovery of both Microsoft and third-party agents, AI posture tracking, and governance controls to delegate remediation tasks to the appropriate teams. The &lt;STRONG&gt;Security Dashboard for AI&lt;/STRONG&gt; (in GA now) answers the executive-level questions: &lt;EM&gt;Which AI assets exist in our environment? What is their current security posture? Where must we take action? —&lt;/EM&gt;&amp;nbsp;covering Microsoft 365 Copilot, Copilot Studio agents, Foundry apps, and third-party AI including Google Gemini, OpenAI ChatGPT, and MCP servers&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H2&gt;&lt;SPAN class="lia-text-color-10"&gt;Challenge 4: Regulatory Compliance and Ethical AI Governance&lt;/SPAN&gt;&lt;/H2&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;The regulatory landscape for AI is evolving faster than most organizations can track, and the stakes — legal, financial, and reputational — are escalating.&lt;/STRONG&gt; More than &lt;STRONG&gt;52% of business leaders&lt;/STRONG&gt; admit they are unsure how to navigate rapidly evolving AI regulations. Frameworks like the&amp;nbsp;&lt;STRONG&gt;EU AI Act&lt;/STRONG&gt; (whose first obligations took effect on &lt;STRONG&gt;February 2, 2025&lt;/STRONG&gt;), GDPR, and sector-specific rules such as DORA are converging to create a compliance environment that demands continuous adaptation.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;Why This Challenge Persists&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;The EU AI Act alone adopts a &lt;STRONG&gt;risk-based approach&lt;/STRONG&gt; to AI regulation, classifying systems by their potential impact on health, safety, and fundamental rights and imposing corresponding obligations for documentation, transparency, human oversight, and testing. Organizations must map every AI deployment to the correct risk category — and misclassification can lead to regulatory violations. Simultaneously, the &lt;STRONG&gt;responsibilities of security leaders are expanding&lt;/STRONG&gt; to include governance and regulatory compliance oversight that traditionally belonged to legal or compliance teams.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;The NC State University Executive Perspectives on Top Risks survey of &lt;STRONG&gt;1,540 board members and C-suite executives&lt;/STRONG&gt; ranked &lt;STRONG&gt;regulatory uncertainty and fragmentation&lt;/STRONG&gt; as the eighth-highest near-term risk (2026–2028), and &lt;STRONG&gt;AI implementation risks&lt;/STRONG&gt; as sixth. Among AI-specific concerns, &lt;STRONG&gt;24% of respondents&lt;/STRONG&gt; identified lack of governance and accountability for AI deployments as a top three worry. Culturally, building internal consensus around what constitutes "responsible" AI use — across diverse business units with different risk appetites — remains a persistent organizational challenge.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;How can organizations bridge the gap?&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;Microsoft's &lt;STRONG&gt;Responsible AI program&lt;/STRONG&gt;, anchored by six durable principles established in &lt;STRONG&gt;2018&lt;/STRONG&gt; — Fairness, Reliability &amp;amp; Safety, Privacy &amp;amp; Security, Inclusiveness, Transparency, and Accountability — provides a governance blueprint that has proven stable even as AI technology evolves rapidly. These principles shape design, deployment, and oversight choices across Microsoft's products, and the company shares the lessons openly through its &lt;STRONG&gt;2025 Responsible AI Transparency Report&lt;/STRONG&gt; and customer guidance.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;In preparing for the EU AI Act specifically, Microsoft has taken a &lt;STRONG&gt;proactive, layered approach to compliance&lt;/STRONG&gt;, conducting impact assessments and adversarial red teaming on high-risk models and systems, and extending its Sensitive Uses governance program to ensure additional oversight for the most consequential AI deployments. Microsoft has also documented its approach to EU AI Act implementation to help customers understand how its products and services are being built to comply.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Operationally, the &lt;STRONG&gt;Security Dashboard for AI&lt;/STRONG&gt; provides board-ready analytics and compliance insights, aggregating risk signals across Entra, Defender, and Purview into a single executive view with recommendations and direct remediation paths. This makes AI governance visible and actionable within the same tools security leaders already use for broader risk management.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Microsoft also fosters community-driven governance through initiatives like the &lt;STRONG&gt;Security for AI Accelerated Collaboration Forum (ACF)&lt;/STRONG&gt;, which brings together CISOs, security architects, SOC leaders, identity and data owners, and platform engineers to share challenges, shape roadmap priorities, and develop reusable governance frameworks.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H2&gt;&lt;SPAN class="lia-text-color-10"&gt;Challenge 5: Integration Complexity and Workforce Readiness&lt;/SPAN&gt;&lt;/H2&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;&lt;STRONG&gt;Even when the right AI security tools exist, most organizations struggle to integrate them into existing technology stacks and to equip their people to use them effectively.&lt;/STRONG&gt; Among executives surveyed by NC State University, &lt;STRONG&gt;31%&lt;/STRONG&gt; identified integrating AI with existing technologies, business processes, and workforce as a top-three AI concern, &lt;STRONG&gt;29%&lt;/STRONG&gt; pointed to equipping the workforce to realize AI's value proposition, and &lt;STRONG&gt;28%&lt;/STRONG&gt; flagged the inability to deploy AI at a competitive pace.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;Why This Challenge Persists&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;Years of tool proliferation have left enterprises with fragmented security architectures. Organizations rely on disconnected platforms for endpoint protection, cloud workload security, identity management, and data governance — and AI capabilities are now being added to each domain independently. Microsoft's own research notes that organizations using fragmented platforms across security, compliance, and data teams see &lt;STRONG&gt;exacerbated security outcomes&lt;/STRONG&gt;. When a data loss prevention alert in one system cannot be correlated with an identity anomaly in another, threats slip through.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;At the same time, AI security as a discipline &lt;STRONG&gt;lacks comprehensive resources and seasoned experts&lt;/STRONG&gt;. Because major cloud AI platforms only became generally available in 2021–2023, organizations must often develop protective measures without much external guidance or established precedent. The cybersecurity workforce shortage is well documented; the additional demand for professionals who understand both machine learning and security compounds it further.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;The broader threat environment amplifies the urgency: cyberthreats have grown &lt;STRONG&gt;5X&lt;/STRONG&gt; in scale, Microsoft now tracks over &lt;STRONG&gt;1,500 threat actor groups&lt;/STRONG&gt; (up from roughly 300 just a few years ago), and the median time for an attacker to access confidential data after a successful phishing attack is just &lt;STRONG&gt;1 hour 12 minutes&lt;/STRONG&gt;. Teams that cannot integrate and respond quickly are structurally disadvantaged.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H3&gt;How can organizations bridge the gap?&lt;/H3&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;Microsoft's primary answer to integration complexity is a &lt;STRONG&gt;unified, cloud-native security platform&lt;/STRONG&gt; in which AI, identity, data governance, and threat protection work as a coordinated system. Security Copilot, for instance, is embedded within and integrates across &lt;STRONG&gt;Microsoft Defender XDR, Microsoft Sentinel, Microsoft Intune, Microsoft Entra, and Microsoft Purview&lt;/STRONG&gt;. An analyst can use a single natural language interface to investigate incidents drawing on data from any of these products, generate remediation steps, build reports for stakeholders, and automate routine tasks with autonomous Security Copilot agents — all without switching consoles.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;The inclusion of Security Copilot in &lt;A href="https://learn.microsoft.com/en-us/copilot/security/security-copilot-inclusion" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Microsoft 365 E5 and E7&lt;/STRONG&gt;&lt;/A&gt; licensing simplifies adoption further. Customers receive &lt;STRONG&gt;a monthly allocation of SCUs or Secure Computing Units to empower Security Copilot&lt;/STRONG&gt;, eliminating the need for separate AI security procurement. This positions integrated, agentic AI-powered security as a default capability rather than an add-on.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;For &lt;STRONG&gt;endpoint-level visibility into AI agent sprawl&lt;/STRONG&gt;, Microsoft Defender for Endpoint now automatically discovers supported AI coding agents on onboarded Windows 11 devices — including OpenClaw, Claude Code, Codex, Cursor, GitHub Copilot CLI, ChatGPT Desktop, Gemini CLI, and others — and surfaces them in the Defender portal inventory for investigation and correlation with existing device telemetry.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;On &lt;STRONG&gt;workforce enablement&lt;/STRONG&gt;, Microsoft operates the &lt;STRONG&gt;Security Copilot Adoption Hub&lt;/STRONG&gt;, which provides role-specific guidance for CISOs, threat intelligence analysts, IT admins, and data security administrators on how to embed AI into their daily workflows. The broader Microsoft Learn platform now offers modules on securing AI applications and responsible AI governance.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Microsoft's role here is as a &lt;STRONG&gt;force multiplier&lt;/STRONG&gt;: by consolidating tools, reducing integration burden, and actively investing in customer readiness, Microsoft enables organizations to convert AI from a source of complexity into an operational advantage — without leaving security behind.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H2&gt;&lt;SPAN class="lia-text-color-10"&gt;Conclusion: Turning AI Security into Competitive Advantage&lt;/SPAN&gt;&lt;/H2&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;The five challenges examined here — &lt;STRONG&gt;data exposure, adversarial threats, identity sprawl, regulatory uncertainty, and integration complexity&lt;/STRONG&gt; — will only intensify as AI adoption accelerates. Yet for organizations that address them proactively, the payoff extends well beyond risk mitigation. Robust AI security has become a source of trust with customers and regulators, a prerequisite for bold innovation, and a differentiator in markets where competitors may still be scrambling to catch up.&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;Microsoft's contribution is structural: an integrated platform where identity, data governance, threat intelligence, and compliance converge — backed by principles of Responsible AI that have remained durable since 2018 and by threat visibility at a scale (more than &lt;STRONG&gt;100 trillion signals per day&lt;/STRONG&gt;, &lt;STRONG&gt;1,500+ tracked threat actor groups&lt;/STRONG&gt;) that no single enterprise can replicate. For executive leadership, the actionable imperative is to treat AI security not as a technical footnote but as a boardroom priority — one that spans the CIO, CISO, Chief Data Officer, and business-unit leaders working together. As Microsoft's own AI security guidance articulates, cross-team collaboration, employee training, and transparent governance are just as essential as firewalls and encryption in building a secure AI future. The organizations that internalize this lesson will be those best positioned to harness AI's full potential — securely, responsibly, and at scale.&lt;/P&gt;
&lt;DIV class="lia-align-justify"&gt;
&lt;H2&gt;&lt;SPAN class="lia-text-color-10"&gt;Tech Resources:&lt;/SPAN&gt;&lt;/H2&gt;
&lt;/DIV&gt;
&lt;P class="lia-align-justify"&gt;&lt;A class="lia-external-url" href="https://www.microsoft.com/en-us/security/blog/2026/05/12/defense-at-ai-speed-microsofts-new-multi-model-agentic-security-system-tops-leading-industry-benchmark/?msockid=135fb85555cc6d1923eeaead54046cc6" target="_blank" rel="noopener"&gt;Defense at AI speed: Microsoft’s new multi-model agentic security system tops leading industry benchmark&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;&lt;A class="lia-external-url" href="https://www.microsoft.com/en-us/microsoft-cloud/blog/2025/04/23/securing-ai-navigating-risks-and-compliance-for-the-future/" target="_blank" rel="noopener"&gt;Securing AI and Navigating risks and compliance for the future&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/entra/agent-id/identity-professional/microsoft-entra-agent-identities-for-ai-agents" target="_blank" rel="noopener"&gt;Entra agent Identities for AI agents&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/security/security-for-ai/security-dashboard-for-ai" target="_blank" rel="noopener"&gt;Secure Dashboard for AI&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/copilot/security/microsoft-security-copilot" target="_blank" rel="noopener"&gt;Microsoft Security Copilot&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-align-justify"&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/copilot/security/faq-security-copilot" target="_blank" rel="noopener"&gt;Microsoft Security Copilot FAQ&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 22 May 2026 21:14:55 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/redefining-security-for-an-ai-driven-world/ba-p/4521961</guid>
      <dc:creator>edgarus71</dc:creator>
      <dc:date>2026-05-22T21:14:55Z</dc:date>
    </item>
    <item>
      <title>Build a Local Microsoft Sentinel Triage Agent in VS Code (Copilot + MCP)</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/build-a-local-microsoft-sentinel-triage-agent-in-vs-code-copilot/ba-p/4520486</link>
      <description>&lt;P&gt;Modern SOC work is not limited by data—it’s limited by the friction of collecting it. This post shows a local-first workflow that lets you investigate Microsoft Sentinel incidents from inside VS Code using GitHub Copilot Chat for reasoning and a small, deterministic MCP toolset for evidence retrieval and (optionally) approval-gated writeback.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What you’ll take away:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;How to structure a Copilot + MCP triage loop that stays grounded in Azure evidence&lt;/LI&gt;
&lt;LI&gt;A reliability pattern: fall back to KQL when Sentinel subresource APIs are flaky&lt;/LI&gt;
&lt;LI&gt;A safety pattern: draft-first, explicit-approval writeback for incident comments&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Why This Exists&lt;/H2&gt;
&lt;P&gt;Sentinel triage is powerful but fragmented: you jump between the portal, KQL, entity pivots, and case notes just to answer “what happened?” The goal here is to collapse that into a single, repeatable loop inside the editor.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Resolve the incident and pull the underlying alerts/entities&lt;/LI&gt;
&lt;LI&gt;Pivot into AzureActivity (and other logs) to identify the actor and outcome&lt;/LI&gt;
&lt;LI&gt;Use threat intelligence (TI) for context—not as the decision&lt;/LI&gt;
&lt;LI&gt;Generate an evidence-backed narrative and draft comment; write back only on explicit approval&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Design Principles&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Evidence first:&lt;/STRONG&gt; every claim must be traceable to Sentinel APIs or Log Analytics results&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Small tool surface:&lt;/STRONG&gt; fewer tools, clearer prompting, easier hardening&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reliability by design:&lt;/STRONG&gt; if one API path fails, pivot to KQL and continue&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Safety boundary:&lt;/STRONG&gt; investigation and writeback are separate, and writeback is approval-gated&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Architecture &amp;amp; Data Flow&lt;/H2&gt;
&lt;P&gt;A local TypeScript MCP server exposes a handful of triage tools to Copilot Chat in VS Code. Reads come from Sentinel + Log Analytics; writes (incident comments) are optional and require explicit approval.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Copilot Chat (VS Code)&lt;/STRONG&gt; decides the next step and summarizes outputs&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;MCP server&lt;/STRONG&gt; executes allowed tools: incident lookup, alert/entity retrieval, KQL queries, optional comment writeback&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Evidence sources&lt;/STRONG&gt;: Sentinel Incident APIs + Log Analytics tables (SecurityIncident, SecurityAlert, AzureActivity, TI tables)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Safety gate&lt;/STRONG&gt;: writeback happens only after explicit approval; otherwise you get a draft&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;Tool Surface&lt;/H2&gt;
&lt;P&gt;MCP is useful here because it separates reasoning from execution: Copilot can decide &lt;EM&gt;what&lt;/EM&gt; to do, but only the MCP server can do it—and only through tools you explicitly define and can audit.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;list_incidents&lt;/STRONG&gt; / &lt;STRONG&gt;get_incident&lt;/STRONG&gt; (ground the case)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;get_incident_alerts&lt;/STRONG&gt; / &lt;STRONG&gt;get_incident_entities&lt;/STRONG&gt; (fast path)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;run_incident_kql&lt;/STRONG&gt; (reliable fallback + pivots)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;add_incident_comment&lt;/STRONG&gt; (draft-first; writes only with approval)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;The Investigation Loop (3 Steps)&lt;/H2&gt;
&lt;H3&gt;Prompt used&lt;/H3&gt;
&lt;LI-CODE lang="powershell"&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="2324605" data-lia-user-login="sentinel" class="lia-mention lia-mention-user"&gt;sentinel&lt;/a&gt;-triage-local Investigate Sentinel incident 1478 end to end in workspace Subscription ID/Resource Group/Workspace Name. Resolve the incident ID first, collect underlying alerts and entities, enrich with AzureActivity and TI, determine whether the activity is malicious or benign, and return:
1. Investigation summary
2. Key evidence
3. Entity analysis
4. TI enrichment result
5. Risk assessment
6. Recommended disposition
7. Final incident comment draft
Rules:
- Use tool output only, no guessing.
- If alert/entity subresource APIs fail, pivot to KQL and continue.
- Do not submit the comment unless I explicitly say: APPROVE COMMENT.
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;1) Ground the incident&lt;/H3&gt;
&lt;P&gt;Resolve the human-friendly incident number to the Sentinel incident resource ID, then capture the metadata you need to drive every later pivot.&lt;/P&gt;
&lt;P&gt;Incident numbers are convenient for analysts, but the actual investigation flow depends on the underlying incident resource ID. Resolving that first gives the workflow a concrete anchor for:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Title&lt;/LI&gt;
&lt;LI&gt;Severity&lt;/LI&gt;
&lt;LI&gt;Owner&lt;/LI&gt;
&lt;LI&gt;Status&lt;/LI&gt;
&lt;LI&gt;Alert count&lt;/LI&gt;
&lt;LI&gt;Analytic rule IDs&lt;/LI&gt;
&lt;LI&gt;Incident URL&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This gives you the stable identifiers (and the URL) needed to retrieve alerts, entities, and supporting logs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;2) Collect alerts and entities (fast path)&lt;/H3&gt;
&lt;P&gt;Pull the alerts behind the incident and the entities they reference. When the incident subresource APIs behave, this is the fastest way to assemble the working set.&lt;/P&gt;
&lt;P&gt;In the ideal path, the agent can call the incident alert and entity subresources directly. That gives fast access to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Alert IDs&lt;/LI&gt;
&lt;LI&gt;Alert names&lt;/LI&gt;
&lt;LI&gt;Timestamps&lt;/LI&gt;
&lt;LI&gt;Severities&lt;/LI&gt;
&lt;LI&gt;Entities&lt;/LI&gt;
&lt;LI&gt;Provider metadata&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;3) Stay reliable: pivot to KQL when APIs fail&lt;/H3&gt;
&lt;P&gt;In real environments, the incident subresource APIs for alerts/entities are not always dependable. When they fail, the workflow switches to Log Analytics and reconstructs the same evidence via KQL—so the investigation continues.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;SecurityIncident&lt;/STRONG&gt; to recover the incident record and alert IDs&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SecurityAlert&lt;/STRONG&gt; to retrieve alert details and entities&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;AzureActivity&lt;/STRONG&gt; to determine who or what performed the operation&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;ThreatIntelligenceIndicator&lt;/STRONG&gt; and &lt;STRONG&gt;ThreatIntelIndicators&lt;/STRONG&gt; for enrichment&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;The High-Signal Pivot: AzureActivity&lt;/H2&gt;
&lt;P&gt;In the incidents I tested, AzureActivity was the fastest way to classify “suspicious deployment” alerts: it tells you who did the action, what operation ran, and whether it succeeded.&lt;/P&gt;
&lt;P&gt;The evidence showed:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The caller was a single Microsoft Entra ID object ID&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Claims_d.idtyp&lt;/STRONG&gt; = "app"&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Authorization_d.evidence.principalType&lt;/STRONG&gt; = "ServicePrincipal"&lt;/LI&gt;
&lt;LI&gt;The activity was tied to a policy assignment&lt;/LI&gt;
&lt;LI&gt;The operation was &lt;STRONG&gt;MICROSOFT.RESOURCES/DEPLOYMENTS/WRITE&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;The result was &lt;STRONG&gt;BadRequest&lt;/STRONG&gt; with &lt;STRONG&gt;InvalidTemplate&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That pattern typically points to automation (service principal + policy-driven deployment) failing due to a bad template—not an interactive attacker.&lt;/P&gt;
&lt;H2&gt;Threat Intelligence: Use It as Context&lt;/H2&gt;
&lt;P&gt;Enrich observables against TI, but treat it as corroboration: a hit is not proof, and a miss is not a clean bill of health. In my test runs, TI mainly helped refine confidence after AzureActivity and alert evidence established the likely story.&lt;/P&gt;
&lt;H2&gt;Output: An Evidence-Backed Narrative (and a Draft Comment)&lt;/H2&gt;
&lt;P&gt;Once the tools return results, Copilot’s job is synthesis: turn structured evidence into a short narrative an analyst can paste into the case.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;What happened, who/what triggered it, and whether it succeeded&lt;/LI&gt;
&lt;LI&gt;Key supporting evidence (alerts, entities, AzureActivity pivots, TI context)&lt;/LI&gt;
&lt;LI&gt;A recommended disposition and a draft incident comment&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Incident comment written back automatically (after approval) (screenshot):&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;Safety + Reliability: Approval-Gated Writeback&lt;/H2&gt;
&lt;P&gt;The agent can draft a comment automatically, but it cannot change incident state unless the analyst explicitly approves. That boundary is what makes the workflow usable in real operations.&lt;/P&gt;
&lt;P&gt;After approval, the tool submits the drafted comment directly to the Sentinel incident so the portal reflects the same evidence-backed narrative.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Default:&lt;/STRONG&gt; return the draft comment only&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;On approval:&lt;/STRONG&gt; acquire an ARM token via Azure CLI and submit via curl.exe (hardened with validation + retries)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Why This Is Worth Building&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Less context switching:&lt;/STRONG&gt; investigation happens where you already work&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;More consistency:&lt;/STRONG&gt; the same loop runs every time, with deterministic tools&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Better classification:&lt;/STRONG&gt; AzureActivity pivots reduce false “user did X” assumptions&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Safer automation:&lt;/STRONG&gt; drafts are automatic; writes are explicit and auditable&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;AI is most useful in a SOC when it is constrained: deterministic tools fetch the evidence, the model synthesizes it, and humans keep control of state changes. A local Copilot + MCP workflow hits that sweet spot—faster triage for the SOC analysts.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 04:28:02 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/build-a-local-microsoft-sentinel-triage-agent-in-vs-code-copilot/ba-p/4520486</guid>
      <dc:creator>absharan</dc:creator>
      <dc:date>2026-05-18T04:28:02Z</dc:date>
    </item>
    <item>
      <title>TLS Certificate Pinning and Best Practices in Azure Open-Source Relational Databases</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/tls-certificate-pinning-and-best-practices-in-azure-open-source/ba-p/4519531</link>
      <description>&lt;H2 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;TLS certificate pinning in &lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Azure Database for PostgreSQL and MySQL&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Transport Layer Security (TLS)&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;encrypts&amp;nbsp;data in transit between client applications and the&amp;nbsp;server and&amp;nbsp;authenticates&amp;nbsp;the service endpoint&amp;nbsp;in&amp;nbsp;client-server authentication.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure Database server certificates are issued by well-known trusted public Certificate Authorities (CAs), including Microsoft-issued certificates, and are validated by clients during the TLS handshake. Customers do not manage certificates on the server side.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/security/fundamentals/certificate-pinning" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Certificate pinning&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;is&amp;nbsp;a&amp;nbsp;client-side&amp;nbsp;security technique where an application restricts trust to a specific certificate,&amp;nbsp;for example&amp;nbsp;by&amp;nbsp;thumbprint, public key, or CA,&amp;nbsp;rather than relying solely on the default OS or platform trust store. The trust store&amp;nbsp;contains&amp;nbsp;pre-installed root&amp;nbsp;CAs and may also include&amp;nbsp;additional&amp;nbsp;certificates configured by the client. During standard TLS validation, the client will trust any server certificate that chains to one of those root&amp;nbsp;CAs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;When pinning is&amp;nbsp;used,&amp;nbsp;the client will only connect if the presented certificate chain matches&amp;nbsp;exactly&amp;nbsp;what it expects.&amp;nbsp;However, the server has no visibility into whether pinning is configured on the&amp;nbsp;client,&amp;nbsp;and&amp;nbsp;any&amp;nbsp;certificate&amp;nbsp;change (even a valid one) can cause connection failures.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Why detecting TLS certificate pinning is not possible by design&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Certificate pinning is entirely client-side logic&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;.&lt;/STRONG&gt; From the server’s&amp;nbsp;perspective,&amp;nbsp;the client either completes the TLS handshake or aborts it. The server never sees:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Which certificate(s) the client trusts&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Whether the client is comparing&amp;nbsp;root CA,&amp;nbsp;intermediate CA,&amp;nbsp;leaf&amp;nbsp;certificate&amp;nbsp;or SPKI hash&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Whether the trust decision was static or dynamic&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;TLS is designed so that trust evaluation happens entirely on the client, which is why the server has no visibility into the client’s software configuration or pinning behavior.&amp;nbsp;If the client rejects the certificate (for example, due to pinning or trust validation failures), the connection is&amp;nbsp;terminated&amp;nbsp;before any application-level error or authentication occurs.&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;What the server can see is TLS handshake failure patterns, TLS protocol, and cipher negotiation.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;TLS certificates in&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;Azure&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;OSS databases&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;&amp;nbsp;vs Azure SQL&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The way TLS certificates are handled in Azure OSS databases versus Azure SQL is a core architectural difference.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In Azure SQL (including Azure SQL Database and Azure SQL Managed Instance), the database engine does not directly present a certificate bound to a specific server or host instance. Instead, client connections&amp;nbsp;terminate&amp;nbsp;at a service-managed endpoint. This abstraction allows certificates to be issued and rotated centrally by the service.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;From the client’s perspective, it connects to a service-level endpoint (for example, &amp;lt;server&amp;gt;.database.windows.net), and the certificate chain&amp;nbsp;represents&amp;nbsp;the Azure SQL service rather than a specific machine. Clients are expected to trust the platform CA chain and&amp;nbsp;validate&amp;nbsp;the hostname. As a result, certificate pinning is&amp;nbsp;generally not&amp;nbsp;feasible&amp;nbsp;or useful for Azure SQL, because the TLS endpoint is abstracted and managed by the service.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This is also why Azure SQL client&amp;nbsp;configuration&amp;nbsp;guidance emphasizes using Encrypt=True and&amp;nbsp;TrustServerCertificate=False, ensuring that clients rely on standard TLS validation against the platform-managed certificate chain.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In contrast, Azure Database for PostgreSQL and MySQL expose a more traditional, database engine–level TLS surface where clients directly&amp;nbsp;validate&amp;nbsp;the server certificate chain, making certificate pinning possible. TLS is negotiated by the database engine itself, and the server presents a certificate chain anchored in public or regional certificate authorities.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This results in a fundamentally different trust model. In Azure OSS databases, TLS trust is primarily client-managed,&amp;nbsp;whereas&amp;nbsp;in Azure SQL it is platform-managed. While OSS customers have greater control over certificate validation, they are also responsible for&amp;nbsp;appropriately&amp;nbsp;managing trust configuration. Misconfigurations or overly rigid validation, such as pinning specific certificates, can increase operational risk, particularly during certificate rotations.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;One of the most common complications during certificate rotations is certificate pinning.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;H2 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Why certificate pinning is risky&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:360,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;While certificate pinning was historically used to reduce the risk of man-in-the-middle attacks, it introduces significant operational fragility in cloud environments, particularly during certificate rotations.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Server certificates and certificate authorities (CAs) must be rotated periodically to&amp;nbsp;maintain&amp;nbsp;security and compliance. In Azure Database for PostgreSQL and MySQL,&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;when certificate pinning is used&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;, clients bind trust to a specific certificate or CA. As a result,&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;any change to the server certificate chain—including CA updates—can cause connection failures&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;, even when the new certificates are fully valid and secure.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Recommended TLS certificate trust model for Azure OSS databases&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Instead of pinning, adopt a&amp;nbsp;CA&lt;/SPAN&gt;‑&lt;SPAN data-contrast="auto"&gt;based&amp;nbsp;trust model that allows certificates to change safely.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Trust root CAs, not individual certificates&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Configure clients to use standard TLS validation against Azure-documented root CAs, rather than restricting trust to specific certificates or a narrowly scoped set of certificate authorities. Avoid configurations that effectively implement certificate pinning—such as trusting only a single certificate, public key, or limited CA set—unless explicitly&amp;nbsp;required.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Maintain a flexible and up-to-date trust store&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Clients rely on a trust store, key store, or equivalent certificate bundle to&amp;nbsp;validate&amp;nbsp;server certificates during TLS negotiation. While the exact format and configuration vary by client and environment, the same core principles apply across PostgreSQL and MySQL implementations.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Include the&amp;nbsp;appropriate root&amp;nbsp;and intermediate certificate authorities (CAs)&amp;nbsp;required&amp;nbsp;to&amp;nbsp;validate&amp;nbsp;the server certificate chain&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Ensure that trust stores are periodically reviewed and updated in line with provider guidance and announced certificate authority changes.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;For the current TLS certificates visit the&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/postgresql/security/security-tls" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Azure Database for PostgreSQL documentation&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;and&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/mysql/flexible-server/security-tls" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Azure Database for MySQL documentation&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559685&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Use certificate validation modes that rely on standard CA-based trust rather than pinning&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;For&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;PostgreSQL&lt;/STRONG&gt; client&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;configurations, prefer:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;sslmode=verify-ca&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Validates the server certificate chain against trusted&amp;nbsp;CAs&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;sslmode=verify-full&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Verifies CA and hostname match&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;For&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;MySQL &lt;/STRONG&gt;client&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;configurations, prefer:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;ssl-mode=VERIFY_CA&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Validates the server certificate chain against trusted&amp;nbsp;CAs&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;ssl-mode=VERIFY_IDENTITY&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Validates CA&amp;nbsp;and&amp;nbsp;hostname (like PostgreSQL verify-full)&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;These modes ensure that clients&amp;nbsp;validate&amp;nbsp;the&amp;nbsp;server&amp;nbsp;certificate chain against trusted&amp;nbsp;CAs, and in stricter modes, verify hostname identity. They do not imply certificate pinning by themselves. They rely on standard CA-based trust.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Configurations only become rigid when trust is narrowly restricted,&amp;nbsp;such&amp;nbsp;as to&amp;nbsp;a single certificate or limited CA set,&amp;nbsp;often through custom or overly constrained trust stores. This effectively introduces certificate pinning.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;When properly configured, these modes authenticate the service endpoint and protect against spoofing, while&amp;nbsp;remaining&amp;nbsp;resilient to certificate rotations.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Maintain a combined&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;CA&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;&amp;nbsp;during&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;certificate&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;rotations&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure may rotate root or intermediate&amp;nbsp;CAs&amp;nbsp;over time.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;When Azure announces a CA&amp;nbsp;rotation:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Add&amp;nbsp;the&amp;nbsp;new root&amp;nbsp;and intermediate CAs&amp;nbsp;to&amp;nbsp;the client&amp;nbsp;trust store before the rotation&amp;nbsp;begins&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Retain&amp;nbsp;existing root&amp;nbsp;or intermediate&amp;nbsp;CAs&amp;nbsp;until the transition is&amp;nbsp;fully&amp;nbsp;complete&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Avoid removing older&amp;nbsp;certificates&amp;nbsp;prematurely&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This combined CA approach, using both the current and upcoming certificate authorities during the transition window, allows clients to continue&amp;nbsp;validating&amp;nbsp;the&amp;nbsp;server&amp;nbsp;certificate chain without interruption.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{}"&gt;&lt;SPAN data-contrast="auto"&gt;As you review your current client configurations, ensure your applications rely on CA-based trust, avoid overly restrictive certificate configurations such as certificate pinning, and are prepared to handle routine certificate rotations without disruption.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 14 May 2026 00:53:22 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/tls-certificate-pinning-and-best-practices-in-azure-open-source/ba-p/4519531</guid>
      <dc:creator>TameikaL</dc:creator>
      <dc:date>2026-05-14T00:53:22Z</dc:date>
    </item>
    <item>
      <title>Check This Out! (CTO!) Guide (April 2026)</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/check-this-out-cto-guide-april-2026/ba-p/4519149</link>
      <description>&lt;P&gt;&lt;A href="https://techcommunity.microsoft.com/users/tysonpaul/322025" data-lia-auto-title="Member: TysonPaul | Microsoft Community Hub" data-lia-auto-title-active="0" target="_blank"&gt;Member: TysonPaul | Microsoft Community Hub&lt;/A&gt;&lt;/P&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuregovernanceandmanagementblog/announcing-public-preview-for-essential-machine-management/4502721" target="_blank" rel="noopener noreferrer"&gt;Announcing Public Preview for Essential Machine Management&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azuregovernanceandmanagementblog" target="_blank" rel="noopener noreferrer"&gt;Azure Governance and Management&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/meagan%20mccrory/73917" target="_blank" rel="noopener noreferrer"&gt;Meagan McCrory&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/06/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft has announced the public preview of Essential Machine Management within Azure’s Compute Infrastructure Hub. This new feature streamlines onboarding and management of servers and VMs across Azure and multi-cloud environments by enabling core capabilities like monitoring, updates, inventory, and configuration at the subscription level. It offers out-of-the-box best practices, automatic enrollment, and consistent operational coverage. Azure VMs and certain Arc-enabled servers can use these features at no extra cost, while other Arc-enabled servers will be charged $9 per server per month once billing begins. The preview is available in the Azure Portal.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuregovernanceandmanagementblog/new-local-management-group-for-alz--updated-sovereign-policies-for-slz/4515156" target="_blank" rel="noopener noreferrer"&gt;New Local Management Group for ALZ &amp;amp; Updated Sovereign Policies for SLZ&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azuregovernanceandmanagementblog" target="_blank" rel="noopener noreferrer"&gt;Azure Governance and Management&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/jtracey93msft/1418804" target="_blank" rel="noopener noreferrer"&gt;jtracey93msft&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/27/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft has introduced a new ‘Local’ Management Group in both Azure Landing Zone (ALZ) and Sovereign Landing Zone (SLZ) architectures to better govern Azure Local workloads and facilitate exit planning to Azure Local disconnected operations. Additionally, SLZ now uses new built-in policy initiatives aligned to sovereign control levels 1 (Data Residency), 2 (Encryption-at-Rest/Transit), and 3 (Encryption-in-Use), replacing previous broad baselines for clearer mapping, simplified compliance, and reduced maintenance. These updates improve governance, portability, and policy alignment for customers with sovereignty or resiliency requirements.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/fasttrackblog/copilot-agents-are-scaling-faster-than-most-organizations-expected/4510366" target="_blank" rel="noopener noreferrer"&gt;Copilot agents are scaling faster than most organizations expected&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/fasttrack/blog/fasttrackblog" target="_blank" rel="noopener noreferrer"&gt;FastTrack&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/juliehersum/2538158" target="_blank" rel="noopener noreferrer"&gt;JulieHersum&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/17/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article discusses how Copilot agents are being adopted rapidly across organizations, moving from small pilots to broader enterprise use. While early adoption is smooth, scaling introduces new challenges, such as overlapping efforts, unclear ownership, and the need for coordination. The focus shifts from building agents to managing them effectively at scale, requiring clear frameworks and leadership alignment. Microsoft recommends a CIO-level framework to address these issues, helping organizations balance experimentation with coherence and guide responsible growth as Copilot agents become integral to business operations.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/fasttrackblog/copilot-chat-in-financial-services-is-productivity-moving-faster-than-policy/4510910" target="_blank" rel="noopener noreferrer"&gt;Copilot Chat in financial services: Is productivity moving faster than policy?&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/fasttrack/blog/fasttrackblog" target="_blank" rel="noopener noreferrer"&gt;FastTrack&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/juliehersum/2538158" target="_blank" rel="noopener noreferrer"&gt;JulieHersum&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/13/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article discusses how financial services organizations adopting Copilot Chat are experiencing increased productivity, but this rapid progress is challenging existing governance and compliance policies. As usage expands beyond initial experimentation, leaders are seeking structured approaches to ensure responsible, repeatable adoption without increasing risk. Microsoft 365 Accelerator offers a planning kit to help organizations scale Copilot Chat while maintaining oversight, audit readiness, and governance, focusing on decision-making and risk management rather than just features. The article invites readers to reflect on their experiences and consider how to balance productivity with regulatory requirements.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearchitectureblog/flexible-cooling-for-ai-growth-how-zonal-architecture-supports-diverse-hardware-/4514042" target="_blank" rel="noopener noreferrer"&gt;Flexible Cooling for AI Growth: How Zonal Architecture Supports Diverse Hardware Needs&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurearchitectureblog" target="_blank" rel="noopener noreferrer"&gt;Azure Architecture&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/stsolo/3447054" target="_blank" rel="noopener noreferrer"&gt;stsolo&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/28/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft is introducing zonal cooling in its next-generation AI datacenters to address the diverse cooling needs of modern hardware, particularly AI accelerators requiring liquid cooling and general-purpose equipment relying on air cooling. Zonal cooling uses multiple independent water loops at different temperatures, improving energy efficiency, reducing carbon emissions, and supporting higher server density. This flexible architecture adapts to evolving hardware requirements, enhances performance, and aligns with Microsoft’s sustainability goals. Facility-level zonal cooling is expected to reduce Power Usage Effectiveness (PUE) by up to 10%, making datacenters more efficient and future-ready.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearchitectureblog/running-diffusion-models-at-scale-on-aks/4513687" target="_blank" rel="noopener noreferrer"&gt;Running Diffusion Models at Scale on AKS&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurearchitectureblog" target="_blank" rel="noopener noreferrer"&gt;Azure Architecture&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/prabaldeb/3248371" target="_blank" rel="noopener noreferrer"&gt;PrabalDeb&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/29/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article outlines best practices for running diffusion models at scale on Azure Kubernetes Service (AKS). It emphasizes separating API, dispatch, and GPU execution layers for flexible scaling, security, and observability. Key recommendations include isolating GPU workloads, leveraging Kubernetes-native or Service Bus/KEDA-based dispatch, using persistent storage for model caching, enforcing strong identity and secrets management, and instrumenting both application and hardware metrics. The architecture supports scalable, secure, and automated deployments, making AKS a robust platform for production-grade diffusion workloads beyond simple model hosting. Alternatives like KAITO suit less-customized scenarios.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/containers/announcing-log-monitor-v2-2-0-release-candidate/4511286" target="_blank" rel="noopener noreferrer"&gt;Announcing Log Monitor v2.2.0 Release Candidate&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/windows-server/blog/containers" target="_blank" rel="noopener noreferrer"&gt;Containers&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/bob_sira/2927623" target="_blank" rel="noopener noreferrer"&gt;Bob_Sira&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/15/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Log Monitor v2.2.0 Release Candidate introduces a switch from Boost.JSON to the lightweight nlohmann/json library, reducing dependencies and build complexity while remaining backward compatible. This version adds an IIS on AKS deployment example, fixes several configuration parsing bugs, and addresses a path traversal vulnerability. The build system now uses CMake and vcpkg. Upgrading from v2.1.x requires no config changes, but output paths have changed. Updated CI/CD pipelines support the new dependency. Release binaries and documentation are available on GitHub, and user feedback is encouraged.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/containers/simplifying-gmsa-for-windows-containers-on-aks-open-source-tooling-now-available/4512167" target="_blank" rel="noopener noreferrer"&gt;Simplifying gMSA for Windows Containers on AKS: Open-Source Tooling Now Available&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/windows-server/blog/containers" target="_blank" rel="noopener noreferrer"&gt;Containers&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/natashapolito/1956890" target="_blank" rel="noopener noreferrer"&gt;natashapolito&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/23/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft has released an open-source tool, available on GitHub, to simplify configuring Group Managed Service Accounts (gMSA) for Windows containers on Azure Kubernetes Service (AKS). This tooling helps organizations modernize Active Directory-dependent Windows applications for Kubernetes without major code changes, enabling secure AD authentication without domain-joined nodes. The repository includes a PowerShell module, automation scripts, and documentation to streamline gMSA setup and validation. Aimed at teams running or modernizing AD-integrated workloads on AKS, the tool reduces manual configuration and invites community feedback to further improve usability.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/askds/so-you%E2%80%99ve-disabled-windows-hello-for-business-but-the-user-can-still-sign-in-usi/4509318" target="_blank" rel="noopener noreferrer"&gt;So, You’ve disabled Windows Hello for Business, but the User can still Sign-in using a PIN&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/windows-server/blog/askds" target="_blank" rel="noopener noreferrer"&gt;Ask the Directory Services Team&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/brentcrummey/1728711" target="_blank" rel="noopener noreferrer"&gt;BrentCrummey&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/27/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Disabling Windows Hello for Business (WHfB) via Intune or Group Policy does not remove a user’s existing PIN sign-in if it was previously provisioned. The PIN option remains, and its removal button is greyed out due to policy design. To fully remove WHfB PIN sign-in, the user must manually delete their Windows Hello container using “certutil.exe -deleteHelloContainer,” after which they cannot re-enroll as long as the policy is disabled. This behavior is expected and documented by Microsoft.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/askds/troubleshooting-tpm-certificate-how-to-fix-the-missing-stored-keyset-error/4515646" target="_blank" rel="noopener noreferrer"&gt;Troubleshooting TPM Certificate: How to Fix the "Missing Stored Keyset" Error&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/windows-server/blog/askds" target="_blank" rel="noopener noreferrer"&gt;Ask the Directory Services Team&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/mdhabibnawaz/1129389" target="_blank" rel="noopener noreferrer"&gt;mdhabibnawaz&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/30/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article explains the "missing stored keyset" error in TPM certificates, which occurs when applications can’t access necessary keys due to corrupted registry entries, permission issues, or misconfiguration. It provides a step-by-step troubleshooting guide: updating Windows and TPM firmware, verifying TPM status, checking certificate keysets, repairing certificates, resetting permissions, and re-enrolling certificates if needed. The article emphasizes maintaining backups, staying updated, and consulting official documentation or support if problems persist, highlighting the importance of proper TPM management for system security.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurestorageblog/ahead-helps-us-launch-the-strategic-azure-storage-services-partner-program/4516355" target="_blank" rel="noopener noreferrer"&gt;AHEAD helps us launch the Strategic Azure Storage Services Partner Program&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurestorageblog" target="_blank" rel="noopener noreferrer"&gt;Azure Storage&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/karautenmsft/70874" target="_blank" rel="noopener noreferrer"&gt;karautenMSFT&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/30/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; AHEAD, a premier Microsoft Cloud and AI Partner, has helped launch the Strategic Azure Storage Services Partner (SASS) Program, leveraging its extensive expertise in infrastructure, storage, and cloud solutions. AHEAD provides assessments, migration services, and access to best-of-breed ISV partners, ensuring Azure Storage customers receive optimal solutions for their needs. With over 1,000 Microsoft certifications and global reach, AHEAD delivers tailored guidance and implementation, driving innovation and resiliency for Azure users. Their collaboration has shaped the SASS channel strategy, benefiting customers with enhanced consulting, design, and migration services.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurestorageblog/prefix-scoped-access-for-user-delegation-sas-is-now-generally-available-for-azur/4516010" target="_blank" rel="noopener noreferrer"&gt;Prefix-scoped access for User Delegation SAS is now generally available for Azure Blob Storage&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurestorageblog" target="_blank" rel="noopener noreferrer"&gt;Azure Storage&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/despindola/3471420" target="_blank" rel="noopener noreferrer"&gt;despindola&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/30/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Prefix-scoped access for User Delegation SAS is now generally available in all Azure regions for Azure Blob and Data Lake Storage. This feature allows administrators to grant access to all blobs within a specific prefix or virtual directory, rather than at the container or individual blob level. This simplifies permission management, especially for multi-tenant or organized data structures, and reduces the need for multiple tokens. Prefix-scoped SAS incurs no additional cost and is supported in the latest REST API and .NET SDK versions. Microsoft recommends using prefix-scoped SAS for more granular access control when SAS is required.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/filecab/announcing-native-powershell-tooling-for-refs-snapshots/4516377" target="_blank" rel="noopener noreferrer"&gt;Announcing Native PowerShell Tooling for ReFS Snapshots&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/windows-server/blog/filecab" target="_blank" rel="noopener noreferrer"&gt;Storage at Microsoft&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/christina_curlette/3352446" target="_blank" rel="noopener noreferrer"&gt;Christina_Curlette&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/30/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft has released an open-source PowerShell module for native ReFS snapshot management, streamlining scripting and automation tasks. The module wraps the refsutil streamsnapshot utility, offering cmdlets for creating, listing, deleting, comparing, restoring, and exporting file-level snapshots with pipeline support and structured error handling. Designed for Windows Server 2019+ and Windows 10+, it simplifies operational safety, automated comparison, maintenance, and development workflows. Documentation and examples are available on GitHub, enabling easier integration of ReFS snapshots into PowerShell-based storage management.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurenetworksecurityblog/public-preview-managed-identity-support-for-graphical-session-recording/4513139" target="_blank" rel="noopener noreferrer"&gt;Public Preview: Managed Identity support for graphical session recording&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure-network-security/blog/azurenetworksecurityblog" target="_blank" rel="noopener noreferrer"&gt;Azure Network Security&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/aarontsang/2719570" target="_blank" rel="noopener noreferrer"&gt;aarontsang&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/30/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Bastion now supports managed identities for graphical session recording in public preview. This feature allows Bastion to authenticate directly to an Azure storage account for saving session recordings using either a system-assigned or user-assigned managed identity, eliminating the need for manual credential management. Authentication is handled via Microsoft Entra ID, simplifying setup and aligning with Zero Trust principles. Administrators can centrally control access with Azure RBAC, streamlining management across multiple deployments. To use this feature, enable managed identity, assign appropriate roles, and configure the storage account as outlined in the Azure Portal.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurenetworksecurityblog/general-availability-of-default-ruleset-drs-2-2-for-web-application-firewall/4515762" target="_blank" rel="noopener noreferrer"&gt;General availability of Default Ruleset (DRS) 2.2 for Web Application Firewall&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure-network-security/blog/azurenetworksecurityblog" target="_blank" rel="noopener noreferrer"&gt;Azure Network Security&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/andrewmathu/1367090" target="_blank" rel="noopener noreferrer"&gt;andrewmathu&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/29/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Web Application Firewall (WAF) now supports Default Rule Set (DRS) 2.2 for Azure Front Door and Application Gateway, offering enhanced security based on OWASP CRS 3.3.4 and Microsoft Threat Intelligence. DRS 2.2 improves detection for web vulnerabilities, reduces false positives with configurable paranoia levels, and provides broader, modern protection. Upgrading resets customizations, so planning is advised. DRS 2.2 delivers consistent and advanced security for internet-facing applications, enabling organizations to better defend against evolving threats while maintaining operational flexibility.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/itopstalkblog/join-us-at-microsoft-azure-infra-summit-2026-for-deep-technical-azure-infrastruc/4509368" target="_blank" rel="noopener noreferrer"&gt;Join us at Microsoft Azure Infra Summit 2026 for deep technical Azure infrastructure content&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/itopstalk/blog/itopstalkblog" target="_blank" rel="noopener noreferrer"&gt;ITOps Talk&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/pierre_roman/140097" target="_blank" rel="noopener noreferrer"&gt;Pierre_Roman&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/07/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft Azure Infra Summit 2026 is a free, virtual event for IT professionals, platform engineers, SREs, and infrastructure teams, held May 19-21, 2026. Focused on advanced, engineering-led sessions (L300-400), it offers deep technical content on Azure infrastructure topics like hybrid operations, networking, storage, observability, and governance. The event emphasizes practical guidance, real-world examples, and peer-to-peer learning, aiming to equip attendees with actionable insights for building and operating Azure environments. Register at https://aka.ms/MAIS-Reg.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/itopstalkblog/internet-information-services-learning-path/4511332" target="_blank" rel="noopener noreferrer"&gt;Internet Information Services Learning Path&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/itopstalk/blog/itopstalkblog" target="_blank" rel="noopener noreferrer"&gt;ITOps Talk&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/orinthomas/251291" target="_blank" rel="noopener noreferrer"&gt;OrinThomas&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/14/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The "Internet Information Services Learning Path" provides a structured curriculum for learning to deploy, configure, manage, secure, and troubleshoot IIS on Windows Server and client systems. Covering both legacy and modern use cases, the modules include IIS installation, website and application configuration, administration, security best practices, and performance optimization. The learning path is relevant to most supported IIS versions and includes new features for Windows Server 2025, offering a comprehensive guide for effective IIS management and maintenance.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuremigrationblog/from-discovery-to-executive-presentation-plan-your-migration-with-azure-migrate-/4508500" target="_blank" rel="noopener noreferrer"&gt;From Discovery to Executive Presentation: Plan Your Migration with Azure Migrate in Hours&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azuremigrationblog" target="_blank" rel="noopener noreferrer"&gt;Azure Migration and Modernization&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/shikher/934388" target="_blank" rel="noopener noreferrer"&gt;Shikher&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/03/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Migrate streamlines the migration planning process by consolidating environment discovery, workload tagging, application grouping, and executive reporting into a single workflow. Using the Azure Migrate Collector, organizations can quickly scan their infrastructure offline, classify assets, and auto-group workloads into applications. The tool generates executive-ready PowerPoint reports with modernization, migration recommendations, security insights, and cost analysis, replacing manual processes that previously took weeks. Application-level assessments provide detailed migration strategies, supporting informed decision-making. This approach accelerates Azure migration planning for IT teams and partners, enabling rapid, data-driven presentations to stakeholders.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuremigrationblog/production-cutover-in-cloud-native-migrations/4509924" target="_blank" rel="noopener noreferrer"&gt;Production Cutover in Cloud-Native Migrations&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azuremigrationblog" target="_blank" rel="noopener noreferrer"&gt;Azure Migration and Modernization&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/dhruti/3444042" target="_blank" rel="noopener noreferrer"&gt;dhruti&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/15/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article highlights that production cutover during cloud-native migrations, such as to Azure Kubernetes Service (AKS), involves more than just successful deployment—it requires coordinated runtime orchestration across compute, networking, storage, and integrations. Operational issues often arise only after traffic is routed, emphasizing the need for thorough validation and alignment of all dependencies, including disaster recovery, batch processing, and security. Effective cutover is an orchestrated event ensuring runtime readiness, not just deployment, with success dependent on continuous validation and system-wide coordination throughout the migration lifecycle.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/fasttrackforazureblog/deploying-dns-private-resolvers-and-private-dns-zones-for-azure-ai-supported-ser/4515645" target="_blank" rel="noopener noreferrer"&gt;Deploying DNS Private Resolvers and Private DNS Zones for Azure AI Supported Services&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/fasttrack/blog/fasttrackforazureblog" target="_blank" rel="noopener noreferrer"&gt;FastTrack for Azure&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/munieswar_avulapalli/1127849" target="_blank" rel="noopener noreferrer"&gt;munieswar_avulapalli&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/28/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article explains how to deploy DNS Private Resolvers and Private DNS Zones for Azure AI-supported services within private networks. Private DNS Zones enable secure, internal domain resolution across global Azure VNets, while DNS Private Resolvers provide managed, regional DNS resolution between Azure and on-premises environments. It highlights the importance of linking VNets to DNS zones for name resolution and clarifies common misconceptions about VNet peering. The article includes a step-by-step end-to-end flow for DNS queries and emphasizes connectivity verification tools like PsPing. Public networks and DNS zones are mentioned but not discussed in detail.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurecompute/ai-powered-downtime-investigation-for-azure-vms-automating-root-cause-analysis/4513473" target="_blank" rel="noopener noreferrer"&gt;AI-Powered Downtime Investigation for Azure VMs: Automating Root Cause Analysis&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurecompute" target="_blank" rel="noopener noreferrer"&gt;Azure Compute&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/jon_andoni_baranda/3305512" target="_blank" rel="noopener noreferrer"&gt;Jon_Andoni_Baranda&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/22/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article describes how Microsoft Azure uses AI to automate and accelerate root cause analysis for virtual machine downtime. Leveraging the Model Context Protocol (MCP), the system automatically investigates incidents by querying live telemetry, analyzing logs, building recovery timelines, and generating structured reports. This reduces manual investigation time from up to an hour to under five minutes, ensures consistent, thorough analysis for every incident, and streamlines ownership assignment. The AI system encodes expert knowledge, allowing engineers to focus on decision-making rather than data gathering, significantly improving efficiency and incident response across Azure's infrastructure.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/designing-outbound-connectivity-for-private-subnets-in-azure/4514258" target="_blank" rel="noopener noreferrer"&gt;Designing Outbound Connectivity for "Private Subnets" in Azure&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/cis/blog/coreinfrastructureandsecurityblog" target="_blank" rel="noopener noreferrer"&gt;Core Infrastructure and Security&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/alexeyn1/2185710" target="_blank" rel="noopener noreferrer"&gt;alexeyn1&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/23/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Private subnets in Azure disable default outbound internet access, requiring architects to deliberately design outbound connectivity. Three main patterns exist: NAT Gateway for scalable, predictable egress; Azure Firewall for secure, governed, and audited flows; and Load Balancer Outbound for legacy scenarios. Each has strengths and limitations, with NAT Gateway suited for simple, high-scale egress, Azure Firewall for compliance and security, and Load Balancer for transitional or legacy architectures. The key principle is to choose the outbound method based on workload risk and requirements, ensuring intentional, documented, and governed internet access.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/running-multimedia-ai-models-on-container-apps-with-serverless-gpu-a100--t4/4513063" target="_blank" rel="noopener noreferrer"&gt;Running multimedia AI models on Container Apps with Serverless GPU (A100 &amp;amp; T4)&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/cis/blog/coreinfrastructureandsecurityblog" target="_blank" rel="noopener noreferrer"&gt;Core Infrastructure and Security&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/houssemdellai/632520" target="_blank" rel="noopener noreferrer"&gt;HoussemDellai&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/20/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article guides users on deploying multimedia AI models, like ComfyUI, on Azure Container Apps using serverless GPU profiles (A100 &amp;amp; T4). It details infrastructure provisioning with Terraform, model downloading, and monitoring via Azure Log Analytics. Key notes cover storage setup, manual creation of GPU profiles, and protocol choices (SMB vs NFS). Cost optimization tips are provided by right-sizing resources. Users can run text-to-image and text-to-video workflows. The article includes disclaimers about the sample scripts' support and reliability, and highlights the need for manual steps due to Terraform limitations.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearcblog/announcing-private-preview-deploy-ansible-playbooks-using-azure-policy-via-machi/4507848" target="_blank" rel="noopener noreferrer"&gt;Announcing Private Preview: Deploy Ansible Playbooks using Azure Policy via Machine Configuration&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurearcblog" target="_blank" rel="noopener noreferrer"&gt;Azure Arc&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/alinetran/1972499" target="_blank" rel="noopener noreferrer"&gt;alinetran&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/01/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft has announced a private preview allowing Ansible playbooks to be deployed via Azure Policy using Machine Configuration on Azure and Azure Arc-enabled Linux machines. This integration enables organizations to automate configuration management and compliance enforcement for Linux servers without needing an Ansible control node. The solution offers centralized policy-based governance, drift detection, and automatic remediation, with compliance results visible in Azure dashboards. This unifies management across Windows and Linux environments, whether in the cloud, on-premises, or at the edge, leveraging existing Ansible investments within Azure Arc’s unified security and compliance framework.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearcblog/automating-arc-enabled-sql-server-license-type-configuration-with-azure-policy/4500326" target="_blank" rel="noopener noreferrer"&gt;Automating Arc-enabled SQL Server license type configuration with Azure Policy&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurearcblog" target="_blank" rel="noopener noreferrer"&gt;Azure Arc&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/tomclaes/1562753" target="_blank" rel="noopener noreferrer"&gt;TomClaes&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/12/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article explains how to automate the configuration of SQL Server license types on Azure Arc-enabled resources using Azure Policy. It details steps for deploying and assigning policies via PowerShell, automating remediation tasks, and handling role assignments. The approach supports both existing (brownfield) and new (greenfield) environments, ensuring compliance and enabling pay-as-you-go billing. The policy can standardize, migrate, or selectively update license types at scale, and includes mechanisms for recurring billing consent. Tools for monitoring compliance, such as KQL queries and Azure Workbooks, are also provided.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurevirtualdesktopblog/app-attach-in-azure-virtual-desktop-now-supports-windows-server-2025-and-windows/4511729" target="_blank" rel="noopener noreferrer"&gt;App attach in Azure Virtual Desktop now supports Windows Server 2025 and Windows Server 2022&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurevirtualdesktopblog" target="_blank" rel="noopener noreferrer"&gt;Azure Virtual Desktop&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/michelle_moya/3222392" target="_blank" rel="noopener noreferrer"&gt;Michelle_Moya&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/16/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; App attach in Azure Virtual Desktop now supports Windows Server 2025 and 2022, allowing dynamic delivery of MSIX, AppX, and App-V applications to session hosts without embedding them in base images. This reduces image sprawl, simplifies management, and enables continued use of existing App-V packages as support for App-V Server ends in April 2026. Organizations can more easily onboard and update applications, manage a single golden image, and benefit from streamlined app delivery, especially in Azure Virtual Desktop Hybrid environments. For more details, users are encouraged to consult the App attach documentation.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurevirtualdesktopblog/announcing-public-preview-of-redundant-tcp-support-for-rdp-multipath-for-azure-v/4511241" target="_blank" rel="noopener noreferrer"&gt;Announcing public preview of redundant TCP support for RDP Multipath for Azure Virtual Desktop&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurevirtualdesktopblog" target="_blank" rel="noopener noreferrer"&gt;Azure Virtual Desktop&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/rinku_dalwani/1321337" target="_blank" rel="noopener noreferrer"&gt;Rinku_Dalwani&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/21/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Virtual Desktop (AVD) now supports redundant TCP transport paths for RDP Multipath, available in public preview. This enhancement improves session resiliency by enabling multiple network paths—both UDP and TCP—for reliable connectivity, even in restrictive or UDP-restricted environments. If a connection path degrades or fails, AVD automatically switches to the next best route without user intervention, ensuring session continuity. The feature is enabled by default for host pools in the validation ring and is supported on Windows App version 2.0.1069.0 or later. Users can opt out if needed.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurepaasblog/update-host-keys-to-use-sftp-on-azure-blob-storage/4515483" target="_blank" rel="noopener noreferrer"&gt;Update host keys to use SFTP on Azure Blob Storage&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurepaasblog" target="_blank" rel="noopener noreferrer"&gt;Azure PaaS&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/luisfilipe/741199" target="_blank" rel="noopener noreferrer"&gt;LuisFilipe&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/28/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Blob Storage users may receive alerts to update SFTP host keys, which are used to verify server identity for secure connections. To avoid disruptions, users should update their trusted hosts list with new host keys, either by pre-loading both current and next keys or by accepting the new key after rotation. The article provides guidance on listing SFTP-enabled storage accounts, identifying connected clients, and automating updates. Monitoring and diagnostic tools can help track SFTP connections, and users authenticating via SSH key must ensure their known_hosts file is updated to maintain uninterrupted access.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurepaasblog/leveraging-azure-resource-graph-queries-for-azure-redis-configuration/4509826" target="_blank" rel="noopener noreferrer"&gt;Leveraging Azure Resource Graph Queries for Azure Redis Configuration&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurepaasblog" target="_blank" rel="noopener noreferrer"&gt;Azure PaaS&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/soma_sekhara_raju/2181620" target="_blank" rel="noopener noreferrer"&gt;Soma_Sekhara_Raju&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/21/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article outlines how Azure Resource Graph Explorer streamlines the review of Azure Redis configurations across subscriptions using Kusto Query Language (KQL). It details queries for SKU tier, Redis version, TLS settings, public network access, and Microsoft Entra authentication, offering rapid, centralized visibility without the need for custom scripts. This approach accelerates audits, supports security compliance, and simplifies management compared to traditional methods like PowerShell or Azure CLI. The same methodology can be applied to other Azure resource types by querying their schemas.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/skills-hub-blog/ai-at-every-career-stage-start-grow-lead/4494109" target="_blank" rel="noopener noreferrer"&gt;AI at every career stage (start, grow, lead)&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/microsoftlearn/blog/microsoftlearnblog" target="_blank" rel="noopener noreferrer"&gt;Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/ashleymastershall/2703917" target="_blank" rel="noopener noreferrer"&gt;AshleyMastersHall&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/28/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article explores how AI can support professionals at every career stage, from newcomers to senior leaders. It provides practical examples of using AI tools like Microsoft Copilot to accelerate learning, streamline workflows, and enhance decision-making. Early-career individuals can use AI for onboarding and communication; midcareer professionals can scale impact and manage complexity; experienced leaders can leverage AI for strategy, coaching, and process improvement. The article also recommends Microsoft’s AI Skills Navigator for tailored AI skill development, emphasizing that it’s never too early or late to adopt AI in your career.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/skills-hub-blog/what%E2%80%99s-new-in-ai-skills-navigator-april-2026/4511273" target="_blank" rel="noopener noreferrer"&gt;What’s new in AI Skills Navigator: April 2026&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/microsoftlearn/blog/microsoftlearnblog" target="_blank" rel="noopener noreferrer"&gt;Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/priya_v/3438921" target="_blank" rel="noopener noreferrer"&gt;Priya_V&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/20/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The April 2026 update to AI Skills Navigator introduces improvements based on user feedback, including enhanced skilling playlists for clearer, scalable learning paths, and more flexible skilling sessions with better progress tracking and control for learners. The platform now features a directory for Microsoft Training Services Partners to support tailored, local training, and offers new certifications like AI Transformation Leader and AI Business Professional. All training and credentials are unified in one place, making it easier to build, track, and validate AI skills for individuals and organizations.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurenetworkingblog/azure-vnet-data-gateway-for-secure-power-bi--power-platform-access-in-enterprise/4511410" target="_blank" rel="noopener noreferrer"&gt;Azure VNet Data Gateway for Secure Power BI &amp;amp; Power Platform Access in Enterprises&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurenetworkingblog" target="_blank" rel="noopener noreferrer"&gt;Azure Networking&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/kirankumar_manchiwar04/2465236" target="_blank" rel="noopener noreferrer"&gt;kirankumar_manchiwar04&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/22/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The Azure VNet Data Gateway is a Microsoft-managed service that enables secure, private access to data sources for Power BI, Power Platform, and Microsoft Fabric without customer-managed infrastructure. Running within a delegated Azure Virtual Network subnet, it eliminates the need for VMs or manual maintenance, ensuring all data traffic stays on the Azure backbone. The gateway supports enterprise-scale deployments, enforces private-only connectivity, and aligns with Zero Trust and governance requirements, making it ideal for organizations prioritizing security and operational efficiency. Setup involves configuring the VNet, private endpoints, and integrating with Power Platform or Power BI.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurenetworkingblog/a-demonstration-of-virtual-network-tap/4479136" target="_blank" rel="noopener noreferrer"&gt;A demonstration of Virtual Network TAP&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurenetworkingblog" target="_blank" rel="noopener noreferrer"&gt;Azure Networking&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/marc%20de%20droog/198661" target="_blank" rel="noopener noreferrer"&gt;Marc de Droog&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/15/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Virtual Network Terminal Access Point (VTAP), in public preview as of April 2026, enables agentless, out-of-band copying of full network traffic (including payloads) from designated Azure VMs to traffic analytics tools or collectors, using VXLAN encapsulation. Unlike VNET Flow Logs, which only capture metadata, VTAP provides full packet capture without impacting VM performance. The article demonstrates VTAP’s functionality by capturing and analyzing traffic from a source VM to a destination VM running Wireshark. VTAP integrates with third-party security and analytics solutions available on the Azure Marketplace.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/intunecustomersuccess/speed-where-it-matters-how-microsoft-intune-helps-it-prioritize-time-sensitive-a/4515942" target="_blank" rel="noopener noreferrer"&gt;Speed where it matters: How Microsoft Intune helps IT prioritize time-sensitive actions&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/microsoftintune/blog/intunecustomersuccess" target="_blank" rel="noopener noreferrer"&gt;Intune Customer Success&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/intune_support_team/226779" target="_blank" rel="noopener noreferrer"&gt;Intune_Support_Team&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/30/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft Intune prioritizes and accelerates time-sensitive device updates, with 90% of actions completed in under an hour. Contrary to the “8-hour latency” myth, this delay applies only to routine maintenance check-ins, not critical updates. Intune uses notification-based, priority-driven processing to ensure high-impact actions like security and compliance changes are delivered quickly. Recent improvements focus on prioritization, resilience during bursts of changes, timely notifications, and optimized maintenance check-ins, enhancing speed and predictability for IT admins and security teams without requiring workflow changes.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/intunecustomersuccess/unpacking-endpoint-management-is-back---and-we%E2%80%99ve-got-a-lot-to-talk-about/4514599" target="_blank" rel="noopener noreferrer"&gt;Unpacking Endpoint Management is back - and we’ve got a lot to talk about&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/microsoftintune/blog/intunecustomersuccess" target="_blank" rel="noopener noreferrer"&gt;Intune Customer Success&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/intune_support_team/226779" target="_blank" rel="noopener noreferrer"&gt;Intune_Support_Team&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 04/24/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; "Unpacking Endpoint Management," a candid web series focused on practical strategies for managing and securing endpoints, is back with new episodes featuring Microsoft Intune experts and guest practitioners. Hosted by Danny Guillory and new co-host Rachelle Blanchard, the series offers live discussions, real-world insights, and answers to audience questions. Upcoming topics include policy transitions from hybrid to cloud-native. Episodes are streamed live on multiple platforms, and the community is encouraged to participate, submit questions, and suggest topics, ensuring content remains relevant and actionable for real-world endpoint management challenges.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 13 May 2026 03:25:05 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/check-this-out-cto-guide-april-2026/ba-p/4519149</guid>
      <dc:creator>TysonPaul</dc:creator>
      <dc:date>2026-05-13T03:25:05Z</dc:date>
    </item>
    <item>
      <title>Triggering Azure Functions from Blob Storage Using Event Grid</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/triggering-azure-functions-from-blob-storage-using-event-grid/ba-p/4518184</link>
      <description>&lt;H1&gt;Overview&lt;/H1&gt;
&lt;P&gt;Modern workloads increasingly rely on reacting to files as soon as they arrive in Azure Blob Storage. While Azure provides multiple ways to trigger computing from blob operations, choosing the right event-driven pattern is not always straightforward—especially in enterprise environments where latency, reliability, and operational transparency all matter.&lt;/P&gt;
&lt;H1&gt;Introduction&lt;/H1&gt;
&lt;P&gt;Hello everyone, Andrew Coughlin here, a Cloud Solution Architect specializing in Infrastructure as a Service on Azure.&lt;/P&gt;
&lt;P&gt;In this post, I am going to walk through how to implement a direct Event Grid to Azure Function pattern. This is the simplest and lowest-latency option when you want real-time reactions to blob uploads.&lt;/P&gt;
&lt;H1&gt;Scenario&lt;/H1&gt;
&lt;P&gt;Suppose you have a workload where files are continuously uploaded into Azure Blob Storage and you need to trigger downstream processing.&lt;/P&gt;
&lt;P&gt;Typical requirements include avoiding polling, achieving near real-time execution, and maintaining strong observability.&lt;/P&gt;
&lt;H1&gt;Architecture&lt;/H1&gt;
&lt;img /&gt;
&lt;P&gt;Blob Storage → Event Grid → Azure Function&lt;/P&gt;
&lt;H1&gt;The Process&lt;/H1&gt;
&lt;OL&gt;
&lt;LI&gt;Create and deploy the Azure Function&lt;BR /&gt;2. Validate the function&lt;BR /&gt;3. Create the Event Grid subscription&lt;BR /&gt;4. Upload a blob and validate the flow&lt;/LI&gt;
&lt;/OL&gt;
&lt;H1&gt;Step 1 — Create and Deploy the Azure Function (Function First)&lt;/H1&gt;
&lt;P&gt;The Function must exist before creating the Event Grid subscription because Event Grid validates the endpoint during creation.&lt;/P&gt;
&lt;P&gt;Steps:&lt;BR /&gt;1. Create a Function App (Consumption plan + storage account)&lt;BR /&gt;2. Open Function App → Functions → Create&lt;BR /&gt;3. Select Event Grid trigger&lt;BR /&gt;4. Provide function name&lt;BR /&gt;5. Create and save the function&lt;/P&gt;
&lt;P&gt;Note: A storage account is required for all Function Apps and is created or selected during app creation.&lt;/P&gt;
&lt;H1&gt;Implement the Function&lt;/H1&gt;
&lt;P&gt;Below are examples of the HandleBlobCreatedEvent.cs, EventGridListenerFunction.csproj, Program.cs, and host.json&lt;/P&gt;
&lt;P&gt;Example of &lt;STRONG&gt;HandleBlobCreatedEvents.cs&lt;/STRONG&gt;:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;namespace EventGridListenerFunction
{
    public class HandleBlobCreatedEvent
    {
        private readonly ILogger _logger;

        public HandleBlobCreatedEvent(ILoggerFactory loggerFactory)
        {
            _logger = loggerFactory.CreateLogger&amp;lt;HandleBlobCreatedEvent&amp;gt;();
        }

        [Function(nameof(HandleBlobCreatedEvent))]
        public void Run([EventGridTrigger] string data)
        {
            // Event Grid sends events as a JSON array
            using var doc = JsonDocument.Parse(data);

            if (doc.RootElement.ValueKind == JsonValueKind.Array)
            {
                foreach (var ev in doc.RootElement.EnumerateArray())
                {
                    HandleOneEvent(ev);
                }
            }
            else
            {
                HandleOneEvent(doc.RootElement);
            }
        }

        private void HandleOneEvent(JsonElement ev)
        {
            if (ev.TryGetProperty("eventType", out var eventType))
                _logger.LogInformation("EventType: {EventType}", eventType.GetString());

            if (ev.TryGetProperty("subject", out var subject))
                _logger.LogInformation("Subject: {Subject}", subject.GetString());

            if (ev.TryGetProperty("data", out var dataObj)
                &amp;amp;&amp;amp; dataObj.ValueKind == JsonValueKind.Object
                &amp;amp;&amp;amp; dataObj.TryGetProperty("url", out var urlProp))
            {
                _logger.LogInformation("Blob URL: {Url}", urlProp.GetString());
            }
            else
            {
                _logger.LogWarning("No data.url found in payload.");
            }
        }
    }
}
&lt;/LI-CODE&gt;
&lt;P&gt;Example of &lt;STRONG&gt;Program.cs&lt;/STRONG&gt;:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;var builder = FunctionsApplication.CreateBuilder(args);

builder.ConfigureFunctionsWebApplication();

builder.Services
    .AddApplicationInsightsTelemetryWorkerService()
    .ConfigureFunctionsApplicationInsights();

builder.Build().Run();
&lt;/LI-CODE&gt;
&lt;P&gt;Example of &lt;STRONG&gt;Host.json&lt;/STRONG&gt;:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingSettings": {
                "isEnabled": true,
                "excludedTypes": "Request"
            },
            "enableLiveMetricsFilters": true
        }
    }
}
&lt;/LI-CODE&gt;
&lt;P&gt;Example of&amp;nbsp;&lt;STRONG&gt;EventGridListenerFunction.csproj&lt;/STRONG&gt;:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;&amp;lt;Project Sdk="Microsoft.NET.Sdk"&amp;gt;

  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;TargetFramework&amp;gt;net8.0&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;AzureFunctionsVersion&amp;gt;v4&amp;lt;/AzureFunctionsVersion&amp;gt;
    &amp;lt;OutputType&amp;gt;Exe&amp;lt;/OutputType&amp;gt;
    &amp;lt;ImplicitUsings&amp;gt;enable&amp;lt;/ImplicitUsings&amp;gt;
    &amp;lt;Nullable&amp;gt;enable&amp;lt;/Nullable&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;

  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;FrameworkReference Include="Microsoft.AspNetCore.App" /&amp;gt;
    &amp;lt;PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.23.0" /&amp;gt;
    &amp;lt;PackageReference Include="Microsoft.Azure.Functions.Worker" Version="2.51.0" /&amp;gt;
    &amp;lt;PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" Version="2.50.0" /&amp;gt;
    &amp;lt;PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.EventGrid" Version="3.5.0" /&amp;gt;
    &amp;lt;PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version="2.1.0" /&amp;gt;
    &amp;lt;PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="2.0.7" /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;

&amp;lt;/Project&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;You will still need to publish this to the function app, which is outlined: &lt;A href="https://learn.microsoft.com/en-us/azure/azure-functions/functions-deployment-technologies?tabs=windows" target="_blank"&gt;Deployment technologies in Azure Functions | Microsoft Learn&lt;/A&gt;.&lt;/P&gt;
&lt;H1&gt;Step 2 — Create the Event Grid Subscription&lt;/H1&gt;
&lt;P&gt;Navigate to the &lt;STRONG&gt;Storage Account&lt;/STRONG&gt; → &lt;STRONG&gt;Events &lt;/STRONG&gt;→ Create Event Subscription and select BlobCreated events targeting the Function.&lt;/P&gt;
&lt;H1&gt;Step 3 — Validate&lt;/H1&gt;
&lt;P&gt;Upload a blob and confirm the Function triggers and logs event data.&lt;/P&gt;
&lt;H1&gt;Common Pitfalls&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;Creating the subscription before the function exists&lt;BR /&gt;• Storage account misconfiguration&lt;BR /&gt;• Networking restrictions preventing Function access to storage&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;Conclusion&lt;/H1&gt;
&lt;P&gt;The direct Event Grid to Azure Function pattern provides a simple and reliable approach for real-time blob processing without additional infrastructure.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Disclaimer&lt;/P&gt;
&lt;P&gt;The sample scripts are not supported under any Microsoft standard support program or service. The sample scripts are provided AS IS without warranty of any kind. Microsoft further disclaims all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages.&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2026 20:24:17 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/triggering-azure-functions-from-blob-storage-using-event-grid/ba-p/4518184</guid>
      <dc:creator>AndrewCoughlin</dc:creator>
      <dc:date>2026-05-11T20:24:17Z</dc:date>
    </item>
    <item>
      <title>Purpose For Your PKI (Practical PKI Part 3)</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/purpose-for-your-pki-practical-pki-part-3/ba-p/4512518</link>
      <description>&lt;P&gt;My name is Ron Arestia, and I am a Security Researcher with Microsoft’s Detection and Response Team (DART). We respond to customer cybersecurity incidents to assist with containment and recovery from threat actors. In this brief blog post, we will discuss the “why” behind your PKI. This is part 3 of a series on practical PKI implementation based on my experience with customer interactions working as a Microsoft engineer.&lt;/P&gt;
&lt;P&gt;Feel free to catch up on previous blog posts or jump right into this one&lt;/P&gt;
&lt;P&gt;&lt;A href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/secure-configuration-and-hardening-of-active-directory-certificate-services/4463240" target="_blank" rel="noopener"&gt;Secure Configuration and Hardening of Active Directory Certificate Services&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/implementing-and-managing-an-adcs-offline-root-certificate-authority-part-1/4468175" target="_blank" rel="noopener"&gt;Implementing and Managing an ADCS Offline Root Certificate Authority (Practical PKI Part 1)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/crl--aia-publishing-guidance-practical-pki-part-2/4485713" target="_blank" rel="noopener"&gt;CRL &amp;amp; AIA Publishing Guidance (Practical PKI Part 2)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In Part 3 of our series, understanding why you are implementing and managing PKI is critical to understanding the level of effort you should endeavor to start using one or keep one going. This brief non-technical discussion is meant as a primer to determine if what you are about to implement is truly going to benefit your organization as a whole.&lt;/P&gt;
&lt;H1&gt;Determine Your Technical Outcomes&lt;/H1&gt;
&lt;P&gt;This subject is the target of much debate and disagreement across my peer groups. On the one side, you have engineers who argue for or against the very provisioning of a PKI while on the other side, you have engineers who argue that regardless of purpose, administration is more important. Far be it for me to be a fence-sitter, so I stand firmly in the former group arguing that if you do not need it, you should not bother standing it up in the first place.&lt;/P&gt;
&lt;P&gt;A few years ago, I was working with a customer with a substantial PKI presence: three issuing CAs, fully redundant HTTP CRL publishing, CEP/CES, and cross-forest publishing. When we were assessing their environment, I noticed immediately that they had a scant few templates published across those three issuers, but they had over 100,000 issued, active certificates. I dug deeper and noticed that every one of their templates except two were configured with autoenrollment. Every user and every computer in their organization was getting a certificate that was published to Active Directory. They were issuing server authentication certificates with enrollee-supplied Subject Alternative Names (SANs) without manager approval. And they were even issuing code signing certificates without manager approval albeit to a constrained group.&lt;/P&gt;
&lt;P&gt;After lengthy discussions with them about their reasons for managing a PKI, I discovered a few very telling things:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Despite aspirations to use 802.1x for user and computer authentication, the infrastructure was never implemented and remained in a state of development for the last few years.&lt;/LI&gt;
&lt;LI&gt;Despite a project to setup smart card authentication, they never moved past a pilot group of developers and administrators who were not bothering to leverage this powerful method of authentication across most of their enterprise anyway.&lt;/LI&gt;
&lt;LI&gt;Approximately 90% of their certificates issued for web endpoints were either development endpoints that never made it to production or misconfigured certificates that had to be reissued to correct spelling errors or to add or remove nodes from SANs that were not in the original configuration.&lt;/LI&gt;
&lt;LI&gt;More than 1,000 code signing certificates were issued, but no official code was signed by their recollection.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;By the end of the engagement, they realized how much administrative overhead was going into maintaining a massive solution with little actual value for the organization. They had short root CA CRL lifetimes requiring quarterly “signing parties,” and despite a very astute team of engineers maintaining the PKI, they had built in “automation” paths that left their environment vulnerable to attack if a threat actor ever found their way in. All told, we determined that less than 2% of the total number of issued certificates (approximately 2,500) were actively used for a regular production task.&lt;/P&gt;
&lt;P&gt;Even after discussing options to downsize, streamline, and harden their PKI infrastructure, we eventually discussed options to offload much of their certificate needs to third-party solutions. Why would I convince a customer to rid themselves of an in-house PKI?&lt;/P&gt;
&lt;H1&gt;Are You Experienced?&lt;/H1&gt;
&lt;P&gt;I believe the most important fundamental question to ask as an enterprise is if you have the staff to manage and maintain a PKI, and if so, to what extent? I would argue that having at least two engineers dedicated to this task is critical for personnel fault tolerance. If one engineer goes on vacation or suddenly resigns, you have someone who can continue to operate the environment to the same level of fidelity expected of it. This guidance scales upwards the larger your PKI grows. If you are a multinational enterprise with issuing CAs spread around the globe, you need, at the least, regional expertise to navigate administration and maintenance tasks. Ideally, you would have a resource local to each environment to ensure someone can put hands on the systems without relying on global networking.&lt;/P&gt;
&lt;P&gt;The second fundamental question you should ask: what is the primary purpose of my public key infrastructure? Are you using it to manage an 802.1x authentication scheme across your enterprise? Are you managing smart cards or certificate-based authentication for your organization? Are you looking to issue a large number of server authentication certificates to support internal web endpoints or development efforts? Or do you believe that by maintaining your own PKI you are maintaining some level of sovereignty over your cryptographic operations that you do not want to offload to a third-party or a cloud provider?&lt;/P&gt;
&lt;P&gt;All of these are perfectly valid reasons to maintain your own PKI, but each comes with challenges and interoperability requirements that should be documented and thoroughly understood. In 802.1x configurations, you should ensure all of your subordinate infrastructure is prepared and up to the task of handling authentication traffic and overall maintenance. One network appliance outage overnight could mean an entire office is unable to work the next morning. Smartcard and certificate-based authentication require a robust infrastructure and a team of individuals dedicated to the task of identity attribution for assignment and provisioning of those certificates. Web endpoint certificate management can quickly grow into a full-time role for an engineer in an environment with rapid iteration, and there is a delicate balance to be struck between reasonable validity periods and the possibility of regular revocation due to changes that can balloon a CRL. Finally, the decision to maintain sovereignty over certificates is often driven by cost. A true cost-benefit analysis can aid in reinforcing or diminishing from the need to stand up a dedicated PKI, and the reality is that having publicly-trusted certificates is often a much simpler solution than relying on visibility to internal publishing endpoints that require a number of security solutions.&lt;/P&gt;
&lt;H1&gt;Decisions, Decisions&lt;/H1&gt;
&lt;P&gt;The decision to stand up a dedicated, in-house PKI is not one that should be taken lightly. Sit down with your management and leadership team to outline the high-level outcomes expected of the solution and be the sober voice in the room to explain both the benefits and disadvantages of the proposed solution. If the determination to proceed is not grounded in realistic capabilities of the enterprise, do not be afraid to pull the security card, at a minimum. The security of your PKI is paramount. Without it, you are paying money to power infrastructure that is, at best, churning out unnecessary certificates, and at worst, putting your entire enterprise at risk of a cybersecurity incident.&lt;/P&gt;
&lt;P&gt;How do we secure and maintain your PKI once the decision is made to deploy one? In Part 4, we will get back into the technical discussions about your PKI security and how to maximize your security without compromising functionality.&lt;/P&gt;</description>
      <pubDate>Mon, 04 May 2026 04:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/purpose-for-your-pki-practical-pki-part-3/ba-p/4512518</guid>
      <dc:creator>RonArestia</dc:creator>
      <dc:date>2026-05-04T04:00:00Z</dc:date>
    </item>
    <item>
      <title>Hardening OpenClaw on AKS: Mitigating Container Escapes with Kata microVM Isolation</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/hardening-openclaw-on-aks-mitigating-container-escapes-with-kata/ba-p/4516030</link>
      <description>&lt;H2&gt;What is OpenClaw, and what security challenges does it pose with container escapes?&lt;/H2&gt;
&lt;P&gt;OpenClaw is an open-source autonomous AI agent designed for power users and developers to automate tasks, such as managing emails, files, and scheduling via chat apps like WhatsApp or Telegram.&lt;/P&gt;
&lt;P&gt;While OpenClaw functions as a powerful autonomous assistant, its &lt;STRONG&gt;runtime model&lt;/STRONG&gt; creates a massive security paradox: to be truly useful, the agent requires broad permissions to your filesystem and APIs, yet this "God Mode" access often lacks the rigorous &lt;STRONG&gt;containerized isolation&lt;/STRONG&gt; typical of enterprise workloads. Because many users run the framework natively rather than within a hardened sandbox, the primary &lt;STRONG&gt;security challenge&lt;/STRONG&gt; is that a single malicious "Skill" or an indirect prompt injection can escalate into full system compromise. This structural vulnerability, exemplified by high-profile exploits like &lt;STRONG&gt;CVE-2026-25253&lt;/STRONG&gt;, transforms the agent from a helpful tool into a high-risk entry point for lateral movement and data exfiltration within a private network.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why container escapes matter in OpenClaw-style deployments&lt;/STRONG&gt;: because containers share the host kernel, a successful container escape turns a single compromised container into a host compromise (or at least a compromise of other co-located workloads). This is especially important when OpenClaw runs code from many tenants, many teams, or varying trust levels on the same worker nodes. That soft isolation is often &lt;STRONG&gt;permeable&lt;/STRONG&gt; due to the following structural and configuration-based weaknesses:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Shared-kernel attack surface&lt;/STRONG&gt;: the container boundary is not a hypervisor boundary. Kernel vulnerabilities (e.g., privilege escalation bugs) can allow a process in a container to gain host-level privileges.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Excessive privileges / misconfiguration&lt;/STRONG&gt;: running with &lt;EM&gt;--privileged&lt;/EM&gt;, broad Linux capabilities, hostPath mounts, access to the Docker socket, or device passthrough (e.g., /dev/kvm, /dev/fuse) can provide direct paths to host control.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Filesystem and namespace boundary breaks&lt;/STRONG&gt;: mount namespace confusion, writable host mounts, or mistakes in chroot/pivot_root handling can expose host files and credentials.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Supply-chain and image risk&lt;/STRONG&gt;: a malicious image or dependency can execute within the container and then attempt escalation/escape.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Blast radius&lt;/STRONG&gt;: once the host is compromised, attackers can access node-level secrets (service account tokens, registry creds), tamper with the runtime, sniff traffic, or pivot to other containers and the broader cluster.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;In short, OpenClaw’s security challenge is not that containers are inherently insecure, but that the isolation boundary is thinner than a VM boundary. When the threat model includes adversarial code execution, a “container-only” isolation strategy often requires additional hardening or a stronger sandbox.&lt;/P&gt;
&lt;H2&gt;What are MicroVMs and Kata Containers, and how do they help mitigate OpenClaw container-escape risks?&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;MicroVMs&lt;/STRONG&gt; are lightweight virtual machines optimized for running short-lived or container-like workloads with much lower overhead than traditional VMs. They use hardware virtualization (via a hypervisor such as KVM) but keep the device model and boot path minimal, reducing startup time and the overall attack surface compared to a full general-purpose VM.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Kata Containers&lt;/STRONG&gt; is an “OCI-compatible containers in a VM” approach: it runs each container (or pod sandbox) inside a dedicated microVM by default (implementation varies by runtime/config). To the orchestration layer (e.g., Kubernetes), it still looks like a container runtime, but isolation is provided by a hypervisor boundary rather than only namespaces/cgroups.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Stronger isolation boundary&lt;/STRONG&gt;: a container escape that relies on Linux kernel exploitation is far less likely to directly compromise the host, because the workload’s “host” kernel is typically the guest kernel inside the microVM.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reduced blast radius&lt;/STRONG&gt;: compromise is contained to the microVM/pod sandbox; lateral movement to other workloads on the same node becomes significantly harder.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Smaller and more controllable attack surface&lt;/STRONG&gt;: minimal device models, tighter default privileges, and fewer host mounts/devices exposed to the workload.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Defense-in-depth with container controls&lt;/STRONG&gt;: you still can (and should) apply seccomp, capabilities dropping, read-only root filesystems, and LSMs inside the guest, but the hypervisor boundary becomes an additional layer.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Better fit for hostile multi-tenant workloads&lt;/STRONG&gt;: when OpenClaw executes third-party jobs/plugins, Kata-style sandboxing aligns better with an adversarial threat model.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Solution overview&lt;/H2&gt;
&lt;P&gt;Figure 1 illustrates a Kubernetes-based sandboxing architecture for running OpenClaw workloads with stronger isolation. The design keeps the developer experience and packaging model of containers (OCI images, Kubernetes scheduling) while ensuring that untrusted agent code executes inside a microVM boundary using Kata Containers. This reduces the likelihood that a container escape can compromise the underlying node or other co-located workloads.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Key components&lt;/STRONG&gt;: (1) &lt;STRONG&gt;Application gateway &lt;/STRONG&gt;for HTTPS traffic to the backend, (2) &lt;STRONG&gt;Kubernetes&lt;/STRONG&gt; as the orchestration, scheduling and policy enforcement plane, (3) a &lt;STRONG&gt;container runtime&lt;/STRONG&gt; (e.g., containerd) configured with a &lt;STRONG&gt;Kata Containers runtime class&lt;/STRONG&gt;, (4) &lt;STRONG&gt;KVM-backed microVMs&lt;/STRONG&gt; that provide the isolation boundary for each untrusted workload and (5) &lt;STRONG&gt;Azure files &lt;/STRONG&gt;for persistent storage which allows scaling of OpenClaw.&lt;/P&gt;
&lt;img&gt;
&lt;P&gt;&lt;EM&gt;Figure 1: Solution architecture diagram&lt;/EM&gt;&lt;/P&gt;
&lt;/img&gt;
&lt;P&gt;&lt;STRONG&gt;End-to-end flow&lt;/STRONG&gt;:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Traffic Entry via Application Gateway&lt;/STRONG&gt;: Incoming user requests (e.g., from WhatsApp or Discord) first hit the &lt;STRONG&gt;Azure Application Gateway&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Orchestration in AKS&lt;/STRONG&gt;: The traffic is routed into an &lt;STRONG&gt;Azure Kubernetes Service (AKS)&lt;/STRONG&gt; cluster, which manages the lifecycle of the OpenClaw agent and its associated "Skills."&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Hardened Execution via Kata Containers&lt;/STRONG&gt;: Instead of running in standard shared-kernel containers, the &lt;STRONG&gt;OpenClaw agent&lt;/STRONG&gt;&amp;nbsp;runs inside &lt;STRONG&gt;Kata Containers&lt;/STRONG&gt;. This provides a dedicated lightweight VM for the agent, creating a hardware-level isolation boundary that prevents "container escapes" from compromising the host.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Stateful Storage in Azure Files&lt;/STRONG&gt;: The agent interacts with &lt;STRONG&gt;Azure Files&lt;/STRONG&gt; to read and write persistent data, such as conversation history, configuration files, and downloaded assets, ensuring data remains available even if the container is restarted.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Security posture&lt;/STRONG&gt;: by shifting isolation from “shared-kernel containers” to “containers inside microVMs,” the architecture limits the blast radius of kernel-level exploits and common escape paths. Even if an attacker achieves code execution within an OpenClaw container, they must additionally break the microVM/hypervisor boundary to affect the node or neighboring workloads, providing a strong defense-in-depth improvement over standard container alone.&lt;/P&gt;
&lt;H2&gt;Implement the solution&lt;/H2&gt;
&lt;P&gt;This section describes how to deploy the solution architecture.&lt;/P&gt;
&lt;P&gt;In this post, you’ll perform the following tasks:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Create a Kata VM-isolated AKS node pool&lt;/LI&gt;
&lt;LI&gt;Mount a NFS persistent storage&lt;/LI&gt;
&lt;LI&gt;Create the application ConfigMap&lt;/LI&gt;
&lt;LI&gt;Deploy the OpenClaw gateway&lt;/LI&gt;
&lt;LI&gt;Expose the gateway internally&lt;/LI&gt;
&lt;LI&gt;Set up TLS termination&lt;/LI&gt;
&lt;LI&gt;Route external traffic through the Azure application gateway for containers.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Ensure that you have the following prerequisites deployed before moving to the next section:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;An &lt;A href="https://learn.microsoft.com/en-us/azure/aks/learn/quick-kubernetes-deploy-cli" target="_blank"&gt;AKS cluster&lt;/A&gt; provisioned in Azure&lt;/LI&gt;
&lt;LI&gt;An Azure NFS &lt;A href="https://learn.microsoft.com/en-us/azure/storage/files/create-file-share?tabs=azure-portal" target="_blank"&gt;File Share&lt;/A&gt; with private link enabled.&lt;/LI&gt;
&lt;LI&gt;An &lt;A href="https://learn.microsoft.com/en-us/azure/application-gateway/for-containers/quickstart-create-application-gateway-for-containers-managed-by-alb-controller?tabs=new-subnet-aks-vnet" target="_blank"&gt;Application gateway for containers&lt;/A&gt; managed by ALB controller&lt;/LI&gt;
&lt;LI&gt;Kubectl configured and pointing to the cluster&lt;/LI&gt;
&lt;LI&gt;Az CLI authenticated with the correct subscription&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Initialise environment variables&lt;/H2&gt;
&lt;P&gt;In your Linux terminal, export these variables with your own values. They will be used in later commands.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;export cluster_name=&amp;lt;CLUSTER_NAME&amp;gt;
export resource_group=&amp;lt;RESOURCE_GROUP&amp;gt;
&lt;/LI-CODE&gt;
&lt;H2&gt;Create the AKS Node Pool with Kata VM Isolation&lt;/H2&gt;
&lt;P&gt;The OpenClaw gateway pods require Kata VM isolation (runtimeClassName: kata-vm-isolation). You must create a dedicated AKS node pool that supports this runtime before deploying any workloads.&lt;/P&gt;
&lt;P&gt;Use the Azure CLI to add a node pool with the Kata VM isolation workload runtime to your existing AKS cluster:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;az aks nodepool add \
  --resource-group $resource_group \
  --cluster-name $cluster_name \
  --name katanp \
  --node-count 2 \
  --node-vm-size Standard_D4s_v3 \
  --os-sku AzureLinux \
  --workload-runtime KataMshvVmIsolation \
  --labels agentpool=katanp
&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;**Important:**&lt;/STRONG&gt; The `--workload-runtime KataMshvVmIsolation` flag enables the `kata-vm-isolation` runtime class on the node pool. The VM size must support nested virtualization (D-series v3/v5, E-series v3/v5, etc.).&lt;/P&gt;
&lt;H2&gt;Create NFS Persistent Volume&lt;/H2&gt;
&lt;P&gt;The deployment uses an Azure Files NFS share for persistent workspace storage. The PersistentVolume must exist before the PVC can bind to it. Replace volumeHandle and volumeAttributes with your own Azure Files values.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:
  name: openclaw-nfs-pv
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  mountOptions:
    - sec=sys
    - noresvport
    - actimeo=30
  csi:
    driver: file.csi.azure.com
    volumeHandle: &amp;lt;resource-group&amp;gt;#&amp;lt;storage-account&amp;gt;#&amp;lt;share-name&amp;gt;
    volumeAttributes:
      resourceGroup: &amp;lt;resource-group&amp;gt;
      shareName: &amp;lt;share-name&amp;gt;
      protocol: nfs
      server: &amp;lt;storage-account&amp;gt;.privatelink.file.core.windows.net
EOF
&lt;/LI-CODE&gt;
&lt;P&gt;Verify that the persistent volume is created.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;kubectl get pv openclaw-nfs-pv&lt;/LI-CODE&gt;&lt;img&gt;
&lt;P&gt;&lt;EM&gt;Figure 2: Persistent volume&lt;/EM&gt;&lt;/P&gt;
&lt;/img&gt;
&lt;H2&gt;Create the NFS PersistentVolumeClaim&lt;/H2&gt;
&lt;P&gt;The PVC binds to the PV created. The deployment references this PVC by name (`pvc-openclaw-nfs`).&lt;/P&gt;
&lt;LI-CODE lang=""&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  # The name of the PVC
  name: pvc-openclaw-nfs
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      # The real storage capacity in the claim
      storage: 50Gi
  # This field must be the same as the storage class name in StorageClass
  storageClassName: ""
  volumeName: openclaw-nfs-pv
EOF
&lt;/LI-CODE&gt;
&lt;P&gt;Verify that the persistent volume claim is created successfully. The status should show bound.&lt;/P&gt;
&lt;img&gt;
&lt;P&gt;&lt;EM&gt;Figure 3: Persistent Volume Claim&lt;/EM&gt;&lt;/P&gt;
&lt;/img&gt;
&lt;H2&gt;Create the ConfigMap&lt;/H2&gt;
&lt;P&gt;The ConfigMap provides the openclaw.json configuration file to the gateway pods. It configures allowed CORS origins for the control UI and the gateway token. Replace the allowed origins with your own ALB frontend URL. The ConfigMap also stores the gateway auth token, so &lt;STRONG&gt;&lt;U&gt;DO NOT&lt;/U&gt;&lt;/STRONG&gt; hardcode your token here. Always keep it as a variable rather than storing it in plain text so that, if attackers gain access to this file, they cannot see the OpenClaw gateway auth token.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
  name: openclaw-config
data:
  openclaw.json: |
    {
      "gateway": {
        "auth": {
          "token": "${AUTH_TOKEN}"
        },
        "controlUi": {
          "allowedOrigins": [
            "https://&amp;lt;YOUR ALB FRONTEND URL&amp;gt;.alb.azure.com"
          ]
        }
      }
    }
EOF
&lt;/LI-CODE&gt;
&lt;H2&gt;Create the Auth Token Secret&lt;/H2&gt;
&lt;P&gt;The OpenClaw gateway requires an authentication token to secure access. The deployment references a Kubernetes Secret named openclaw-auth-token and injects it into the container as the AUTH_TOKEN environment variable via secretKeyRef.&lt;/P&gt;
&lt;P&gt;Generate a random token (or use an existing one) and create the kubernetes secret.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;# Generate a random 32-byte hex token
AUTH_TOKEN=$(openssl rand -hex 32)
echo "$AUTH_TOKEN"   # save this — you'll need it to authenticate with the gateway

kubectl create secret generic openclaw-auth-token \
  --from-literal=token="$AUTH_TOKEN"
&lt;/LI-CODE&gt;
&lt;P&gt;If the secret does not exist when the deployment is applied, pods will fail with `CreateContainerConfigError`.&lt;/P&gt;
&lt;H2&gt;Deploy the OpenClaw Gateway&lt;/H2&gt;
&lt;P&gt;This is the main application deployment. It depends on all previous steps:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; - &lt;STRONG&gt;Kata node pool&lt;/STRONG&gt;&amp;nbsp;(pods require runtimeClassName: kata-vm-isolation and nodeSelector: agentpool=katanp)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; - &lt;STRONG&gt;PVC&lt;/STRONG&gt;&amp;nbsp;(pvc-openclaw-nfs for persistent workspace data)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; - &lt;STRONG&gt;ConfigMap&lt;/STRONG&gt;&amp;nbsp;(openclaw-config for openclaw.json)&lt;/P&gt;
&lt;P&gt;Key details:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; - Runs &lt;STRONG&gt;2 replicas&lt;/STRONG&gt;&amp;nbsp;with a rolling update strategy&lt;/P&gt;
&lt;P&gt;&amp;nbsp; - Uses an &lt;STRONG&gt;init container&lt;/STRONG&gt;&amp;nbsp;to copy the config file to a writable volume&lt;/P&gt;
&lt;P&gt;&amp;nbsp; - Exposes port &lt;STRONG&gt;18789&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; - Includes liveness and readiness probes on /health&lt;/P&gt;
&lt;P&gt;&amp;nbsp; - Resource requests: 500m CPU, 512Mi memory&lt;/P&gt;
&lt;P&gt;&amp;nbsp; - Resource limits: 2 CPU, 2Gi memory&lt;/P&gt;
&lt;LI-CODE lang=""&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
  name: openclaw-gateway
spec:
  replicas: 2
  selector:
    matchLabels:
      app: openclaw-gateway
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
  template:
    metadata:
      labels:
        app: openclaw-gateway
    spec:
      runtimeClassName: kata-vm-isolation
      nodeSelector:
        agentpool: katanp
      securityContext:
        fsGroup: 1000
      initContainers:
        - name: copy-openclaw-config
          image: alpine/openclaw:latest
          env:
            - name: HOME
              value: /writable
          command:
            - sh
            - -c
            - |
              cp /config/openclaw.json /writable/openclaw.json \
              &amp;amp;&amp;amp; chown 1000:1000 /writable/openclaw.json \
              &amp;amp;&amp;amp; echo "--- Config file contents ---" \
              &amp;amp;&amp;amp; cat /writable/openclaw.json
          volumeMounts:
            - name: openclaw-config-volume
              mountPath: /config
            - name: openclaw-writable
              mountPath: /writable
      containers:
        - name: gateway
          image: alpine/openclaw:latest
          ports:
            - containerPort: 18789
          env:
            - name: NODE_OPTIONS
              value: "--max-old-space-size=4096"
            - name: AUTH_TOKEN
              valueFrom:
                secretKeyRef:
                  name: openclaw-auth-token
                  key: token
          # Start gateway the way the tutorial indicates
          command: ["openclaw", "gateway"]
          args: ["run", "--allow-unconfigured", "--bind", "lan"]
          volumeMounts:
            - name: openclaw-writable
              mountPath: /home/node/.openclaw
            - name: openclaw-data
              mountPath: /home/node/workspace
              subPath: workspace
          resources:
            requests:
              cpu: "500m"
              memory: "2Gi"
            limits:
              cpu: "1000m"
              memory: "4Gi"
          livenessProbe:
            httpGet:
              path: /health
              port: 18789
            initialDelaySeconds: 60
            periodSeconds: 15
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /health
              port: 18789
            initialDelaySeconds: 10
            periodSeconds: 5
      volumes:
        - name: openclaw-data
          persistentVolumeClaim:
            claimName: pvc-openclaw-nfs
        - name: openclaw-config-volume
          configMap:
            name: openclaw-config
            items:
              - key: openclaw.json
                path: openclaw.json
        - name: openclaw-writable
          emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: openclaw-gateway-service
spec:
  type: ClusterIP
  selector:
    app: openclaw-gateway
  ports:
    - protocol: TCP
      port: 18789
      targetPort: 18789
EOF
&lt;/LI-CODE&gt;
&lt;P&gt;Verify that the deployment succeeds. Wait until all pods show `Running` and `READY 2/2`.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;kubectl get deployment openclaw-gateway
kubectl get pods -l app=openclaw-gateway
&lt;/LI-CODE&gt;&lt;img&gt;
&lt;P&gt;&lt;EM&gt;Figure 4: OpenClaw deployment&lt;/EM&gt;&lt;/P&gt;
&lt;/img&gt;
&lt;H2&gt;Create the TLS secret (for HTTPS)&lt;/H2&gt;
&lt;P&gt;The Application Gateway for Containers references a TLS secret (gateway-tls-secret) for HTTPS termination. This blog post uses a self-signed certificate; in a production environment, use a certificate signed by a certificate authority.&amp;nbsp;Replace `&amp;lt;path-to-tls-cert&amp;gt;` and `&amp;lt;path-to-tls-key&amp;gt;` with paths to your TLS certificate and private key files.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;kubectl create secret tls gateway-tls-secret \
  --cert=&amp;lt;path-to-tls-cert&amp;gt; \
  --key=&amp;lt;path-to-tls-key&amp;gt; 
&lt;/LI-CODE&gt;
&lt;H2&gt;Create the Gateway&lt;/H2&gt;
&lt;P&gt;The Gateway resource defines the HTTPS listener on the Azure Application Load Balancer (ALB). Update the &lt;STRONG&gt;`alb.network.azure.com/application-gateway-id&lt;/STRONG&gt;` annotation to match your ALB traffic controller resource ID. You will also need to reference the gateway-tls-secret to enable HTTPS.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: https
  annotations:
    alb.network.azure.com/application-gateway-id: /subscriptions/&amp;lt;subscription id&amp;gt;/resourceGroups/mc_openclaw_openclaw-cluster_centralus/providers/Microsoft.ServiceNetworking/trafficControllers/&amp;lt;alb id&amp;gt;
    alb.networking.azure.io/alb-namespace: default
    alb.networking.azure.io/alb-name: alb-openclaw
spec:
  gatewayClassName: azure-alb-external
  listeners:
    - name: https
      protocol: HTTPS
      port: 443
      allowedRoutes:
        namespaces:
          from: All
      tls:
        mode: Terminate
        certificateRefs:
        - kind: Secret
          group: ""
          name: gateway-tls-secret
EOF
&lt;/LI-CODE&gt;&lt;LI-CODE lang=""&gt;kubectl get gateway https&lt;/LI-CODE&gt;
&lt;P&gt;Wait until the Gateway shows a `Programmed=True` condition.&lt;/P&gt;
&lt;H2&gt;Create the HTTPRoute&lt;/H2&gt;
&lt;P&gt;The HTTPRoute connects the Gateway to the backend Service. It routes all traffic (`/` prefix) from the HTTPS Gateway to `openclaw-gateway-service` on port 18789.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;cat &amp;lt;&amp;lt;EOF | kubectl apply -f -
kind: HTTPRoute
apiVersion: gateway.networking.k8s.io/v1
metadata:
  name: http-route
spec:
  parentRefs:
    - name: https
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /  
    backendRefs:
    - name: openclaw-gateway-service
      kind: Service
      namespace: default
      port: 18789
EOF
&lt;/LI-CODE&gt;
&lt;H2&gt;Test OpenClaw application&lt;/H2&gt;
&lt;P&gt;Get the external endpoint.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;kubectl get gateway https -o jsonpath='{.status.addresses[0].value}'&lt;/LI-CODE&gt;
&lt;P&gt;Paste the endpoint into your browser to reach the OpenClaw application. If you are using a self-signed certificate, you will see a “Not secure” warning; click &lt;EM&gt;Advanced&lt;/EM&gt; to proceed. In a production environment with a certificate signed by a certificate authority, you should not see that warning.&lt;/P&gt;
&lt;img&gt;
&lt;P&gt;&lt;EM&gt;Figure 5: OpenClaw Authentication&lt;/EM&gt;&lt;/P&gt;
&lt;/img&gt;
&lt;P&gt;Paste in your Gateway Token (the auth token created earlier). You will notice that even though the token is valid, it throws back a “pairing required” error. Pairing is required in OpenClaw whenever a new device, browser profile, or CLI client attempts to connect to the gateway for the first time, ensuring only authorized clients can control the AI agent.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;POD=$(kubectl get pod -l app=openclaw-gateway -o jsonpath='{.items[0].metadata.name}')
POD2=$(kubectl get pod -l app=openclaw-gateway -o jsonpath='{.items[1].metadata.name}')
TOKEN=$(kubectl get secret openclaw-auth-token -o jsonpath='{.data.token}' | base64 -d)

kubectl exec "$POD" -c gateway -- openclaw devices approve --latest --token "$TOKEN"
kubectl exec "$POD2" -c gateway -- openclaw devices approve --latest --token "$TOKEN"
&lt;/LI-CODE&gt;
&lt;P&gt;You should see a message like the one in the image below. You can now open the OpenClaw application and start using it.&lt;/P&gt;
&lt;img&gt;
&lt;P&gt;&lt;EM&gt;Figure 6: OpenClaw pairing success message&lt;/EM&gt;&lt;/P&gt;
&lt;/img&gt;&lt;img&gt;
&lt;P&gt;&lt;EM&gt;Figure 7: OpenClaw Application&lt;/EM&gt;&lt;/P&gt;
&lt;/img&gt;
&lt;P&gt;You have successfully deployed OpenClaw within a microVM hosted on Azure Kubernetes Service.&lt;/P&gt;
&lt;H2&gt;Test microVM kernel isolation&lt;/H2&gt;
&lt;P&gt;From within the OpenClaw pod, try to read the host’s root filesystem via /proc/1/root. You should see an error like: ls: cannot access '/proc/1/root/etc/kubernetes': No such file or directory.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;kubectl exec -it "$POD" -c gateway -- ls /proc/1/root/etc/kubernetes 2&amp;gt;&amp;amp;1&lt;/LI-CODE&gt;
&lt;P&gt;In a standard container deployment, PID 1 inside the container is still running on the&amp;nbsp;&lt;STRONG&gt;host kernel&lt;/STRONG&gt;, so traversing&amp;nbsp;/proc/1/root/&amp;nbsp;exposes the host's root filesystem — including sensitive paths like&amp;nbsp;/etc/kubernetes&amp;nbsp;(which holds kubelet credentials). With Kata VM isolation, the picture is completely different. When we run&amp;nbsp;ls /proc/1/root/etc/kubernetes from inside the OpenClaw pod, it returns&amp;nbsp;&lt;STRONG&gt;"No such file or directory"&lt;/STRONG&gt;. This is because PID 1 is no longer a process on the host — it's running inside a dedicated&amp;nbsp;&lt;STRONG&gt;guest VM with its own kernel&lt;/STRONG&gt;. The&amp;nbsp;/proc/1/root/&amp;nbsp;path leads to the microVM's root filesystem, not the host's, and that microVM has no knowledge of the node's Kubernetes configuration or machine identity. The host is simply invisible. This is the core security guarantee of Kata Containers: even if an attacker achieves a full container escape, there is nothing to escape&amp;nbsp;&lt;EM&gt;to&lt;/EM&gt; — they land inside a lightweight VM boundary, not on the shared host, making lateral movement to other pods or the node itself impossible.&lt;/P&gt;
&lt;H2&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;This post discussed why running OpenClaw workloads in standard containers can be risky when the workload includes untrusted or semi-trusted code: containers share the host Linux kernel, so a single container escape or privileged misconfiguration can expand into node-level compromise and a much larger blast radius. To address this, we introduced microVM-based sandboxing with Kata Containers on Azure Kubernetes Service (AKS) and walked through an implementation approach (a node pool with Kata VM isolation, storage, gateway deployment, and ingress). Finally, we validated the isolation properties by demonstrating that common host-visibility techniques (for example, probing&amp;nbsp;&lt;EM&gt;/proc/1/root&lt;/EM&gt;) no longer reveal host paths when the workload runs inside a microVM.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Separate kernel boundary&lt;/STRONG&gt;: Kata runs the container inside a microVM, so the workload executes against a guest kernel rather than the shared host kernel—kernel exploits and escape attempts don’t directly translate into host control.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Host filesystem is no longer “in scope”&lt;/STRONG&gt;: paths that often leak host context in standard containers (for example, traversals via &lt;EM&gt;/proc&lt;/EM&gt;) resolve inside the microVM’s filesystem, not the node’s root filesystem.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reduced blast radius per workload&lt;/STRONG&gt;: each sandbox has its own VM boundary, making it much harder to pivot from one compromised workload to other pods/containers on the same node.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Stronger default device and privilege separation&lt;/STRONG&gt;: the hypervisor boundary and minimal virtual device model limit exposure to host devices and privileged interfaces that commonly enable breakouts.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Defense-in-depth still applies&lt;/STRONG&gt;: you can keep container hardening (seccomp, capability dropping, read-only filesystems, restricted mounts) while gaining an additional isolation layer that is independent of Linux namespaces/cgroups.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Overall, this post helps you deploy OpenClaw on AKS with Kata microVM isolation so you can run agent workloads with a significantly reduced risk of host-kernel compromise from container escape techniques.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Apr 2026 01:57:02 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/hardening-openclaw-on-aks-mitigating-container-escapes-with-kata/ba-p/4516030</guid>
      <dc:creator>jianshn</dc:creator>
      <dc:date>2026-04-30T01:57:02Z</dc:date>
    </item>
    <item>
      <title>How to Manage RC4 Hardening – Definitive Guide</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/how-to-manage-rc4-hardening-definitive-guide/ba-p/4515923</link>
      <description>&lt;H1&gt;How to Manage RC4 Hardening – Definitive Guide&lt;/H1&gt;
&lt;P&gt;This article is a technical continuation of the RC4 deprecation / Kerberos hardening work I covered in my &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/what-changed-in-rc4-with-the-january-2026-windows-update-and-why-it-is-important/4504732" target="_blank" rel="noopener" data-lia-auto-title="previous article" data-lia-auto-title-active="0"&gt;previous article&lt;/A&gt; last month. If you already went through the “why” (risk of RC4, what changes Microsoft is rolling out, and the high-level migration approach), the goal here is to get hands-on and precise: what exactly changes across the three rollout phases, which registry keys and AD attributes drive KDC behavior, what you should expect to see in security logs, and how to turn those signals into concrete remediation steps.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Prerequisites:&lt;/STRONG&gt; ensure the January update that introduces the RC4/Kerberos hardening telemetry is installed on all Domain Controllers. Without that patch, the Security log will not emit the new KDC events (201–209) and the Domain Controllers will not evaluate the related registry keys (&lt;EM&gt;RC4DefaultDisablementPhase&lt;/EM&gt; and &lt;EM&gt;DefaultDomainSupportedEncTypes&lt;/EM&gt;).&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Note: The information in this article applies only to supported operating systems released before 2025. I haven’t had the time to validate how these keys behave on 2025 versions.&lt;/U&gt;&lt;/P&gt;
&lt;H1&gt;Hardening Phases&lt;/H1&gt;
&lt;P&gt;Let's begin with a brief walkthrough of the hardening phases. For a detailed walkthrough of the rollout phases, see my previous article. Below is a technical summary of each phase of the RC4 hardening update.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Phase 1 - Auditing - January 2026&lt;/STRONG&gt;:
&lt;UL&gt;
&lt;LI&gt;starting from the January update, you can create the &lt;EM&gt;RC4DefaultDisablementPhase &lt;/EM&gt;registry key. Set it to&amp;nbsp;&lt;STRONG&gt;1&lt;/STRONG&gt; to enable logging of the new events (&lt;STRONG&gt;201-209&lt;/STRONG&gt;) on domain controllers.&lt;/LI&gt;
&lt;LI&gt;Nothing else changes, for now, the KDC will continue to issue RC4-encrypted tickets.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Phase 2 – Soft enforcement – April 2026&lt;/STRONG&gt;: the KDC will reject automatically requests that only support RC4 &lt;STRONG&gt;&lt;U&gt;if&lt;/U&gt;&lt;/STRONG&gt; the key DefaultDomainSupportedEncTypes has not been manually set to one of the available values to allow RC4 before applying the April update.&amp;nbsp;In this phase:
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;RC4DefaultDisablementPhase&lt;/STRONG&gt; is set to 2 but can be reverted to 1. &lt;U&gt;If the value was previously set to 1, the patch won’t override the value.&lt;/U&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;DefaultDomainSupportedEncTypes&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;: if the value of this key was not set when Phase 2 starts, the value is automatically set to&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;0x18&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; by default (AES-only). You can roll it back to &lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;0x1C, &lt;/STRONG&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;0x24 or 0x3C &lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;(you will understand the difference between those two values later in this article) if needed. However, &lt;U&gt;if you had previously defined this key, Microsoft will not override it&lt;/U&gt;.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Phase 3 – Hard enforcement – July 2026&lt;/STRONG&gt;, note that this phase won't disable RC4 completely, only the ability to default RC4 will be removed.
&lt;UL&gt;
&lt;LI&gt;the key &lt;EM&gt;RC4DefaultDisablementPhase&lt;/EM&gt; is no longer read&lt;/LI&gt;
&lt;LI&gt;In this phase, the only way to allow RC4 encryption is to manually set the&amp;nbsp;&lt;EM style="color: rgb(30, 30, 30);"&gt;msDS-SupportedEncryptionTypes&lt;/EM&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; attribute to &lt;/SPAN&gt;&lt;EM style="color: rgb(30, 30, 30);"&gt;0x1C&lt;/EM&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; (to allow RC4 only for the account) while having the GPO &lt;EM&gt;SupportedEncryptionTypes &lt;/EM&gt;set to support RC4. We can also set the&amp;nbsp;&lt;EM&gt;DefaultDomainSupportedEncTypes &lt;/EM&gt;to &lt;/SPAN&gt;&lt;EM style="color: rgb(30, 30, 30);"&gt;0x1C or 0x24&lt;/EM&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt; &lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;to allow RC4 for the entire environment.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Note that, if you want to apply the &lt;EM&gt;msDS-SupportedEncryptionTypes&lt;/EM&gt;&lt;STRONG&gt; &lt;/STRONG&gt;to allow RC4 at AD object level, but at the same time have the&amp;nbsp;&lt;EM&gt;DefaultDomainSupportedEncTypes&lt;/EM&gt; set to 0x18 you’ll need to set the &lt;EM&gt;SupportedEcryptionType &lt;/EM&gt;policy for the support of RC4 (more details in the scenarios section of this article).&lt;/P&gt;
&lt;H1&gt;Registry keys and attributes involved&lt;/H1&gt;
&lt;P&gt;In this section, you’ll find the list of all the registry keys, AD attributes, and GPOs involved in this hardening. The values shown are not exhaustive, I have listed only the specific values relevant to this hardening.&lt;/P&gt;
&lt;H3&gt;DefaultDomainSupportedEncTypes:&lt;/H3&gt;
&lt;P&gt;Path: &lt;EM&gt;HKLM\System\CurrentControlSet\Services\KDC&lt;/EM&gt; (Server 2016, Server 2019, Server 2022, 4B.26 Server 2025)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;EM&gt;HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters\&lt;/EM&gt; (Windows Server 2025 only)&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;This key need to be created manually if needed&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Possible values:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;0x27&lt;/STRONG&gt;: enable DES, RC4 and AES session key (default before hardening for pre-2025 OSs)
&lt;UL&gt;
&lt;LI&gt;Flags enabled: DES-CBC-CRC, DES-CBC-MD5, RC4-HMAC, AES256-CTS-HMAC-SHA1-96-SK&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x24&lt;/STRONG&gt;: Enable RC4 and AES session key:
&lt;UL&gt;
&lt;LI&gt;Flags Enabled: RC4-HMAC, AES256-CTS-HMAC-SHA1-96-SK&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x1C&lt;/STRONG&gt;: allow RC4 and AES:
&lt;UL&gt;
&lt;LI&gt;Flags enabled: RC4-HMAC, AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x3C&lt;/STRONG&gt;: enable RC4, AES and AES session key
&lt;UL&gt;
&lt;LI&gt;Flags enabled: RC4-HMAC, AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96-SK&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x18&lt;/STRONG&gt;: enable AES only (default value pre hardening for 2025)
&lt;UL&gt;
&lt;LI&gt;Flags enabled: AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x38&lt;/STRONG&gt;: enable AES and AES session key
&lt;UL&gt;
&lt;LI&gt;Flags enabled: AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96-SK&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Possible values and their meaning during all the phases:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Phase 1:&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;The value of this key won’t be changed during phase 1. if the key has not been manually set, you'll have the default value of you operating system during this phase&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Phase 2:&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;0x18&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;: default value for this phase. Block the use of RC4 encryption, only AES-128 and AES-256 are allowed. &lt;/SPAN&gt;&lt;U style="color: rgb(30, 30, 30);"&gt;If this key was already explicitly set to any other value before the starting of phase 2, the patch won’t override its value&lt;/U&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;0x24, 0x1C and 0x3C&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;: these values can be used for manual rollback to allow RC4, I’ll advise using the value 0x1C for increased security. &lt;STRONG&gt;*&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Phase 3:&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;0x18&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;: default value for this phase. Block the use of RC4 encryption, only AES-128 and AES-256 are allowed. &lt;/SPAN&gt;&lt;U style="color: rgb(30, 30, 30);"&gt;If this was already explicitly set to any other value, the patch won’t override its value&lt;/U&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;0x24, 0x1C and 0x3C&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;: these values can be used for manual rollback to allow RC4, I’ll advise using the value 0x1C for increased security. &lt;STRONG&gt;*&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;U&gt;Later in this article, you’ll find common scenarios to help you choose the right values based on your audit findings.&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;*&lt;/STRONG&gt; In our labs, setting the &lt;EM&gt;DefaultDomainSupportedEncTypes&lt;/EM&gt; to &lt;STRONG&gt;0x1C&lt;/STRONG&gt; caused login issues on &lt;STRONG&gt;Windows Server 2003&lt;/STRONG&gt; and &lt;STRONG&gt;Windows XP&lt;/STRONG&gt;. If you still have these operating systems, test this value carefully in your environment. We tried to set the key to &lt;STRONG&gt;0x24 &lt;/STRONG&gt;and we did not observe the same issues.&lt;/P&gt;
&lt;H3&gt;RC4DefaultDisablementPhase&lt;/H3&gt;
&lt;P&gt;Path: &lt;EM&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters&lt;/EM&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;Note that&amp;nbsp;&lt;U&gt;this key must be manually created and set &lt;/U&gt;and will be evaluated only after the installation of the January 2026 update.&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here you can find all the &lt;STRONG&gt;possible values during all phases&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Phase 1&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;:&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;: audit mode enabled, the events &lt;EM&gt;201-209 &lt;/EM&gt;are logged onto the domain controller when RC4 is being used (see the table below for details)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;: Kerberos will start assuming that RC4 has been disabled and will start to negotiate AES encryption by default&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Phase 2:&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;The values are the same reported for phase 1. With the April patch the value will change to 2 &lt;U&gt;only &lt;/U&gt;&lt;U style="color: rgb(30, 30, 30);"&gt;if the key was not explicitly set to 1 during phase 1&lt;/U&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;. Anyway, it can be reverted to 1&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Phase 3:&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;The key is no longer evaluated&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;msDS-SupportedEncryptionTypes&lt;/H3&gt;
&lt;P&gt;This attribute is found on all domain objects in the attribute editor tab.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;STRONG&gt;Value available for the attribute&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Null, not set or 0x0&lt;/STRONG&gt;: the encryption used depends on the value reported on the &lt;EM&gt;DefaultDomainSupportedEncTypes &lt;/EM&gt;key&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x3C&lt;/STRONG&gt;: enables RC4 AES and AES encryption key&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;Flags enabled: RC4-HMAC, AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96-SK&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x1C:&lt;/STRONG&gt; Enables RC4 and AES:&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;RC4-HMAC, AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x38&lt;/STRONG&gt;: enables AES and AES encryption key only
&lt;UL&gt;
&lt;LI&gt;Flags enabled: AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96-SK&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x18&lt;/STRONG&gt;: enables AES only
&lt;UL&gt;
&lt;LI&gt;Flags enabled: AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;U&gt;See the section reporting the common scenarios to understand how to correctly use this attribute in your environment.&lt;/U&gt;&lt;/P&gt;
&lt;H3&gt;SupportedEncryptionTypes&lt;/H3&gt;
&lt;P&gt;This registry key is populated by a &lt;STRONG&gt;GPO &lt;/STRONG&gt;on the DCs: “&lt;EM&gt;Network security: Configure encryption types allowed for Kerberos&lt;/EM&gt;”. The path of the GPO is "&lt;EM&gt;Computer Configuration &amp;gt; Policies &amp;gt; Windows Settings &amp;gt; Security Settings &amp;gt; Local Policies &amp;gt; Security Options"&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;You can find the related registry key at the path:&amp;nbsp; &lt;EM&gt;HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters\&lt;/EM&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;The values of the registry key depend on the GPO settings. &lt;STRONG&gt;The possible values are&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;0x7FFFFFFC&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;: this configuration is needed to support RC4 in your environment&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Encryption type supported&lt;/STRONG&gt;: RC4-HMAC, AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96-SK, FAST-supported, Compound-identity-supported, Claims-supported, Resource-SID-compression-disabled, Future encryption types&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;0x7FFFFFF8&lt;/STRONG&gt;: this is value for the recommended configuration
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Encryption types supported&lt;/STRONG&gt;: AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96-SK, FAST-supported, Compound-identity-supported, Claims-supported, Resource-SID-compression-disabled, Future encryption types&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;U&gt;See the section with the common scenarios to understand how to use this key&lt;/U&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Audit&lt;/H1&gt;
&lt;P&gt;This section lists the auditing events for this hardening and briefly explains what each one indicates. Starting in January 2026, some existing events were enhanced to surface additional encryption details, and new events were introduced that are available only after installing the January 2025 patch. Microsoft also made two really helpful scripts to collect and analyze events, you can find more details about those scripts at the end of this section.&lt;/P&gt;
&lt;H3&gt;Existing enhanced events&amp;nbsp;&lt;/H3&gt;
&lt;P&gt;Some existing events has been enhanced, and can be used for the auditing of RC4 usage, like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;4768&lt;/STRONG&gt;: A TGT ticket has been requested&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;4769&lt;/STRONG&gt;: A Kerberos service ticket has been requested&lt;/LI&gt;
&lt;/UL&gt;
&lt;img /&gt;
&lt;P&gt;Beyond identifying the client and account requesting the ticket, both events include several fields that are useful for analysis:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;msDS-SupportedEncryptionTypes&lt;/STRONG&gt;: show the value of this attribute for the account reported in the event&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Available keys&lt;/STRONG&gt;: shows all the available keys that has been found in AD for that object&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Ticket Encryption Type&lt;/STRONG&gt;: the actual ciphers used for the ticket encryption:
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;0x17&lt;/EM&gt; = RC4&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;0x12 &lt;/EM&gt;or &lt;EM&gt;0x13 &lt;/EM&gt;= AES&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Session Encryption Type&lt;/STRONG&gt;: the actual ciphers used for the session Encryption
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;0x17 &lt;/EM&gt;= RC4&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;0x12 &lt;/EM&gt;or &lt;EM&gt;0x13 &lt;/EM&gt;= AES&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Advertised Etypes&lt;/STRONG&gt;: lists the encryption types the client supports. If you see only RC4 or DES in this field, it means that we are looking at a legacy client; modern clients should advertise both RC4 and AES.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;: 4768 events are not correlated with any &lt;STRONG&gt;201-209&lt;/STRONG&gt; event, while for the 4769 events you can find the related 201-209 event to help you during the troubleshooting.&lt;/P&gt;
&lt;H3&gt;New events available&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;During the audit phase &lt;/STRONG&gt;we can see the system event log:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Event ID&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Type/Phase&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Meaning&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;201&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Warning&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The client only supports RC4 and the target service's&amp;nbsp;msDS-SupportedEncryptionTypes&amp;nbsp;is&amp;nbsp;&lt;STRONG&gt;not defined&lt;/STRONG&gt;. This will fail under enforcement.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;202&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Warning&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The target service account's&amp;nbsp;msDS-SupportedEncryptionTypes&amp;nbsp;is&amp;nbsp;&lt;STRONG&gt;not defined&lt;/STRONG&gt;&amp;nbsp;and the&amp;nbsp;&lt;STRONG&gt;service account only has insecure (RC4) keys.&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;205&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Warning&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The KDC detected that the domain controller has&amp;nbsp;DefaultDomainSupportedEncTypes&amp;nbsp;&lt;STRONG&gt;explicitly&lt;/STRONG&gt;&amp;nbsp;defined to include insecure encryption (RC4) Microsoft will&amp;nbsp;&lt;STRONG&gt;not&lt;/STRONG&gt;&amp;nbsp;automatically override this&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;206&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Warning&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The target service's&amp;nbsp;msDS-SupportedEncryptionTypes&amp;nbsp;is explicitly set to&amp;nbsp;&lt;STRONG&gt;AES-only&lt;/STRONG&gt;, but the client doesn't advertise AES-SHA1&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;207&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Warning&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The target service's&amp;nbsp;msDS-SupportedEncryptionTypes&amp;nbsp;is explicitly set to&amp;nbsp;&lt;STRONG&gt;AES-only&lt;/STRONG&gt;, but the service account&amp;nbsp;&lt;STRONG&gt;doesn't have AES-SHA1 keys&lt;/STRONG&gt;&amp;nbsp;(password not reset).&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;During the enforcement phase,&lt;/STRONG&gt; you can find these events in the system event log:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Event ID&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Type/Phase&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Meaning&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;203&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Error&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The KDC&amp;nbsp;&lt;STRONG&gt;blocked&lt;/STRONG&gt;&amp;nbsp;a service ticket because the client only supports insecure types and the service has no explicit encryption config.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;204&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Error&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The KDC&amp;nbsp;&lt;STRONG&gt;blocked&lt;/STRONG&gt;&amp;nbsp;a service ticket because the service account only has insecure keys and has no explicit encryption config.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;205&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Warning&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The KDC detected that the domain controller has&amp;nbsp;DefaultDomainSupportedEncTypes&amp;nbsp;&lt;STRONG&gt;explicitly&lt;/STRONG&gt;&amp;nbsp;defined to include insecure encryption (RC4) Microsoft will&amp;nbsp;&lt;STRONG&gt;not&lt;/STRONG&gt;&amp;nbsp;automatically override this&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;208&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Error&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The KDC&amp;nbsp;&lt;STRONG&gt;denied&lt;/STRONG&gt;&amp;nbsp;a service ticket because the client doesn't support AES-SHA1 and the service requires it.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;209&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Error&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;The KDC&amp;nbsp;&lt;STRONG&gt;denied&lt;/STRONG&gt;&amp;nbsp;a service ticket because the service requires AES-SHA1 but has no AES keys.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below is a list of possible remediation steps based on the events you observe:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;201 and 203&lt;/STRONG&gt;: these events usually indicate that we are looking to a legacy device. My advice is to correlate this finding to the related 4769 event. The goal is understand if the device is legacy or not:
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;The device is legacy&lt;/STRONG&gt;: the device does not support AES and needs to be updated. If the update is not feasible now, you can set the &lt;EM&gt;msDS-SupportedEncryptionTypes &lt;/EM&gt;to 0x1C to allow RC4&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;The device is not legacy&lt;/STRONG&gt;: investigate the reason why the device does not have any AES keys available. Maybe the password of the AD account has not been reset in a long time, or there may be a policy applied to this object to enforce the use of RC4 only&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;202 and 204&lt;/STRONG&gt;: these events usually indicate that the password for the account is too old, so the account cannot generate any AES key for encryption.
&lt;UL&gt;
&lt;LI&gt;Reset the password and try the authentication again to confirm the resolution of the problem.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;206 and 208&lt;/STRONG&gt;: these events usually indicate a mismatch between the client and the account configuration. The account may be set to allow AES only but the client may be legacy one.
&lt;UL&gt;
&lt;LI&gt;You need to update the client, if the update is not feasible now, you can set the &lt;EM&gt;msDS-SupportedEncryptionTypes &lt;/EM&gt;to 0x1C to allow RC4&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;207 and 209&lt;/STRONG&gt;: the account is set to AES but cannot generate an AES ticket.
&lt;UL&gt;
&lt;LI&gt;Usually, you'll need to reset the password of the account to solve this issue.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;See the &lt;STRONG&gt;common scenarios&lt;/STRONG&gt; section for more details&lt;/P&gt;
&lt;H2&gt;Scripts&lt;/H2&gt;
&lt;P&gt;Microsoft provided two scripts to help us investigate the RC4 usage in our environment:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;List-AccountKeys.ps1&lt;/STRONG&gt;&amp;nbsp;to query event logs to enumerate available encryption keys for accounts.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Get-KerbEncryptionUsage.ps1&lt;/STRONG&gt;&amp;nbsp;to identify Kerberos encryption types in use, with filtering options for specific algorithms like RC4.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The scripts are available in this repository: &lt;A href="https://github.com/microsoft/Kerberos-Crypto" target="_blank" rel="noopener"&gt;Microsoft's Kerberos-Crypto GitHub repository&lt;/A&gt;&lt;/P&gt;
&lt;H4&gt;Get-KerbEncryptionUsage.ps1&lt;/H4&gt;
&lt;P&gt;This script can identify the usage of RC4 encryption in the environment by analyzing the events recorded on the domain controllers. The info are collected primarily from the events 4768 and 4769. In the output you’ll find date and time of the event, the requestor and the type of ticket and session encryption used.&lt;/P&gt;
&lt;P&gt;Example:&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;.\Get-KerbEncryptionUsage.ps1 -Encryption RC4 -Searchscope AllKdcs | Export-Csv -Path .\KerbUsage_DC01.csv -NoTypeInformation -Encoding UTF8&lt;/LI-CODE&gt;
&lt;H4&gt;List-AccountKeys.ps1&lt;/H4&gt;
&lt;P&gt;This script is useful to identify which key are available for an object (service account, user, computer account).&lt;/P&gt;
&lt;H2&gt;Event forwarding&lt;/H2&gt;
&lt;P&gt;If you have a SIEM available on your environment: lucky you! There is a wonderful article that explains how to collect and forward the event to the SIEM to analyze them: &lt;A href="https://techcommunity.microsoft.com/blog/askds/so-you-think-you%E2%80%99re-ready-for-enforcing-aes-for-kerberos/4080124" target="_blank" rel="noopener"&gt;So, you think you’re ready for enforcing AES for Kerberos? | Microsoft Community Hub&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Common Scenarios&lt;/H1&gt;
&lt;P&gt;This section will cover the common scenarios that we may find in the customer’s environment and how to approach it&lt;/P&gt;
&lt;H3&gt;I have only few objects that are using RC4&lt;/H3&gt;
&lt;P&gt;Scenario:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;During the audit phase I found &lt;STRONG&gt;&lt;U&gt;few &lt;/U&gt;legacy devices and applications not compatible with AES&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;I cannot update those devices/applications before the July 2026 phase (enforcement phase)&lt;/LI&gt;
&lt;LI&gt;I need to leave RC4 enabled for only those objects&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;DOs:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;SupportedEncryptionTypes&lt;/STRONG&gt;: you need to set this key to&amp;nbsp;&lt;STRONG&gt;0x7FFFFFFC &lt;/STRONG&gt;to allow the support of RC4 using the GPO (see the "Registry keys and attributes involved" section of this article), otherwise even if the attribute &lt;STRONG&gt;msDS-SupportedEncryptionTypes &lt;/STRONG&gt;is set to support RC4, the authentication will break, because the KDC won't know how to interpret RC4.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;msDS-SupportedEncryptionTypes&lt;/STRONG&gt;: this attribute needs to be set to 0x1C to support RC4&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;DefaultDomainSupportedEncTypes&lt;/STRONG&gt;: can be set to 0x18, this sets AES as the default encryption type for the domain. So, all the account that have the msDS-SupportedEncryptionTypes not set, will use AES by dafault&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;In this scenario, new accounts and computers will use AES by default, while accounts with the attribute &lt;STRONG&gt;msDS-SupportedEncryptionTypes&lt;/STRONG&gt; set to &lt;STRONG&gt;0x1C&lt;/STRONG&gt; will still use RC4. This works because the KDC is configured to allow RC4 even though AES remains the domain’s default.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Note that having devices and applications that rely on RC4, will lower the security posture of your environment, my advice would be to remediate those devices/applications asap&lt;/U&gt;.&lt;/P&gt;
&lt;H3&gt;Many services rely on RC4&lt;/H3&gt;
&lt;P&gt;Scenario:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;During the audit phase I found &lt;STRONG&gt;&lt;U&gt;many &lt;/U&gt;devices not compatible with AES&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;I cannot update those devices/applications before the July 2026 phase (enforcement phase)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If there are too many devices to be remediated using the &lt;STRONG&gt;msDS-SupportedEncryptionTypes &lt;/STRONG&gt;attribute, you’ll need to keep RC4 enabled by default at the domain level:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;DefaultDomainSupportedEncTypes&lt;/STRONG&gt;: needs to be set to &lt;STRONG&gt;0x1C&lt;/STRONG&gt;&lt;EM&gt; &lt;/EM&gt;to allow both AES and RC4&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SupportedEncryptionTypes&lt;/STRONG&gt;: needs to be set to &lt;STRONG&gt;0x7FFFFFFC&lt;/STRONG&gt; (see the "Registry keys and attributes involved" section for more information about this setting)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;msDS-SupportedEncryptionTypes&lt;/STRONG&gt;: this attribute does not need to be changed in this scenario.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;In this scenario you can evaluate the possibility to use the attribute &lt;STRONG&gt;msDS-SupportedEncryptionType &lt;/STRONG&gt;to secure some critical modern devices and applications by setting the attribute to &lt;STRONG&gt;0x18 &lt;/STRONG&gt;or &lt;STRONG&gt;0x38 &lt;/STRONG&gt;to allow only AES encryption for those objects.&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;No services rely on RC4&lt;/H3&gt;
&lt;P&gt;Congratulations!! This is the best scenario, you don’t have any legacy devices or applications that can rely only on RC4.&lt;/P&gt;
&lt;P&gt;DOs:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;DefaultDomainSupportedEncTypes&lt;/STRONG&gt;: you can leave it to the July 2026 default (&lt;STRONG&gt;0x18&lt;/STRONG&gt;)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SupportedEncryptionTypes&lt;/STRONG&gt;: can be set to &lt;STRONG&gt;0x7FFFFFF8 &lt;/STRONG&gt;(see the "Registry keys and attributes involved" section for more information about this setting)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;msDS-SupportedEncryptionTypes&lt;/STRONG&gt;: there is no need to change this attribute in this scenario&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Conclusion&lt;/H1&gt;
&lt;P&gt;The RC4 hardening rollout is one of those changes that looks simple on paper “move everything to AES”, but succeeds or fails based on how well you turn Kerberos telemetry into an inventory of real dependencies. Across the three phases (audit, soft enforcement, hard enforcement), the KDC gradually shifts from observing RC4 usage to actively rejecting it, and by Phase 3 the domain-wide “allow RC4” escape hatch is gone.&lt;/P&gt;
&lt;P&gt;Use Phase 1 and the first part of Phase 2 to build a remediation backlog from the new KDC events (201–209) and the enhanced 4768/4769 fields.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also keep in mind the blind spots: the &lt;STRONG&gt;&lt;U&gt;absence of KDCSVC audit events does not guarantee that all systems will function correctly after enforcement&lt;/U&gt;&lt;/STRONG&gt;. These events focus on service ticket requests involving default/implicit encryption behavior; explicitly configured accounts, TGT requests, and non-Windows or embedded Kerberos stacks can still fail in ways that are not surfaced by 201–209 alone.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;FAQs&lt;/H1&gt;
&lt;H5&gt;Are there impacts in the forest trusts?&lt;/H5&gt;
&lt;P&gt;Test external trusts for impact. Trusts between domains in the same forest have used AES since the November 2022 patch. Before enforcing AES-only across a forest, validate that the trusted forest supports AES.&lt;/P&gt;
&lt;H5&gt;I don’t see any 201-209 events in my environment, does it means that my environment won’t be impacted?&lt;/H5&gt;
&lt;P&gt;No, the absence of KDCSVC audit events does not guarantee that all systems will function correctly after enforcement. These events focus on service ticket requests involving default/implicit encryption behavior; explicitly configured accounts, TGT requests, and non-Windows or embedded Kerberos stacks can still fail in ways that are not surfaced by 201–209 alone.&lt;/P&gt;
&lt;H5&gt;Is the msDS-SupportedEncryptionTypes key evaluated by Windows XP and Windows 2003 OSs?&lt;/H5&gt;
&lt;P&gt;No, those operating systems are not capable to read the msDS-SupportedEncryptionTypes key. In this case, to allow the use of RC4 you’ll need to use the DefaultDomainSupportedEncTypes set to 0x24&lt;/P&gt;
&lt;H1&gt;Useful Resources&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;Encryption Type Calculator: &lt;A href="https://strongwind1.github.io/Kerberos/security/etype-calculator.html?utm_source=copilot.com#msds=0x18" target="_blank" rel="noopener"&gt;Encryption Type Calculator - Kerberos in Active Directory&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/askds/what-is-going-on-with-rc4-in-kerberos/4489365" target="_blank" rel="noopener"&gt;What is going on with RC4 in Kerberos? | Microsoft Community Hub&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Supported Encryption Types Bit Flags &lt;A href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/6cfc7b50-11ed-4b4d-846d-6f08f0812919" target="_blank" rel="noopener"&gt;[MS-KILE]: Supported Encryption Types Bit Flags | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;How to manage Kerberos KDC usage of RC4 for service account ticket issuance changes related to CVE-2026-20833 &lt;A href="https://support.microsoft.com/en-us/topic/how-to-manage-kerberos-kdc-usage-of-rc4-for-service-account-ticket-issuance-changes-related-to-cve-2026-20833-1ebcda33-720a-4da8-93c1-b0496e1910dc?preview=true" target="_blank" rel="noopener"&gt;How to manage Kerberos KDC usage of RC4 for service account ticket issuance changes related to CVE-2026-20833 - Microsoft Support&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Event 4769: &lt;A href="https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769" target="_blank" rel="noopener"&gt;4769(S, F) A Kerberos service ticket was requested. - Windows 10 | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;How to manage the Kerberos protocol changes related to CVE-2022-37966 &lt;A href="https://support.microsoft.com/en-us/topic/kb5021131-how-to-manage-the-kerberos-protocol-changes-related-to-cve-2022-37966-fd837ac3-cdec-4e76-a6ec-86e67501407d" target="_blank" rel="noopener"&gt;KB5021131: How to manage the Kerberos protocol changes related to CVE-2022-37966 - Microsoft Support&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Detect and remediate RC4 usage &lt;A href="https://learn.microsoft.com/en-us/windows-server/security/kerberos/detect-remediate-rc4-kerberos#use-powershell-to-audit-rc4-usage" target="_blank" rel="noopener"&gt;Detect and Remediate RC4 Usage in Kerberos | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Disclaimer&lt;/H4&gt;
&lt;P&gt;The content of this article is based on available public documentation and test performed on a personal lab environment. The information is provided AS IS without a warranty of any kind. Microsoft further disclaims all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use of the reported information contained in this documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the document be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the data in this documentation, even if Microsoft has been advised of the possibility of such damages.&lt;BR /&gt;&lt;U&gt;In short: Every environment is different, please test the changes before the implementation in your production environment&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 May 2026 12:20:17 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/how-to-manage-rc4-hardening-definitive-guide/ba-p/4515923</guid>
      <dc:creator>Elanor92</dc:creator>
      <dc:date>2026-05-28T12:20:17Z</dc:date>
    </item>
    <item>
      <title>Extracting and Auditing Azure DevOps Permissions at Scale with PowerShell</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/extracting-and-auditing-azure-devops-permissions-at-scale-with/ba-p/4515274</link>
      <description>&lt;H1&gt;Introduction&lt;/H1&gt;
&lt;P&gt;Azure DevOps organizations accumulate permissions over time. Groups are created, users are added, Entra (Azure AD) groups are nested into project groups, and team structures evolve. For organizations subject to compliance requirements, security reviews, or simply wanting to understand who has access to what, the Azure DevOps portal provides a per-group, per-namespace view that does not scale.&lt;/P&gt;
&lt;P&gt;The Azure DevOps REST APIs expose the underlying security model — security namespaces, Access Control Lists (ACLs), Access Control Entries (ACEs), and bitmask-encoded permissions — but consuming these APIs and translating raw data into actionable output requires significant effort.&lt;/P&gt;
&lt;P&gt;The blog post introduces &lt;STRONG&gt;ADO Permissions Output&lt;/STRONG&gt;, an open-source PowerShell toolset that extracts Azure DevOps security permissions across 30+ security namespaces, resolves cryptic tokens and GUIDs into human-readable names, and produces structured JSON and CSV output suitable for auditing, compliance, and import into Power BI.&lt;/P&gt;
&lt;P&gt;The toolset is available on GitHub: &lt;A class="lia-external-url" href="https://github.com/sckissel/ADO-Permissions-Output" target="_blank" rel="noopener"&gt;ADO-Permissions-Output&lt;/A&gt;&lt;/P&gt;
&lt;H1&gt;The Problem&lt;/H1&gt;
&lt;P&gt;Consider a typical Azure DevOps organization with multiple projects, dozens of custom groups, Entra-backed security groups, and permissions set at the repository, build pipeline, release pipeline, area path, and service endpoint levels. An auditor needs to answer questions like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Which groups have &lt;STRONG&gt;Deny&lt;/STRONG&gt; permissions on a specific Git repository?&lt;/LI&gt;
&lt;LI&gt;Who has &lt;STRONG&gt;Edit build pipeline&lt;/STRONG&gt; access across all projects?&lt;/LI&gt;
&lt;LI&gt;Are there disabled Entra users still showing as members of ADO groups?&lt;/LI&gt;
&lt;LI&gt;Which users have access but have never logged in?&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The ADO portal answers these one group at a time. The REST APIs answer them in bitmasks and GUIDs. This tool bridges the gap.&lt;/P&gt;
&lt;H1&gt;What the Tool Does&lt;/H1&gt;
&lt;P&gt;At a high level, the tool:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Authenticates to Azure DevOps using a Personal Access Token (PAT)&lt;/LI&gt;
&lt;LI&gt;Enumerates all security namespaces in the organization&lt;/LI&gt;
&lt;LI&gt;Fetches all groups, users, and teams&lt;/LI&gt;
&lt;LI&gt;For each namespace, retrieves ACLs with extended info (effective and inherited permissions)&lt;/LI&gt;
&lt;LI&gt;Decodes bitmask permissions against the namespace action list&lt;/LI&gt;
&lt;LI&gt;Resolves security tokens (GUIDs, paths) to friendly names (project names, repo names, query paths, etc.)&lt;/LI&gt;
&lt;LI&gt;Outputs structured JSON per project with Allow, Deny, Effective, and Inherited permissions clearly labeled&lt;/LI&gt;
&lt;LI&gt;Optionally generates a group membership report with user entitlement status&lt;/LI&gt;
&lt;/OL&gt;
&lt;H1&gt;Architecture Overview&lt;/H1&gt;
&lt;img&gt;Flowchart of PowerShell and JSON files, their purposes, the REST API endpoints that are called, and the outputs files.&lt;/img&gt;
&lt;P&gt;The solution consists of three PowerShell files:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN lia-align-left"&gt;&lt;table border="1" style="width: 88.5185%; height: 213px; border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;File&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Purpose&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;SecurityMain.ps1&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Entry point — loads modules, sets up directories, orchestrates execution&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;SecurityHelper.psm1&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Core engine — namespace enumeration, ACL fetching, bitmask decoding, token resolution&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;ProjectAndGroup.psm1&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Group membership reporting, user entitlement enrichment, directory setup&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 27.8582%" /&gt;&lt;col style="width: 72.1418%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;Configuration is driven by &lt;EM&gt;ProjectDef.json&lt;/EM&gt;, which specifies output directories, filenames, and which namespaces to extract.&lt;/P&gt;
&lt;P&gt;All REST API calls route through a centralized Invoke-AdoRestMethod wrapper that provides automatic retry with exponential back-off for HTTP 429 (throttle) and transient server errors.&lt;/P&gt;
&lt;H1&gt;Setting Up the Pipeline&lt;/H1&gt;
&lt;P&gt;The tool is designed for unattended execution in an Azure Pipelines pipeline. The included `main.yml` defines a parameterized pipeline that can be run manually from the ADO UI. Additionally, a trigger can be configured to run on a schedule.&lt;/P&gt;
&lt;H2&gt;Prerequisites&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;A &lt;STRONG&gt;Personal Access Token&lt;/STRONG&gt; with read permissions across security, graph, build, release, work items, service endpoints, dashboards, and analytics scopes&lt;/LI&gt;
&lt;LI&gt;A &lt;STRONG&gt;Variable Group&lt;/STRONG&gt; named ADOPermissions containing the PAT as a secret variable&lt;/LI&gt;
&lt;LI&gt;The &lt;STRONG&gt;Build Service&lt;/STRONG&gt; identity needs Contribute permission on the repository (for committing output back)&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2&gt;Running the Pipeline&lt;/H2&gt;
&lt;P&gt;When you run the pipeline, the "Run pipeline" dialog presents parameters for the organization name, project name, and optional features like the membership report and AAD group recursion.&lt;/P&gt;
&lt;img&gt;Azure DevOps Pipeline Run dialog from YAML configuration.&lt;/img&gt;
&lt;P&gt;The pipeline extracts permissions, commits the output back to the repository, and optionally publishes the output as a pipeline artifact.&lt;/P&gt;
&lt;H1&gt;Understanding the Permissions Output&lt;/H1&gt;
&lt;P&gt;The primary output is a JSON file per project. Each entry represents a single permission assignment:&lt;/P&gt;
&lt;LI-CODE lang="json"&gt;{
     "Namespace": "Git Repositories",
     "Project": "MyProject",
     "Object": "my-repo",
     "Type": "Group",
     "UserGroupName": "Contributors",
     "PermissionType": "Allow",
     "Permission": "Contribute",
     "Bit": 4
}&lt;/LI-CODE&gt;
&lt;P&gt;Permissions are reported as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Allow&lt;/STRONG&gt; — Explicitly granted&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Deny&lt;/STRONG&gt; — Explicitly denied&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Allow (Effective)&lt;/STRONG&gt; — Granted through inheritance&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Allow (Inherited)&lt;/STRONG&gt; — Inherited from a parent scope&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Deny (Effective)&lt;/STRONG&gt; and &lt;STRONG&gt;Deny (Inherited)&lt;/STRONG&gt; — Same patterns for deny permissions&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Token Resolution&lt;/H2&gt;
&lt;P&gt;One of the most valuable features is that raw security tokens are resolved inline. Instead of seeing &lt;EM&gt;repoV2/c847308e-d632-4e7f-a7fb-6f4db280bbaa/a1b2c3d4-...&lt;/EM&gt;, the output shows the actual repository name, build definition name, query path, area path, or service endpoint name.&lt;/P&gt;
&lt;P&gt;This resolution covers:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Project names&lt;/LI&gt;
&lt;LI&gt;Git repository names&lt;/LI&gt;
&lt;LI&gt;Build and release definitions&lt;/LI&gt;
&lt;LI&gt;Work item queries (including nested folder paths)&lt;/LI&gt;
&lt;LI&gt;Area paths and iterations&lt;/LI&gt;
&lt;LI&gt;Dashboards (project and team level)&lt;/LI&gt;
&lt;LI&gt;Service endpoints&lt;/LI&gt;
&lt;LI&gt;Variable groups and secure files&lt;/LI&gt;
&lt;LI&gt;Agent pools&lt;/LI&gt;
&lt;LI&gt;Environments&lt;/LI&gt;
&lt;LI&gt;Plans and process templates&lt;/LI&gt;
&lt;LI&gt;Analytics views&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;The Membership Report&lt;/H1&gt;
&lt;P&gt;When &lt;EM&gt;-IncludeMembership&lt;/EM&gt; is enabled, the tool generates a separate report showing who belongs to each group and what parent groups each group belongs to.&lt;/P&gt;
&lt;img&gt;JSON output of user and group memberships per Azure DevOps group.&lt;/img&gt;
&lt;H2&gt;Detecting Stale and Ghost Members&lt;/H2&gt;
&lt;P&gt;The membership report includes &lt;EM&gt;Status &lt;/EM&gt;and &lt;EM&gt;LastAccessedDate &lt;/EM&gt;from the User Entitlements API, along with a &lt;EM&gt;ResolvedVia&lt;/EM&gt; field that indicates how each member was discovered.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 99.2593%; border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;ResolvedVia&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Status&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;LastAccessedDate&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Meaning&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;ADO Membership API&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;active&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Recent date&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Active user, using ADO&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;ADO Membership API&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;active&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Null or very old&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Has access, never logged in&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;ADO Membership API&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;disabled&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Any&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Admin disabled their ADO access&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;ADO Membership API&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Null&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Null&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;ADO identity exists but entitlement removed&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Hierarchy Group Expansion&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;active&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Recent date&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Active user, also in an Entra group&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Hierarchy Group Expansion&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Null&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Null&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Ghost member — visible in ADO UI via Entra group but has no ADO entitlement&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 20.3548%" /&gt;&lt;col style="width: 8.21662%" /&gt;&lt;col style="width: 14.4715%" /&gt;&lt;col style="width: 56.9571%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H2&gt;AAD/Entra Group Recursion&lt;/H2&gt;
&lt;P&gt;When &lt;EM&gt;-RecurseAADGroups&lt;/EM&gt; is enabled, the tool resolves the actual members of Entra (Azure AD) groups that are nested inside ADO groups. This uses the ADO Contribution HierarchyQuery API — the same API that the ADO portal uses to display group members.&lt;/P&gt;
&lt;P&gt;This is significant because the standard ADO Graph Memberships API does not return individual members of Entra groups — it only shows the Entra group itself as a member. The HierarchyQuery approach reveals the real users, including those whose Entra accounts have been disabled or deleted but still appear in the ADO UI through group membership.&lt;/P&gt;
&lt;H1&gt;Importing into Power BI&lt;/H1&gt;
&lt;P&gt;The JSON output is directly importable into Power BI for visualization and analysis.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open Power BI Desktop&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Get Data&lt;/STRONG&gt; &amp;gt; &lt;STRONG&gt;JSON&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Select the permissions or membership JSON file&lt;/LI&gt;
&lt;LI&gt;The data loads as a table ready for filtering, pivoting, and visualization&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Alternatively, use the &lt;EM&gt;-OutputFormat&lt;/EM&gt; &lt;EM&gt;CSV &lt;/EM&gt;parameter to produce CSV files for direct import via &lt;STRONG&gt;Data&lt;/STRONG&gt; &amp;gt; &lt;STRONG&gt;From Text/CSV&lt;/STRONG&gt;.&lt;/P&gt;
&lt;img&gt;Power BI Dashboard layout of Namespaces, project permissions, user and group names, and count of project permissions.&lt;/img&gt;
&lt;P&gt;Common Power BI analyses:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Permission heatmap by namespace and group&lt;/LI&gt;
&lt;LI&gt;Users with Deny permissions across all projects&lt;/LI&gt;
&lt;LI&gt;Group membership overlap between projects&lt;/LI&gt;
&lt;LI&gt;Stale users (active entitlement but no recent access)&lt;/LI&gt;
&lt;LI&gt;Ghost members from Entra group expansion&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;Key Design Decisions&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;Sequential execution.&lt;/STRONG&gt; The tool processes namespaces sequentially rather than in parallel. This avoids the ADO API throttle penalty box (HTTP 429), which can delay an entire pipeline run. The retry wrapper handles transient 429s with &lt;EM&gt;Retry-After&lt;/EM&gt; header respect, but sequential processing prevents them from occurring in the first place.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PAT authentication only.&lt;/STRONG&gt; The tool uses Personal Access Token authentication with Basic auth headers. This keeps the solution simple — no Entra app registrations, managed identities, or module dependencies. The PAT is stored in an ADO Variable Group marked as secret.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Read-only operation.&lt;/STRONG&gt; The tool does not modify any permissions, groups, or resources. All API calls are GET or POST (for subject lookups and HierarchyQuery). It is safe to run against production organizations.&lt;/P&gt;
&lt;H1&gt;Getting Started&lt;/H1&gt;
&lt;OL&gt;
&lt;LI&gt;Clone the repository: &lt;EM&gt;git clone https://github.com/sckissel/ADO-Permissions-Output.git&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Create a PAT with the required scopes (see the &lt;A class="lia-external-url" href="https://github.com/sckissel/ADO-Permissions-Output/blob/main/README.md" target="_blank" rel="noopener"&gt;README&lt;/A&gt; for the full list)&lt;/LI&gt;
&lt;LI&gt;For pipeline execution, follow the setup instructions in the README to create the Variable Group and pipeline definition.&lt;/LI&gt;
&lt;LI&gt;For local testing:&lt;/LI&gt;
&lt;/OL&gt;
&lt;LI-CODE lang="powershell"&gt;./SecurityMain.ps1 `
-PAT "&amp;lt;your-pat&amp;gt;" `
-VSTSMasterAcct "yourorg" `
-projectName "YourProject" `
-allProjects "False" `
-DirRoot "C:\ADOSecurity" `
-IncludeMembership "True" `
-RecurseAADGroups "True" `
-OutputFormat "Both"&lt;/LI-CODE&gt;
&lt;H1&gt;Conclusion&lt;/H1&gt;
&lt;P&gt;Auditing Azure DevOps permissions at scale requires more than the portal provides. This toolset bridges the gap between the raw security APIs and actionable audit output, resolving cryptic tokens into readable names, surfacing effective and inherited permissions, and detecting stale or ghost group members through Entra group expansion.&lt;/P&gt;
&lt;P&gt;The tool is open source, requires only PowerShell 7 and a PAT, and is designed for unattended pipeline execution with output committed back to the repository for version-tracked audit history.&lt;/P&gt;
&lt;P&gt;Feedback, issues, and contributions are welcome on GitHub: &lt;A class="lia-external-url" href="https://github.com/sckissel/ADO-Permissions-Output" target="_blank" rel="noopener"&gt;ADO-Permissions-Output&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for reading!&lt;/P&gt;
&lt;H1&gt;Disclaimer&lt;/H1&gt;
&lt;P&gt;The sample scripts are not supported under any Microsoft standard support program or service. The sample scripts are provided AS IS without warranty of any kind. Microsoft further disclaims all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Apr 2026 06:38:27 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/extracting-and-auditing-azure-devops-permissions-at-scale-with/ba-p/4515274</guid>
      <dc:creator>skissel</dc:creator>
      <dc:date>2026-04-28T06:38:27Z</dc:date>
    </item>
    <item>
      <title>Designing Outbound Connectivity for "Private Subnets" in Azure</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/designing-outbound-connectivity-for-quot-private-subnets-quot-in/ba-p/4514258</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Why Private Subnets Change Everything&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Historically, Azure virtual machines relied on &lt;EM&gt;default outbound internet access&lt;/EM&gt;, where the platform automatically assigned a dynamic SNAT IP from a shared pool. This was convenient but problematic:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;❌ No deterministic outbound IP addresses&lt;/LI&gt;
&lt;LI&gt;❌ No traffic inspection or filtering&lt;/LI&gt;
&lt;LI&gt;❌ No FQDN or URL governance&lt;/LI&gt;
&lt;LI&gt;❌ Difficult to audit for compliance&lt;/LI&gt;
&lt;LI&gt;❌ Susceptible to noisy neighbor SNAT exhaustion&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;With private subnets, outbound access is disabled by default. This shifts the responsibility to the architect — deliberately. The result is an environment where:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;✅ Every outbound flow is intentional&lt;/LI&gt;
&lt;LI&gt;✅ Every outbound IP is known and documented&lt;/LI&gt;
&lt;LI&gt;✅ Every egress path can be governed and logged&lt;/LI&gt;
&lt;LI&gt;✅ Compliance evidence is straightforward to produce&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The question is no longer &lt;EM&gt;"does my VM have internet access?"&lt;/EM&gt; but rather &lt;EM&gt;"how exactly does my VM reach the internet, and is that path appropriate for this workload?"&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The Three Outbound Patterns at a Glance&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Option&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Primary Role&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Inspection&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Scale&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Cost&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Best For&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;NAT Gateway&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Managed outbound SNAT&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;❌ None&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;⭐⭐⭐ High&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;💲 Low&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Simple, scalable egress&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Azure Firewall&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Secure governed egress&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;✅ Full L3–L7&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;⭐⭐⭐ High&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;💲💲💲 Higher&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Security boundaries&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Load Balancer&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Legacy SNAT&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;❌ None&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;⭐⭐ Limited&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;💲 Low&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Legacy / transitional&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Scenario 1: NAT Gateway&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is NAT Gateway?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Azure NAT Gateway is &lt;STRONG&gt;a &lt;/STRONG&gt;fully managed, zone‑resilient, outbound‑only SNAT service. It attaches at the subnet level and automatically handles all outbound flows from that subnet using one or more static public IP addresses or prefixes.&lt;/P&gt;
&lt;P&gt;It is purpose‑built for one thing: providing predictable, scalable outbound internet access — without routing complexity or inline devices.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Key flow are depicted below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; VM → NAT Gateway: Automatic SNAT (no UDR required)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; NAT Gateway → Internet: Static, deterministic public IP&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Inbound: NOT supported (outbound only)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How it works (step by step)&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;VM initiates an outbound connection (e.g., HTTPS to an API)&lt;/LI&gt;
&lt;LI&gt;NAT Gateway intercepts the flow at the subnet boundary&lt;/LI&gt;
&lt;LI&gt;Source IP is translated to the NAT Gateway's static public IP&lt;/LI&gt;
&lt;LI&gt;The packet is forwarded to the internet&lt;/LI&gt;
&lt;LI&gt;Return traffic is automatically tracked and delivered back to the VM&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;No UDRs. No routing tables. No inline devices. &lt;STRONG&gt;It just works.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Strengths&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Massive SNAT scale&lt;/STRONG&gt; — no port exhaustion concerns at typical enterprise scale&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Deterministic outbound IPs&lt;/STRONG&gt; — easy to allowlist with external services&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Zone resilient&lt;/STRONG&gt; — survives availability zone failures&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Subnet scoped&lt;/STRONG&gt; — applies to all VMs in the subnet automatically&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;No routing configuration required&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Limitations&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;❌ No traffic inspection or filtering&lt;/LI&gt;
&lt;LI&gt;❌ No FQDN or URL policy enforcement&lt;/LI&gt;
&lt;LI&gt;❌ No threat intelligence integration&lt;/LI&gt;
&lt;LI&gt;❌ Cannot restrict &lt;EM&gt;which&lt;/EM&gt; internet destinations are allowed&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Best Fit Use Cases&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;✅ Application tiers calling external SaaS APIs&lt;BR /&gt;✅ VMs requiring OS updates and patch downloads&lt;BR /&gt;✅ CI/CD build agents and pipeline runners&lt;BR /&gt;✅ Spoke VNets in hub‑and‑spoke where east‑west goes through firewall, but simple internet egress is acceptable&lt;BR /&gt;✅ Dev/test environments&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Scenario 2: Azure Firewall&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is Azure Firewall?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Azure Firewall is a cloud‑native, stateful, L3–L7 network security service. When used for outbound egress, it transforms the egress path from a &lt;EM&gt;connectivity&lt;/EM&gt; function into a &lt;EM&gt;security enforcement boundary&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;Unlike NAT Gateway, Azure Firewall inspects every packet, evaluates it against policy, and either allows or denies it based on network rules, application rules, and threat intelligence feeds.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;KEY Flow are depicted below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; VM → UDR: Forces ALL outbound traffic to Firewall&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Firewall: Evaluates against policy before allowing&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Firewall → Internet: Only explicitly permitted flows pass&lt;/P&gt;
&lt;P&gt;&amp;nbsp; All denied flows: Logged and alertable&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How it works (step by step)&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;VM initiates an outbound connection&lt;/LI&gt;
&lt;LI&gt;UDR intercepts the flow and redirects to Azure Firewall's private IP&lt;/LI&gt;
&lt;LI&gt;Azure Firewall evaluates the traffic:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Network rules (IP/port match)&lt;/LI&gt;
&lt;LI&gt;Application rules (FQDN/URL match)&lt;/LI&gt;
&lt;LI&gt;Threat intelligence (known malicious IPs/domains)&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI&gt;If allowed: traffic is forwarded via Firewall's public IP&lt;/LI&gt;
&lt;LI&gt;If denied: traffic is dropped and logged&lt;/LI&gt;
&lt;LI&gt;All flows (allowed and denied) are logged to Log Analytics / Sentinel&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Strengths&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;✅ &lt;STRONG&gt;Full L3–L7 inspection&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;✅ &lt;STRONG&gt;FQDN and URL‑based filtering&lt;/STRONG&gt; (application rules)&lt;/LI&gt;
&lt;LI&gt;✅ &lt;STRONG&gt;Threat intelligence integration&lt;/STRONG&gt; (Microsoft TI feed)&lt;/LI&gt;
&lt;LI&gt;✅ &lt;STRONG&gt;TLS inspection&lt;/STRONG&gt; (Premium SKU)&lt;/LI&gt;
&lt;LI&gt;✅ &lt;STRONG&gt;Centralized governance&lt;/STRONG&gt; across multiple VNets via Firewall Manager&lt;/LI&gt;
&lt;LI&gt;✅ &lt;STRONG&gt;Rich logging&lt;/STRONG&gt; — every allowed and denied flow is recorded&lt;/LI&gt;
&lt;LI&gt;✅ &lt;STRONG&gt;IDPS&lt;/STRONG&gt; (Intrusion Detection and Prevention) available in Premium&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Limitations&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;❌ Higher cost (hourly + data processing charges)&lt;/LI&gt;
&lt;LI&gt;❌ Requires UDR configuration on each spoke subnet&lt;/LI&gt;
&lt;LI&gt;❌ Adds latency (small but non‑zero)&lt;/LI&gt;
&lt;LI&gt;❌ Requires careful SNAT configuration at scale&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Best Fit Use Cases&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;✅ Regulated industries (financial services, healthcare, government)&lt;BR /&gt;✅ Any workload where outbound internet is a &lt;STRONG&gt;security boundary&lt;/STRONG&gt;&lt;BR /&gt;✅ Environments requiring &lt;STRONG&gt;egress allowlisting&lt;/STRONG&gt; for compliance&lt;BR /&gt;✅ Hub‑and‑spoke architectures with centralized control plane&lt;BR /&gt;✅ SOC environments needing outbound flow telemetry&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Scenario 3: Load Balancer Outbound&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is Load Balancer Outbound?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Azure Load Balancer outbound rules were historically the primary mechanism for providing SNAT to VMs behind a Standard Load Balancer. While newer patterns (NAT Gateway, Azure Firewall) have largely replaced this approach for new designs, &lt;STRONG&gt;outbound rules remain valid in specific scenarios&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Key flows are depicted below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; VMs → Load Balancer: Backend pool members get SNAT&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LB Outbound Rules: Define port allocation per VM&lt;/P&gt;
&lt;P&gt;&amp;nbsp; ⚠️ Port exhaustion risk at scale&lt;/P&gt;
&lt;P&gt;&amp;nbsp; ⚠️ No inspection or policy enforcement&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How it works (step by step)&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;VM in the backend pool initiates an outbound connection&lt;/LI&gt;
&lt;LI&gt;Load Balancer applies SNAT using the frontend public IP&lt;/LI&gt;
&lt;LI&gt;Ephemeral ports are allocated per VM from a fixed pool&lt;/LI&gt;
&lt;LI&gt;Return traffic is tracked and delivered back to the correct VM&lt;/LI&gt;
&lt;LI&gt;If port pool is exhausted: connections fail (SNAT exhaustion)&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Strengths&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Lower cost than NAT Gateway or Firewall&lt;/LI&gt;
&lt;LI&gt;Tightly integrated with existing load‑balanced workloads&lt;/LI&gt;
&lt;LI&gt;Familiar operational model for legacy teams&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Limitations&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;❌ SNAT port pool is fixed and must be manually managed&lt;/LI&gt;
&lt;LI&gt;❌ Risk of SNAT exhaustion at scale&lt;/LI&gt;
&lt;LI&gt;❌ No traffic inspection&lt;/LI&gt;
&lt;LI&gt;❌ Less flexible than NAT Gateway&lt;/LI&gt;
&lt;LI&gt;❌ Not recommended for new designs&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Best Fit Use Cases&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;✅ Existing architectures already built around Azure Load Balancer&lt;BR /&gt;✅ Low outbound connection volume workloads&lt;BR /&gt;✅ Transitional architectures during modernization to NAT Gateway&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Decision Framework: Choosing the Right Outbound Pattern&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Common Pitfalls to Avoid&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;⚠️ Pitfall 1: Forgetting SNAT scale limits&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Load Balancer outbound rules allocate a &lt;STRONG&gt;fixed number of ephemeral ports per VM&lt;/STRONG&gt;. At scale this exhausts quickly. Use NAT Gateway instead.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;⚠️ Pitfall 2: Over‑securing low‑risk workloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Not every workload needs Azure Firewall for outbound. Dev/test and patch traffic are better served by NAT Gateway — simpler, cheaper, faster.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;⚠️ Pitfall 3: Mixing outbound models in the same subnet&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;NAT Gateway and Load Balancer outbound rules &lt;STRONG&gt;cannot coexist&lt;/STRONG&gt; on the same subnet. NAT Gateway always takes precedence. Plan your subnet boundaries carefully.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;⚠️ Pitfall 4: Blocking Azure platform dependencies&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Many Azure services still use public endpoints (even when Private Link is available). Ensure your outbound policy allows required Azure service tags before enforcing egress controls.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;⚠️ Pitfall 5: Relying on platform defaults&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Default outbound access is &lt;STRONG&gt;retired for new VNets&lt;/STRONG&gt;. Do not assume VMs can reach the internet without explicit configuration.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary and Key Takeaways&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Scenario&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Best Choice&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Why&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Simple internet egress at scale&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;NAT Gateway&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Scalable, predictable, no complexity&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Security boundary for egress&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Azure Firewall&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Inspection, FQDN rules, threat intel&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Legacy load‑balanced workloads&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Load Balancer Outbound&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Transitional only&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Regulated / compliance environments&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Azure Firewall&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Audit logs, policy enforcement&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Dev / test / patch traffic&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;NAT Gateway&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Low cost, low friction&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;The core principle&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Private subnets make outbound access intentional. Choose the outbound pattern that matches the risk level of the workload — not the most complex option available.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;References&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;https://learn.microsoft.com/azure/nat-gateway/nat-overview&lt;/LI&gt;
&lt;LI&gt;https://learn.microsoft.com/azure/firewall/overview&lt;/LI&gt;
&lt;LI&gt;https://learn.microsoft.com/azure/load-balancer/outbound-rules&lt;/LI&gt;
&lt;LI&gt;https://azure.microsoft.com/blog/default-outbound-access-for-vms-in-azure-will-be-retired&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 23 Apr 2026 21:28:09 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/designing-outbound-connectivity-for-quot-private-subnets-quot-in/ba-p/4514258</guid>
      <dc:creator>alexeyn1</dc:creator>
      <dc:date>2026-04-23T21:28:09Z</dc:date>
    </item>
    <item>
      <title>Strengthening Identity Resilience: A Deep Dive into Microsoft Entra Backup and Recovery</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/strengthening-identity-resilience-a-deep-dive-into-microsoft/ba-p/4513401</link>
      <description>&lt;P&gt;In the modern security landscape, we often say that "Identity is the new perimeter." We spend significant resources on Conditional Access, Phishing-Resistant MFA, and Identity Protection to keep the "bad guys" out. But what happens when the threat is already inside, or when a legitimate administrative action goes sideways?&lt;/P&gt;
&lt;P&gt;If our identity data the "brain" of our Microsoft 365 and Azure ecosystem is corrupted or maliciously altered, usr entire security posture collapses. Today, we’re exploring the new &lt;STRONG&gt;Microsoft Entra Backup and Recovery&lt;/STRONG&gt; capability, a native safety net designed to ensure usr identity infrastructure remains resilient against both accidents and attacks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why Native Backup Matters&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;For years, Entra ID&amp;nbsp; administrators relied on the &lt;STRONG&gt;Recycle Bin&lt;/STRONG&gt; for deleted objects. However, a major gap existed: &lt;STRONG&gt;Attribute Corruption.&lt;/STRONG&gt; If a script accidentally wipes the department and manager attributes for 10,000 users, or if a malicious actor modifies our most restrictive Conditional Access policies to create a backdoor, the Recycle Bin can't help us the objects aren't deleted; they are just &lt;EM&gt;wrong&lt;/EM&gt;. Restoring these specific states previously required complex PowerShell scripting or expensive third-party tools. Entra Backup and Recovery closes this gap by providing a native, automated way to "roll back" the state of usr objects.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Core Capabilities: How it Works&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The service is currently available in Public Preview for customers with &lt;STRONG&gt;Entra ID P1 or P2 licenses&lt;/STRONG&gt;. It operates on a simple yet powerful "Snapshot" model:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt; Automated Daily Snapshots&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;The system automatically captures a point-in-time view of our tenant every day. Currently, the service maintains a &lt;STRONG&gt;5-day retention window&lt;/STRONG&gt;. This allows us to look back at the state of our environment from yesterday or earlier in the week to find a "known good" configuration.&lt;/P&gt;
&lt;OL start="2"&gt;
&lt;LI&gt;&lt;STRONG&gt; Visibility via Difference Reports&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;One of the most powerful features is the &lt;STRONG&gt;Difference Report&lt;/STRONG&gt;. Before committing to a restoration, we can compare a specific snapshot against the live state of our tenant. The report provides a granular view of:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Object ID:&lt;/STRONG&gt; Exactly which user, group, or policy is affected.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Attribute Changes:&lt;/STRONG&gt; A side-by-side comparison showing the "Old Value" (from the backup) versus the "Current Value" (live in the tenant).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Metadata Loading:&lt;/STRONG&gt; While the first report may take a moment to load metadata, subsequent reports are lightning-fast, allowing for quick triaging during an incident.&lt;/LI&gt;
&lt;/UL&gt;
&lt;OL start="3"&gt;
&lt;LI&gt;&lt;STRONG&gt; Granular Restoration&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We aren't forced into an "all or nothing" recovery. We can choose to restore:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;An entire object class (e.g., all Conditional Access Policies).&lt;/LI&gt;
&lt;LI&gt;Specific object types (e.g., only Service Principals).&lt;/LI&gt;
&lt;LI&gt;Individual Object IDs for targeted fixes.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The "Defense in Depth" Identity Strategy&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Entra Backup and Recovery is not a standalone silo; it is the third pillar of a complete identity resilience strategy. To truly harden our tenant, we must coordinate these three features:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Pillar 1: Soft Delete (The Recycle Bin)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Used for &lt;STRONG&gt;Deleted Objects&lt;/STRONG&gt;. If a user or Microsoft 365 group is deleted, it sits in the Recycle Bin for 30 days. We can restore these easily via the portal or Graph API to maintain the original Object ID and SID.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Pillar 2: Protected Actions (The Vault)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To prevent an attacker from "hard deleting" our objects (purging them from the Recycle Bin so they can't be recovered), we must implement &lt;STRONG&gt;Protected &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Actions&lt;/STRONG&gt;.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;How it works:&lt;/STRONG&gt; we assign a "Conditional Access Authentication Context" to sensitive actions like Microsoft.Directory/deletedItems/delete.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;The Result:&lt;/STRONG&gt; Even a Global Admin cannot permanently purge an object unless they meet strict requirements, such as using a &lt;STRONG&gt;Phishing-Resistant MFA&lt;/STRONG&gt; key or working from a &lt;STRONG&gt;Secure Access Workstation (SAW)&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Pillar 3: Backup and Recovery (The Time Machine)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Used for &lt;STRONG&gt;Corruption and Configuration Drift&lt;/STRONG&gt;. When the object exists but its properties are compromised, this is our "Time Machine" to revert attributes and policy logic to a functional state.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Real-World Scenario: Recovering from a Bulk Logic Error&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Imagine an admin runs a bulk update script intended to update the JobTitle for the Sales team. Due to a logic error in the CSV, the script instead clears the SecurityGroup memberships and ExtensionAttributes for the entire department.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Detection:&lt;/STRONG&gt; Users lose access to apps because their group memberships are gone.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Analysis:&lt;/STRONG&gt; The Admin generates a &lt;STRONG&gt;Difference Report&lt;/STRONG&gt; between today and yesterday’s snapshot.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Validation:&lt;/STRONG&gt; The report confirms that 500 users now have "null" values for the affected attributes.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Recovery:&lt;/STRONG&gt; The Admin selects those 500 User IDs and hits &lt;STRONG&gt;Restore&lt;/STRONG&gt;. Within minutes, the attributes are repopulated, and dynamic group memberships begin to recalculate automatically.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Conclusion and Next Steps&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The preview of Microsoft Entra Backup and Recovery is a significant step forward in native tenant protection. By combining it with &lt;STRONG&gt;Protected Actions&lt;/STRONG&gt; and the &lt;STRONG&gt;Recycle Bin&lt;/STRONG&gt;, organizations can finally achieve a "circular" protection model for identity.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Ready to try it?&lt;/STRONG&gt; Navigate to the &lt;STRONG&gt;Microsoft Entra Admin Center&lt;/STRONG&gt;, look for &lt;STRONG&gt;Backup and Recovery&lt;/STRONG&gt; in the left-hand navigation, and explore usr first snapshot today.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Apr 2026 14:49:07 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/strengthening-identity-resilience-a-deep-dive-into-microsoft/ba-p/4513401</guid>
      <dc:creator>Farooque</dc:creator>
      <dc:date>2026-04-21T14:49:07Z</dc:date>
    </item>
    <item>
      <title>Running multimedia AI models on Container Apps with Serverless GPU (A100 &amp; T4)</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/running-multimedia-ai-models-on-container-apps-with-serverless/ba-p/4513063</link>
      <description>&lt;P&gt;A video format is available for watching.&lt;/P&gt;
&lt;div data-video-id="https://www.youtube.com/watch?v=WMYlQNLkMJQ/1776705195051" data-video-remote-vid="https://www.youtube.com/watch?v=WMYlQNLkMJQ/1776705195051" class="lia-video-container lia-media-is-center lia-media-size-large"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FWMYlQNLkMJQ%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DWMYlQNLkMJQ&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FWMYlQNLkMJQ%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;H4&gt;Prerequisites&lt;/H4&gt;
&lt;P&gt;- An Azure account with sufficient permissions to create resources.&lt;/P&gt;
&lt;P&gt;- Terraform installed on your local machine.&lt;/P&gt;
&lt;H4&gt;Infrastructure Provisioning&lt;/H4&gt;
&lt;OL&gt;
&lt;LI&gt;Clone the &lt;A class="lia-external-url" href="https://github.com/HoussemDellai/ai-course/tree/main/555_comfyui_on_aca" target="_blank" rel="noopener"&gt;Github repository&lt;/A&gt; and navigate to the project directory.&lt;/LI&gt;
&lt;LI&gt;Initialize Terraform and apply the configuration to provision the necessary Azure resources, including a resource group, virtual network, log analytics workspace, container app environment, storage account, and container app for downloading models.&lt;/LI&gt;
&lt;/OL&gt;
&lt;LI-CODE lang=""&gt;terraform init
terraform apply --auto-approve&lt;/LI-CODE&gt;
&lt;P&gt;The following resources will be created:&lt;/P&gt;
&lt;img /&gt;
&lt;H4&gt;ComfyUI Deployment&lt;/H4&gt;
&lt;P&gt;The ComfyUI application is deployed as a containerized workload on Azure Container Apps. The deployment includes a job that downloads the necessary models for ComfyUI to function properly.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The&amp;nbsp;&lt;STRONG&gt;aca_job_download_models.tf&lt;/STRONG&gt;&amp;nbsp;file defines a job that runs a container with the necessary commands to download the models for ComfyUI. The job is configured to run on Consumption worksload profile and has a timeout of 1200 seconds.&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;The&amp;nbsp;&lt;STRONG&gt;download-models-comfyui.sh&lt;/STRONG&gt;&amp;nbsp;script contains the commands to download the models from Hugging Face and save them to the appropriate directory in the ComfyUI application.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H4&gt;Monitoring and Analytics&lt;/H4&gt;
&lt;P&gt;The Azure Log Analytics workspace is set up to collect logs and metrics from the container app environment. You can use Azure Monitor to view and analyze the logs and metrics for your ComfyUI deployment.&lt;/P&gt;
&lt;P&gt;To view the properties and the usage of the GPU behind Container Apps, the command &lt;STRONG&gt;nvidia-smi&lt;/STRONG&gt; is helpful.&lt;/P&gt;
&lt;img /&gt;
&lt;H4&gt;Start using ComfyUI&lt;/H4&gt;
&lt;P&gt;Now that ComfyUI is provisioned, accessible on the FQDN exposed by Container Apps and the models are downloaded, you can run the Text to Image workflow in ComfyUI. You can also change the parameters as needed like the prompt.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;When ready, click the Run blue button at the top right to start generating the image. It will take some time depending on the size of the image and the complexity of the prompt. Then you should see the generated image in the output node.&lt;/P&gt;
&lt;H4&gt;Using ComfyUI for Text to Video&lt;/H4&gt;
&lt;P&gt;To use ComfyUI for&amp;nbsp;&lt;STRONG&gt;Text to Video&lt;/STRONG&gt;&amp;nbsp;generation, you can select a Text to Video template from the Workflows section. Choose&amp;nbsp;&lt;STRONG&gt;Wan 2.2 Text to Video&lt;/STRONG&gt; as an example. This will open the workflow to generate a video based on a text input.&lt;/P&gt;
&lt;H4&gt;Important Notes&lt;/H4&gt;
&lt;P&gt;The storage account key is required to create the storage link in your Container Apps environment. Container Apps does not support identity-based access to Azure file shares. For that it is mandatory to disable &lt;STRONG&gt;Secure Transfer&lt;/STRONG&gt; at the Storage Account (&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/container-apps/storage-mounts-azure-files?tabs=bash#set-up-a-storage-account" target="_blank" rel="noopener"&gt;more details&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Because of an issue with the Terraform provider, it won't create the Serverless GPU (A100 &amp;amp; T4) workload profiles. You will need to create them manually in the Azure Portal after running&amp;nbsp;&lt;STRONG&gt;terraform apply&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Azure File Shares supports both&amp;nbsp;&lt;STRONG&gt;SMB&lt;/STRONG&gt;&amp;nbsp;and&amp;nbsp;&lt;STRONG&gt;NFS&lt;/STRONG&gt;. Container Apps also supports both.&lt;/P&gt;
&lt;P&gt;To mount NFS Azure Files, you must use a Container Apps environment with a custom VNet. The Storage account must be configured to allow access from the VNet either using&amp;nbsp;&lt;STRONG&gt;Service Endpoint&lt;/STRONG&gt; or &lt;STRONG&gt;Private Endpoint &lt;/STRONG&gt;(&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/container-apps/storage-mounts?tabs=nfs&amp;amp;pivots=azure-resource-manager#configuration-1" target="_blank" rel="noopener"&gt;more details&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;The NFS protocol can only be used from a machine inside of a virtual network, that is why we use a Private Endpoint.&lt;/P&gt;
&lt;P&gt;🔍&lt;STRONG&gt; SMB vs NFS — What’s the Difference?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;SMB (Server Message Block) and NFS (Network File System) are two protocols used to provide shared file storage over a network.&lt;/P&gt;
&lt;P&gt;They serve similar purposes but have different strengths, performance characteristics, and typical use cases. NFS is native for Linux.&lt;/P&gt;
&lt;H4&gt;Consumption profile details&lt;/H4&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 100%; height: 186.117px; border-width: 1px;"&gt;&lt;colgroup&gt;&lt;col style="width: 27.4209%" /&gt;&lt;col style="width: 12.5988%" /&gt;&lt;col style="width: 12.4135%" /&gt;&lt;col style="width: 12.9689%" /&gt;&lt;col style="width: 34.5546%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 34.5333px;"&gt;&lt;td style="height: 34.5333px;"&gt;Profile names&lt;/td&gt;&lt;td style="height: 34.5333px;"&gt;vCPU range&lt;/td&gt;&lt;td style="height: 34.5333px;"&gt;Memory range&lt;/td&gt;&lt;td style="height: 34.5333px;"&gt;GPU type&lt;/td&gt;&lt;td style="height: 34.5333px;"&gt;Regions&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 34.5333px;"&gt;&lt;td style="height: 34.5333px;"&gt;Consumption&lt;/td&gt;&lt;td style="height: 34.5333px;"&gt;0.25 - 4&lt;/td&gt;&lt;td style="height: 34.5333px;"&gt;0.5 - 8 GB&lt;/td&gt;&lt;td style="height: 34.5333px;"&gt;N.A&lt;/td&gt;&lt;td style="height: 34.5333px;"&gt;All supported regions&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 58.525px;"&gt;&lt;td style="height: 58.525px;"&gt;Consumption-GPU-NC8as-T4&lt;/td&gt;&lt;td style="height: 58.525px;"&gt;0.25 - 8&lt;/td&gt;&lt;td style="height: 58.525px;"&gt;0.5 - 56 GB&lt;/td&gt;&lt;td style="height: 58.525px;"&gt;NVIDIA T4&lt;/td&gt;&lt;td rowspan="2" style="height: 117.05px;"&gt;To see a full list of available regions, see&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/container-apps/gpu-serverless-overview#supported-regions" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/azure/container-apps/gpu-serverless-overview#supported-regions"&gt;serverless GPU supported regions&lt;/A&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 58.525px;"&gt;&lt;td style="height: 58.525px;"&gt;Consumption-GPU-NC24-A100&lt;/td&gt;&lt;td style="height: 58.525px;"&gt;0.25 - 24&lt;/td&gt;&lt;td style="height: 58.525px;"&gt;0.5 – 220 GiB&lt;/td&gt;&lt;td style="height: 58.525px;"&gt;NVIDIA A100&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;In Serverless GPU profiles, the GPU cost is in addition to the active usage vCPU and RAM prices for your Container App. You pay for the entire GPU cost, even if your Container App only uses a fraction of the GPU's resources. But, for CPU and Memory, you only pay for the resources your Container App actually reserves. To reduce cost, it is very important to right-size the vCPU and Memory for your Container App when using Serverless GPU profiles. You can use Azure Monitor to track the actual resource usage of your Container App and adjust the vCPU and Memory accordingly.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;To get the supported profiles for a specific region, you can use the Azure CLI command:&lt;/P&gt;
&lt;LI-CODE lang=""&gt;az containerapp env workload-profile list-supported --location swedencentral -o table
# Location       Name
# -------------  -------------------------
# swedencentral  D4
# swedencentral  D8
# swedencentral  D16
# swedencentral  D32
# swedencentral  E4
# swedencentral  E8
# swedencentral  E16
# swedencentral  E32
# swedencentral  Consumption
# swedencentral  Flex
# swedencentral  Consumption-GPU-NC24-A100
# swedencentral  Consumption-GPU-NC8as-T4&lt;/LI-CODE&gt;
&lt;P&gt;Here is the vCPU, Memory and GPU consumption for the NC A100 v4 and NC T4 v3 Serverless GPU profiles with ComfyUI when running typical workloads.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;&lt;img /&gt;&lt;img /&gt;&lt;img /&gt;
&lt;P&gt;You can notice that ComfyUI doesn't consume the entire compute power in terms of vCPU and Memory. That is why in Terraform, it is specified that the resource request is less than what the VM offers. That allows to reduce the cost.&lt;/P&gt;
&lt;H5&gt;Disclaimer&lt;/H5&gt;
&lt;P&gt;The sample scripts are not supported under any Microsoft standard support program or service. The sample scripts are provided AS IS without warranty of any kind. Microsoft further disclaims all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages.&lt;/P&gt;</description>
      <pubDate>Mon, 20 Apr 2026 17:14:39 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/running-multimedia-ai-models-on-container-apps-with-serverless/ba-p/4513063</guid>
      <dc:creator>HoussemDellai</dc:creator>
      <dc:date>2026-04-20T17:14:39Z</dc:date>
    </item>
    <item>
      <title>Maintaining Azure Public IP Inventory by Retrieving Exact Deleted Public IP Using Activity Logs</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/maintaining-azure-public-ip-inventory-by-retrieving-exact/ba-p/4512403</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure Activity Logs provide strong visibility into resource lifecycle operations across a subscription. Among these are lifecycle events related to &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Azure Public IP addresses&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, including creation and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;deletion&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;However, when a Public IP address is&amp;nbsp;deleted, the corresponding delete operation in Azure Activity Logs includes&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;only the Resource ID&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;of the Public IP — not the actual IP address that was assigned to the resource.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Once deletion is complete:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;The Public IP resource no longer exists&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;The Resource ID cannot be resolved&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;The assigned Public IP address is permanently unretrievable through Azure APIs&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;For organisations that rely on&amp;nbsp;accurate&amp;nbsp;IP inventory data for:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Security monitoring&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Compliance audits&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Incident response&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Network forensics&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This blog presents a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;production&lt;/SPAN&gt;‑&lt;SPAN data-contrast="auto"&gt;ready&amp;nbsp;implementation approach&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;that enables organisations to reliably capture and&amp;nbsp;retain&amp;nbsp;the assigned Public IP address of Azure Public IP resources — even after they are&amp;nbsp;deleted&amp;nbsp;— using Azure Activity Log alerts, Azure Automation, and a persistent resource mapping cache.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;The Core Challenge&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;When a Public IP resource is&amp;nbsp;deleted, Azure emits an Activity Log event&amp;nbsp;like:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;---&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;OperationName:&amp;nbsp;Microsoft.Network/publicIPAddresses/delete&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;ResourceId:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;/subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&amp;lt;rg-name&amp;gt;/providers/Microsoft.Network/publicIPAddresses/&amp;lt;pip-name&amp;gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;---&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The alert correctly&amp;nbsp;identifies&amp;nbsp;the operation and the affected resource.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;However:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;The Activity Log does not include the assigned Public IP address.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;After deletion, the associated Resource ID no longer resolves to a live Azure resource.&lt;/SPAN&gt; &amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Maintaining Accurate IP Inventory&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:true,&amp;quot;134233118&amp;quot;:true,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Enterprises rely on centralised Public IP inventories mapped to workloads and ownership. Since delete Activity Log events emit the Resource ID,&amp;nbsp;&lt;/SPAN&gt;inventory systems require the exact Public IP address associated with the deleted resource.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Preventing False Security Investigations&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:true,&amp;quot;134233118&amp;quot;:true,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure Public IP addresses are globally reused. If a deleted IP&amp;nbsp;remains&amp;nbsp;recorded as owned internally, it may later be assigned to another tenant. This can lead to threat intelligence alerts and internal investigations against an IP address no longer under organisational ownership.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:true,&amp;quot;134233118&amp;quot;:true,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Supporting&amp;nbsp;High&lt;/SPAN&gt;‑&lt;SPAN data-contrast="auto"&gt;Churn&amp;nbsp;Dynamic Workloads&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:true,&amp;quot;134233118&amp;quot;:true,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Ephemeral workloads such as Azure Machine Learning, CI/CD pipelines, and autoscaling deployments frequently create and delete Public IPs. In such environments, manual lifecycle tracking of assigned IP addresses is not operationally feasible.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Solution Overview&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The recommended approach is based on the following principle:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Capture and persist the assigned Public IP address&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;while the resource still&amp;nbsp;exists&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;and&amp;nbsp;retrieve the stored value later when only the Resource ID is available.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This can be implemented using:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Azure Activity Logs&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Log Analytics alerts&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Azure Automation Runbooks&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Persistent mapping cache of Resource ID to IP address&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The solution comprises four primary components:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Azure Activity Logs routed to Log Analytics&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Log Analytics alert rules detecting Public IP lifecycle operations&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Azure Automation Runbooks triggered through webhook actions&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Persistent cache storing Resource ID → IP address mappings&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Implementation Guide&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240,&amp;quot;335572079&amp;quot;:6,&amp;quot;335572080&amp;quot;:1,&amp;quot;335572081&amp;quot;:4278190080,&amp;quot;469789806&amp;quot;:&amp;quot;single&amp;quot;}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 1&lt;/STRONG&gt;: Route Activity Logs to Log Analytics&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Public IP lifecycle events are published through the Azure Activity Log under the Administrative category.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To enable lifecycle detection through KQL queries:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt; &amp;nbsp;&lt;/SPAN&gt;Azure Monitor → Activity Log → Diagnostic Settings&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240,&amp;quot;469777462&amp;quot;:[720],&amp;quot;469777927&amp;quot;:[0],&amp;quot;469777928&amp;quot;:[0]}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Select:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Add Diagnostic Setting&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240,&amp;quot;469777462&amp;quot;:[720],&amp;quot;469777927&amp;quot;:[0],&amp;quot;469777928&amp;quot;:[0]}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="25" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Configure the following:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Category: Administrative&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Destination: Send to Log Analytics Workspace&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 4.Select your target Log Analytics Workspace.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 5.Click Save.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This allows lifecycle operations to be queried by alert rules from Log Analytics.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 2&lt;/STRONG&gt;: Deploy an Azure Automation Account&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Azure Automation&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;will be used to execute runbooks that process Activity Log alerts and resolve Public IP address details during resource lifecycle operations.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To begin:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Azure Portal&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;In the search bar, search for&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Automation Accounts&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Select &lt;STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Create, &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;provide the following details and &lt;/SPAN&gt;Select "&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Review + Create&lt;/STRONG&gt;"&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;to complete the deployment.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Subscription&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Resource Group&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Automation Account Name&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Region&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Once the Automation Account has been created:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Automation Account&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Go to&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Identity&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;under the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Account Settings&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;section.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Enable&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;System&lt;/SPAN&gt;‑&lt;SPAN data-contrast="auto"&gt;assigned&amp;nbsp;Managed Identity&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Click&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Save&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt; &amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This Managed Identity will later be used by the runbooks to securely retrieve Public IP metadata from Azure Resource Manager during alert execution.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 3&lt;/STRONG&gt;: Assign Managed Identity Permissions&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The Automation Account&amp;nbsp;requires&amp;nbsp;read&lt;/SPAN&gt;‑&lt;SPAN data-contrast="auto"&gt;only&amp;nbsp;permissions to resolve Public IP resource information securely.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Subscription → Access Control (IAM) → Add Role Assignment&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Assign the following roles to the Automation Account Managed Identity:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Role&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Scope&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Reader&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Subscription&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Reader&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Log Analytics Workspace&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This ensures the runbooks&amp;nbsp;are able to:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="21" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Query Public IP resources&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="21" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Resolve resource metadata&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="21" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Interpret Activity Log–driven lifecycle operations&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 4&lt;/STRONG&gt;: Create a Persistent Cache Variable&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The assigned IP address must be captured and persisted in advance before it is deleted.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;To&amp;nbsp;maintain&amp;nbsp;this mapping, create a persistent Automation variable to store the following relationship:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Public IP Resource ID → Assigned IP Address&lt;/SPAN&gt; &lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Within the Automation Account:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to: Shared Resources → Variables&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Select + Add.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Configure the variable as follows:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Name:&amp;nbsp;PipLastKnownIps&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Type: String&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Value: {}&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Encryption: Disabled&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;4.Select Create.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;This variable will act as a persistent cache that is dynamically updated during Public IP lifecycle events.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 5&lt;/STRONG&gt;: Create Required Automation Runbooks&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Two Azure Automation Runbooks are&amp;nbsp;required&amp;nbsp;for this implementation.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Runbook Name&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Purpose&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;CacheSeedingRunbook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Builds initial Resource ID → IP mapping&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;MainLifecycleRunbook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Processes Activity Log alerts&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 5.1:&lt;/STRONG&gt; Create Cache Seeding Runbook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Create Cache Seeding Runbook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This runbook will&amp;nbsp;enumerate&amp;nbsp;all currently existing Public IP resources and populate the cache variable with their assigned IP address mappings.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Automation Account → Runbooks&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Select&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Create a runbook&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Provide the following details:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Name:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;CacheSeedingRunbook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Runbook Type:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;PowerShell&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Runtime Version:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;7.2&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp; &amp;nbsp; 4. After the runbook is created, paste the script here &lt;/SPAN&gt;&lt;A href="https://github.com/AswiniSurendran/Exact_IPAddress_Tracking_from_Activity_logs-/blob/main/CacheSeedingRunbook" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;CacheSeedingRunbook&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Select&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Publish&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;This runbook will initialise the cache by capturing the current state of all Public IP resources prior to enabling&amp;nbsp;lifecycle&lt;/SPAN&gt;‑&lt;SPAN data-contrast="auto"&gt;based&amp;nbsp;Activity Log processing.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 5.2:&lt;/STRONG&gt; Create Main Lifecycle Runbook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This runbook will be triggered via webhook whenever a Public IP lifecycle event is detected through Activity Logs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Automation Account → Runbooks&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Select&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Create a runbook&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Provide the following details:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Name:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;MainLifecycleRunbook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Runbook Type:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;PowerShell&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Runtime Version:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;7.2&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;After the runbook is created, paste the required lifecycle processing script&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/AswiniSurendran/Exact_IPAddress_Tracking_from_Activity_logs-/blob/main/MainLifecycleRunbook" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;MainLifecycleRunbook&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;4. Select &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Publish&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;once configuration is complete.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This runbook will process Activity&amp;nbsp;Log&lt;/SPAN&gt;‑&lt;SPAN data-contrast="auto"&gt;based&amp;nbsp;lifecycle events and dynamically update the&amp;nbsp;PipLastKnownIps&amp;nbsp;cache variable in response to Public IP creation or deletion.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 6:&lt;/STRONG&gt; Create Runbook Webhook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Configure Runbook Webhook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To allow Activity Log alerts to invoke the runbook:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to: Automation Account → Runbooks →&amp;nbsp;MainLifecycleRunbook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Go to: Resources → Webhooks&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Select Add Webhook.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Provide the following details:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Webhook Name&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Expiration Date&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;5. Copy the generated Webhook URL.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This URL will be used by the Alert Action Group in a later step to trigger the runbook upon detection of Public IP lifecycle events.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 7&lt;/STRONG&gt;: Seed Cache with Existing Public IPs&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Before activating the&amp;nbsp;alert&lt;/SPAN&gt;‑&lt;SPAN data-contrast="auto"&gt;driven&amp;nbsp;workflow, populate the cache with currently active Public IP resources.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="26" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to:&lt;/SPAN&gt; CacheSeedingRunbook&amp;nbsp;→ Start&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240,&amp;quot;469777462&amp;quot;:[720],&amp;quot;469777927&amp;quot;:[0],&amp;quot;469777928&amp;quot;:[0]}"&gt;&amp;nbsp; and &lt;/SPAN&gt;Run the job once.&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This will initialise the&amp;nbsp;PipLastKnownIps&amp;nbsp;mapping with all existing Public IP resources.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Future lifecycle events will update this cache dynamically.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 8&lt;/STRONG&gt;:&amp;nbsp;Create Activity Log Alert Rule&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to: Azure Monitor → Alerts → Create Alert Rule&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Scope the alert rule to the relevant Log Analytics Workspace.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Under&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Condition&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Select: Custom Log Search&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Use the KQL query available here:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/AswiniSurendran/Exact_IPAddress_Tracking_from_Activity_logs-/blob/main/query.json" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;query.json&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Configure the following parameters as&amp;nbsp;required:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Evaluation Frequency&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Query Time Range&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This alert rule will detect Public IP lifecycle events and trigger the associated Action Group for downstream runbook execution.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Please find the configuration in the attached screenshot below:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 9&lt;/STRONG&gt;: Configure Action Group to Trigger Runbook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Create an&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Action Group&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;that invokes the Lifecycle Runbook webhook.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Add a new action.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Configure the action with the following details:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;Action Type:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;Webhook&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;Paste the previously generated&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Runbook Webhook URL&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;3.Enable: &lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Use Common Alert Schema&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;(Optional)&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;&lt;SPAN data-contrast="auto"&gt;Add an&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Email Notification&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;action to receive lifecycle alerts for troubleshooting or monitoring purposes.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;4. Attach this &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Action Group&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;to the alert rule.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Step 10&lt;/STRONG&gt;:&amp;nbsp;Validate&amp;nbsp;the Implementation&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To&amp;nbsp;validate:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Create a Public IP resource.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Delete the same resource.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Navigate to:&lt;/SPAN&gt; Automation Account → Jobs →&amp;nbsp;MainLifecycleRunbook&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240,&amp;quot;469777462&amp;quot;:[720],&amp;quot;469777927&amp;quot;:[0],&amp;quot;469777928&amp;quot;:[0]}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Observe the runbook execution&amp;nbsp;output&amp;nbsp;related to:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Public IP creation&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;Public IP deletion&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Although the&amp;nbsp;delete&amp;nbsp;alert&amp;nbsp;contains&amp;nbsp;only the Resource ID, the runbook retrieves the exact assigned Public IP address from the cache.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;See the sample output below:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;You can extend this workflow using Azure Logic Apps to forward events to &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Email&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt; , &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;SIEM platforms&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt; or&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;CMDB systems.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:240}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In addition to tracking Public IP deletions using Activity Logs, proactively capturing and persisting Resource ID–to–IP mappings through Automation‑driven lifecycle alerts, organisations can maintain an accurate Public IP inventory—ensuring traceability, reducing false‑positive security investigations, and strengthening audit and incident response readiness.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 17 Apr 2026 12:10:31 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/maintaining-azure-public-ip-inventory-by-retrieving-exact/ba-p/4512403</guid>
      <dc:creator>AswiniSurendran</dc:creator>
      <dc:date>2026-04-17T12:10:31Z</dc:date>
    </item>
    <item>
      <title>Microsoft Defender for Endpoint (MDE) — Custom Role Design for Troubleshooting Mode–Only Access</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/microsoft-defender-for-endpoint-mde-custom-role-design-for/ba-p/4510646</link>
      <description>&lt;P&gt;&lt;STRONG&gt;1) Introduction&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In customer environments, &lt;STRONG&gt;Security Operations (SOC)&lt;/STRONG&gt; teams and &lt;STRONG&gt;Windows infrastructure&lt;/STRONG&gt; teams frequently need to investigate endpoint issues in the Microsoft Defender for Endpoint portal—often under time pressure—while still preserving strong governance over who can change security controls.&lt;/P&gt;
&lt;P&gt;Because &lt;STRONG&gt;Troubleshooting Mode&lt;/STRONG&gt; can enable temporary modification of Defender Antivirus settings even when devices are governed by organizational policies (for example, when policy protections are in place using Tamper protection settings), granting this capability broadly can introduce &lt;STRONG&gt;configuration drift&lt;/STRONG&gt;, increase operational risk, and blur accountability.&lt;/P&gt;
&lt;P&gt;To address this, customers typically require a &lt;STRONG&gt;least‑privilege, scoped access model&lt;/STRONG&gt; that enforces &lt;STRONG&gt;Segregation of Duties (SoD)&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Investigators (Security Reader)&lt;/STRONG&gt; retain visibility and investigation capability but &lt;STRONG&gt;cannot create or modify MDE security policies&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Only an explicitly authorized group&lt;/STRONG&gt; is granted the minimum permissions required to enable Troubleshooting Mode, and that access is &lt;STRONG&gt;restricted to a defined device scope&lt;/STRONG&gt; using device groups—supporting both risk reduction and clear governance.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This approach ensures teams can perform required investigations and controlled troubleshooting while maintaining &lt;STRONG&gt;least privilege&lt;/STRONG&gt;, &lt;STRONG&gt;SoD&lt;/STRONG&gt;, and predictable operational impact across the customer’s environment.&lt;/P&gt;
&lt;P&gt;This document describes an approach to providing controlled access to Troubleshooting Mode on a scoped set of devices.&lt;/P&gt;
&lt;P&gt;- An Entra ID user group to collect eligible users&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- A custom Defender XDR role with only the minimum required permissions&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- Microsoft Defender for Endpoint device groups to scope where those permissions apply&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The goal is to enable safe troubleshooting while&amp;nbsp;maintaining&amp;nbsp;least&amp;nbsp;privilege and preventing unintended policy changes.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;2) Prerequisite &amp;amp; Coverage &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;- An Entra ID user group to collect eligible users&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- A custom Defender XDR role with only the minimum required permissions&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- Microsoft Defender for Endpoint device groups to scope where those permissions apply&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The goal is to enable safe troubleshooting while&amp;nbsp;maintaining&amp;nbsp;least&amp;nbsp;privilege and preventing unintended policy changes.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This setup is necessary to: &amp;nbsp;&lt;/P&gt;
&lt;P&gt;- Enforce least privilege (only the permissions needed for Troubleshooting Mode and limited operational actions)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- Scope powerful actions to a defined device group instead of all devices&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- Support a split model where one Security Reader group gets Troubleshooting Mode&amp;nbsp;access&amp;nbsp;and another Security Reader group&amp;nbsp;remains&amp;nbsp;view/operate&amp;nbsp;without TS Mode&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- Preserve governance: users can investigate and perform limited actions but cannot create or modify MDE policies&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- Improve auditability by ensuring key actions are observable via device telemetry and the Action Center (while acknowledging that some telemetry may not include the initiating username).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3) Implementation Steps for Troubleshooting Mode (TO BE PERFORMED IN MICROSOFT DEFENDER PORTAL / ENTRA ID)&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3.1 Prepare Entra ID User Group&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Identify an existing Entra ID user group that contains users (IT Infra Team) with the Security Reader role or create a new dedicated Entra ID user group for this purpose.&lt;/P&gt;
&lt;P&gt;- This group will be used consistently for:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Assigning the custom Defender XDR role&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Scoping access to Defender for Endpoint device groups&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;3.2 Create and Assign Custom Defender XDR Role&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Create a custom Defender XDR role with Microsoft Defender for Endpoint (MDE) Security Settings Management permissions.&lt;/P&gt;
&lt;P&gt;- While creating the custom role, select only the minimum required permissions to maintain a least-privilege model.&lt;/P&gt;
&lt;P&gt;- Assign this custom Defender XDR role to the Entra ID user group identified in Step 1.&lt;/P&gt;
&lt;P&gt;Reference: See screenshots below for role creation, permission selection, and Entra ID group assignment.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3.3: Assign Entra ID User Group to Device Group&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Assign the same Entra ID user group (used in Steps 1 and 2) to a Microsoft Defender for Endpoint device group.&lt;/P&gt;
&lt;P&gt;- Devices in the device group should be dynamically grouped using supported criteria such as:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Device tags&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Device name patterns&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Other supported device attributes&lt;/P&gt;
&lt;P&gt;- This scoping ensures that the custom role permissions apply only to the intended set of devices.&lt;/P&gt;
&lt;P&gt;Reference: See screenshot under below showing device group creation and Entra ID group-to-device group assignment.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3.4 Resulting User Experience and Permissions&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;After completing Steps 3.1 through 3.3, users who sign in with:&lt;/P&gt;
&lt;P&gt;- Security Reader role, and&lt;/P&gt;
&lt;P&gt;- Custom Defender XDR role&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;will observe the following behavior in the Microsoft Defender portal:&lt;/P&gt;
&lt;P&gt;- Troubleshooting Mode is available on the scoped devices&lt;/P&gt;
&lt;P&gt;- Users cannot create or modify MDE policies&lt;/P&gt;
&lt;P&gt;- Users have access only to a controlled set of operational and investigative actions, including:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Exclude&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Go hunt&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Download force release from isolation script&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Ask Defender Experts&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This configuration enables safe troubleshooting while preventing configuration drift or unauthorized security policy changes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Reference: See screenshot under below illustrating the available actions and the absence of policy creation/modification options.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Reference: See screenshot below where creation of AV policy failed as User will not have access to Intune to create policy.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4&lt;/STRONG&gt;. In an alternate scenario, two separate Security Reader groups are maintained: one group requires access to Troubleshooting Mode, while the other should have no Troubleshooting Mode access. Users in the latter group (no TS Mode requirement) can continue to use standard Microsoft Defender for Endpoint (MDE) operational capabilities such as managing tags, setting device criticality, running antivirus scans, collecting an investigation package, reporting device inaccuracy, initiating advanced hunting (Go hunt), triggering policy sync, and running automated investigations. Users in the Troubleshooting Mode-enabled Security Reader group must also be assigned to the appropriate MDE device group to ensure their device-level access and workflows continue to function as expected.&lt;/P&gt;
&lt;P&gt;Reference: See the screenshot below, which illustrates the additional MDE capabilities available to users who also have access to the device group&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;5: Auditing and Event Visibility&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;- Events related to Tamper Protection changes and Troubleshooting Mode enablement are captured in Microsoft Defender for Endpoint telemetry.&lt;/P&gt;
&lt;P&gt;- These events are logged and visible for audit and investigation purposes.&lt;/P&gt;
&lt;P&gt;- The username is not recorded in these specific event entries, which is expected behavior in the current Defender auditing model. However, the activation of Troubleshooting Mode is still logged and visible in the device Action Center, which allows confirmation that the mode was enabled on the device and the username.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Reference: See screenshot under Step 6 showing the relevant audit and event records in Timeline of Device Page.&amp;nbsp; Similarly ,correlate using KQL across two Event Tables (DeviceEvents &amp;amp; EntraIdSignInEvents).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below is the KQL query&lt;/P&gt;
&lt;P&gt;let TimeWindow = 10m;&lt;/P&gt;
&lt;P&gt;let Lookback&amp;nbsp; = 7d;&lt;/P&gt;
&lt;P&gt;// Portal sign-ins (Security &amp;amp; Compliance Center)&lt;/P&gt;
&lt;P&gt;let DefenderPortalSignins =&lt;/P&gt;
&lt;P&gt;materialize(&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EntraIdSignInEvents&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | where Timestamp &amp;gt;= ago(Lookback)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | where Application == "Microsoft 365 Security and Compliance Center"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | project&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SignInTime = Timestamp,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PortalUserUpn = AccountUpn,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PortalUserObjectId = AccountObjectId,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SignInIP = IPAddress,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CorrelationId&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | extend TimeBucket = bin(SignInTime, TimeWindow)&lt;/P&gt;
&lt;P&gt;);&lt;/P&gt;
&lt;P&gt;// Tamper-protection related events (broaden as needed)&lt;/P&gt;
&lt;P&gt;let TamperEvents =&lt;/P&gt;
&lt;P&gt;materialize(&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceEvents&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | where Timestamp &amp;gt;= ago(Lookback)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | where ActionType has "Tamper" or ActionType == "TamperingAttempt"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | project&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TamperTime = Timestamp,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceId,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceName,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActionType,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AdditionalFields&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | extend TimeBucket = bin(TamperTime, TimeWindow)&lt;/P&gt;
&lt;P&gt;);&lt;/P&gt;
&lt;P&gt;// Output rows: (UPN, TamperTime) within +/- window&lt;/P&gt;
&lt;P&gt;TamperEvents&lt;/P&gt;
&lt;P&gt;| join kind=inner (DefenderPortalSignins) on TimeBucket&lt;/P&gt;
&lt;P&gt;| where abs(datetime_diff("minute", TamperTime, SignInTime)) &amp;lt;= toint(TimeWindow / 1m)&lt;/P&gt;
&lt;P&gt;| project&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PortalUserUpn,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TamperTime,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SignInTime,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceName,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceId,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActionType,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SignInIP,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CorrelationId,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AdditionalFields&lt;/P&gt;
&lt;P&gt;| order by TamperTime desc&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;This query correlates by time proximity. It indicates “user signed into the portal around the time a tamper event happened.”&lt;/LI&gt;
&lt;LI&gt;It does not prove that the portal user caused the tamper event (that requires audit telemetry for the action). If you later want attribution (“who enabled troubleshooting mode / changed settings”), we should pivot to Defender Action Center message and then confirm the user.&lt;/LI&gt;
&lt;LI&gt;The query can be used for generating alert using custom detection rule and take this alert to Security Operations center using API integration.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Below is reference to the sample output of the query.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;6) Summary&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Option 3 enables a controlled Troubleshooting Mode experience by combining Entra ID group-based user assignment, a custom Defender XDR role with minimal permissions, and device group scoping in MDE.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With this approach, eligible users can troubleshoot only the intended devices and perform a limited, operationally safe set of actions, while policy creation/modification&amp;nbsp;remains&amp;nbsp;restricted.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Audit and investigation are supported through MDE telemetry and device Action Center visibility, with the known limitation that certain telemetry entries may not include the initiating username.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Apr 2026 05:43:59 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/microsoft-defender-for-endpoint-mde-custom-role-design-for/ba-p/4510646</guid>
      <dc:creator>SantoshPargi</dc:creator>
      <dc:date>2026-04-13T05:43:59Z</dc:date>
    </item>
    <item>
      <title>Customer Offerings: Azure Local - Implementation, Migration, and Management</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/customer-offerings-azure-local-implementation-migration-and/ba-p/4510593</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hi everyone!&lt;/P&gt;
&lt;P&gt;Brandon here, back once again to talk to you about a couple of new offerings that have just been released to assist our Unified customers with their on-premises virtualization needs! I continue to have the privilege of leading a great program and team helping customers to migrate from VMware to more cost-effective and/or modern solutions. These new offerings are &amp;lt;drum roll&amp;gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/customer-offerings-hyper-v---implementation-migration-and-management/4510592" target="_blank"&gt;Hyper-V - Implementation, Migration, and Management&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Azure Local - Implementation, Migration, and Management&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;NOTE: These offerings do not provide hands on keyboard support, do not create custom documentation for customers, and cannot provide direct support for any 3&lt;SUP&gt;rd&lt;/SUP&gt; party products that may be used in the process of migrations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Many customers are reassessing their virtualization strategies and are actively exploring alternatives to VMware that align with long‑term hybrid cloud goals. Azure Local offers a purpose‑built platform that combines proven Windows Server–based virtualization with Azure services and management tooling, enabling customers to modernize on‑premises infrastructure while maintaining tight integration with Azure management, security, and governance capabilities.&lt;/P&gt;
&lt;P&gt;Whether driven by changing licensing models, cost optimization, or the need for deeper hybrid cloud integration, a successful transition requires more than a technology shift—it requires a structured, outcome‑focused approach. While we are providing these new offerings to customers, you do also have the option of more extended engagements as well that are broader in scope and more tailored to the end goals while we work side by side with you.&lt;/P&gt;
&lt;P&gt;If you are a Unified customer and looking to move off of VMware to Azure Local, or you just need help with your on-premises Microsoft virtualization technologies in general, have your account manager (CSAM) reach out to me!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Planning to go at it alone??&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Virtually (no pun intended) every environment reviewed by my team (and that is a LOT) that was set up prior to our review will have configuration issues, at times warranting extensive efforts to correct.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;U&gt;Problem 1&lt;/U&gt;:&lt;/EM&gt;&lt;/STRONG&gt; There are some potentially significant differences between the way VMware and Azure Local are architected from the start, especially in areas of networking and storage, where mimicking methods used in the VMware world can actually lead to performance degradation in your target Azure Local environment.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;U&gt;Problem 2&lt;/U&gt;:&lt;/EM&gt;&lt;/STRONG&gt; Your management method must also change. Additionally, if you are converting/migrating to Azure Local, the available methods need to be determined, the terminology and functional differences identified and learned…there can be a lot to unpack in this area.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;U&gt;Problem 3&lt;/U&gt;:&lt;/EM&gt;&lt;/STRONG&gt; Perhaps the most obvious is that this may be a new platform for your team, and its important for them to gain experience through guided actions and knowledge transfer on the fly for those questions they really have, which is exactly what we aim to provide in guiding implementations and migrations!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A Structured Engagement Model&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Successful Azure Local implementations are built around a guided engagement model rather than a one‑size‑fits‑all checklist. Each engagement is tailored to the customer environment, acknowledging that differences in scale, workloads, hardware, and operational maturity directly influence the migration approach. The framework emphasizes collaboration, clarity of expectations, and incremental progress instead of disruptive “lift‑and‑shift” execution. Whether we are talking about migration from another virtualization platform, or simply trying to reduce costs by implementing a new virtualization infrastructure, we’re here to help!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Key Phases of an Azure Local Implementation and/or Migration&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Most Azure Local implementation and migration engagements progress through a common set of phases:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Engagement scoping and technical discovery&lt;/STRONG&gt; to understand goals and current state (this is the conversation I, or one of the TZ Leads in the VMware Migration Program have with customers)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Planning and design&lt;/STRONG&gt; aligned to business and operational outcomes, with a limited scope&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Deployment and configuration validation&lt;/STRONG&gt; to ensure platform readiness&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Security and migration testing&lt;/STRONG&gt; to reduce risk and confirm workload compatibility&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Feature enablement&lt;/STRONG&gt;, including Azure Arc, to extend governance and management&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;While these phases provide structure, the sequence and depth of each stage are adapted based on the customer environment and objectives.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Key Outcomes for Customers&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Organizations that engage in Azure Local implementation or migration efforts commonly achieve:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Deeper familiarity with Microsoft virtualization technologies&lt;/LI&gt;
&lt;LI&gt;Successful deployment of PoC, pilot, or production environments&lt;/LI&gt;
&lt;LI&gt;Validated test migrations of virtual machines&lt;/LI&gt;
&lt;LI&gt;Identification and resolution of technical blockers&lt;/LI&gt;
&lt;LI&gt;Increased confidence in operational readiness&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;These engagements are advisory and collaborative in nature, prioritizing customer enablement and success.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Knowledge Transfer and Operational Readiness&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A central focus of the Azure Local engagements is ensuring that IT teams are prepared to operate the platform long after deployment completes. Knowledge transfer is embedded throughout the engagement through working sessions and direct participation in implementation activities. This approach helps organizations move confidently into steady‑state operations without relying on long‑term external support. As I mentioned above, if you do feel you will need longer term support, we have your back on that front as well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Looking Beyond Migration&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;An Azure Local migration is often the first step in a broader transformation journey. Many organizations use this transition to enable hybrid management, strengthen security posture, and prepare for future application or cloud modernization initiatives. When approached strategically, Azure Local becomes a platform for long‑term innovation and a step to modernizing your infrastructure, not just a replacement hypervisor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Moving from VMware to Azure Local is not simply a technical migration—it is an opportunity to modernize how infrastructure is managed and governed. With structured planning, guided execution, and a focus on operational readiness, organizations can transition with confidence to a virtualization platform built for today’s hybrid cloud realities and tomorrow’s growth.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for reading, and maybe we’ll talk soon!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Apr 2026 19:55:01 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/customer-offerings-azure-local-implementation-migration-and/ba-p/4510593</guid>
      <dc:creator>BrandonWilson</dc:creator>
      <dc:date>2026-04-12T19:55:01Z</dc:date>
    </item>
    <item>
      <title>Customer Offerings: Hyper-V - Implementation, Migration, and Management</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/customer-offerings-hyper-v-implementation-migration-and/ba-p/4510592</link>
      <description>&lt;P&gt;Happy April everyone!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Brandon here, back once again to talk to you about a couple of new offerings that have just been released to assist our Unified customers with their on-premises virtualization needs! I continue to have the privilege of leading a great program and team helping customers to migrate from VMware to more cost-effective and/or modern solutions. These new offerings are &amp;lt;drum roll&amp;gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Hyper-V - Implementation, Migration, and Management&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/customer-offerings-azure-local---implementation-migration-and-management/4510593" target="_blank" rel="noopener" data-lia-auto-title="Azure Local - Implementation, Migration, and Management" data-lia-auto-title-active="0"&gt;Azure Local - Implementation, Migration, and Management&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;NOTE: These offerings do not provide hands on keyboard support, do not create custom documentation for customers, and cannot provide direct support for any 3&lt;SUP&gt;rd&lt;/SUP&gt; party products that may be used in the process of migrations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Many customers are taking a closer look at Microsoft Hyper‑V as a strategic alternative to traditional virtualization platforms. Whether driven by changing licensing models, cost optimization, or the need for deeper hybrid cloud integration, a successful transition requires more than a technology shift—it requires a structured, outcome‑focused approach. While we are providing these new offerings to customers, you do also have the option of more extended engagements as well that are broader in scope and more tailored to the end goals while we work side by side with you.&lt;/P&gt;
&lt;P&gt;If you are a Unified customer and looking to move off of VMware to Hyper-V, or you just need help with your on-premises Microsoft virtualization technologies in general, have your account manager (CSAM) reach out to me!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Planning to go at it alone??&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I’m starting here for a very good reason… Virtually (no pun intended) every environment reviewed by my team (and that is a LOT) that was set up for a VMware migration, will have configuration issues, many times warranting a complete redesign and re-deployment.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;U&gt;Problem 1&lt;/U&gt;:&lt;/EM&gt;&lt;/STRONG&gt; There are some potentially significant differences between the way VMware and Hyper-V are architected from the start, especially in areas of networking and storage, where mimicking methods used in the VMware world can actually lead to performance degradation in your target Hyper-V environment.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;U&gt;Problem 2&lt;/U&gt;:&lt;/EM&gt;&lt;/STRONG&gt; To achieve feature parity, or near feature parity, your management method must also change. Additionally, if you are converting/migrating to Hyper-V, the available methods need to be determined, the terminology and functional differences identified and learned, well, honestly, I could go on for awhile on this, but I’ll spare you until we talk…&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;U&gt;Problem 3&lt;/U&gt;:&lt;/EM&gt;&lt;/STRONG&gt; Perhaps the most obvious is that this may be a new platform for your team, and its important for them to gain experience through guided actions and knowledge transfer on the fly for those questions they really have, which is exactly what we aim to provide in guiding implementations and migrations!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;You mentioned management and conversion tools, what do you mean??&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Hyper‑V has several methods for management, which can vary based on the feature needs and environment size. As a simple example, if I have 1500 virtualization hosts and 30,000 virtual machines spread out globally, its probably not going to be as efficient to manage everything only through locally available consoles. The capabilities of these management methods are continuing to grow and improve based on customer feedback, along with feedback from the field team. Let’s take a quick look at these options:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Native Windows tools: Hyper-V management console, Failover Clustering management console, Server Manager, etc
&lt;UL&gt;
&lt;LI&gt;This management method is typically used for small labs or smaller production environments (for migrations/conversions these methods do not provide feature parity with VMware).&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;System Center Virtual Machine Manager (SCVMM)
&lt;UL&gt;
&lt;LI&gt;This management method is fully supported for environments of all sizes. For migrations/conversions this method provides feature parity with VMware for management and features, along with offering VMware migration/conversion capability (offline). If you are already using any product from the System Center suite (SCCM, SCOM, SCORCH, SCSM, or DPM) then this can prove to be a great no cost option for you!&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Windows Admin Center: Administration Mode (aMode)
&lt;UL&gt;
&lt;LI&gt;This management method is fully supported for environments of all sizes, however, is not designed as an infrastructure wide virtualization management method, but for server management and administration. If your environment isn’t extremely large, and VMware feature parity is not a necessity, this can provide a great no cost option for management of your physical and virtual servers. In addition, this method provides an online conversion option (currently public preview), allowing for a more seamless migration from VMware.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Windows Admin Center: Virtualization Mode (vMode) (currently public preview)
&lt;UL&gt;
&lt;LI&gt;This management method is fully supported for environments of all sizes, and is designed solely for the purpose of managing the Hyper-V virtualization infrastructure, tying together the primary needs for virtualization fabric into an easy to navigate web-based UI.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Azure
&lt;UL&gt;
&lt;LI&gt;You can Arc enable any Windows host or virtual machine and have a method of management and integration with cloud based services. In addition, these can work in conjunction with all of the above options to improve your management experience for your platform, and allows for the easy implementation and integration of many cloud based technologies (such as Hyper-V replica backups to ASR)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;NOTE: You can learn more about Windows Admin Center evolution here:&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/blog/windows-admin-center-blog/windows-admin-center-architectural-changes/4488583" target="_blank" rel="noopener"&gt;Windows Admin Center Architectural Changes | Microsoft Community Hub&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A Structured Engagement Model&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Successful Hyper‑V implementations are built around a guided engagement model rather than a one‑size‑fits‑all checklist. Each engagement is tailored to the customer environment, acknowledging that differences in scale, workloads, hardware, and operational maturity directly influence the migration approach. The framework emphasizes collaboration, clarity of expectations, and incremental progress instead of disruptive “lift‑and‑shift” execution. Whether we are talking about a migration from another virtualization platform, or simply trying to reduce costs by implementing a new virtualization infrastructure, we’re here to help!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Key Phases of a Hyper‑V Implementation and/or Migration&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Most Hyper‑V engagements progress through a common set of phases:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Engagement scoping and technical discovery&lt;/STRONG&gt; to understand goals and current state (this is the conversation I, or one of the TZ Leads in the VMware Migration Program have with customers)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Planning and design&lt;/STRONG&gt; aligned to business and operational outcomes, with a limited scope&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Deployment and configuration validation&lt;/STRONG&gt; to ensure platform readiness&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Security and migration testing&lt;/STRONG&gt; to reduce risk and confirm workload compatibility&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Optional feature enablement&lt;/STRONG&gt;, including Azure Arc, to extend governance and management&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;While these phases provide structure, the sequence and depth of each stage are adapted based on the customer environment and objectives.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Key Outcomes for Customers&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Organizations that engage in Hyper-V implementation or migration efforts commonly achieve:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Deeper familiarity with Microsoft virtualization technologies&lt;/LI&gt;
&lt;LI&gt;Successful deployment of PoC, pilot, or production environments&lt;/LI&gt;
&lt;LI&gt;Validated test migrations of virtual machines&lt;/LI&gt;
&lt;LI&gt;Identification and resolution of technical blockers&lt;/LI&gt;
&lt;LI&gt;Increased confidence in operational readiness&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;These engagements are advisory and collaborative in nature, prioritizing customer enablement and success.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Knowledge Transfer and Operational Readiness&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A central focus of a Hyper‑V engagement is ensuring that IT teams are prepared to operate the platform long after deployment completes. Knowledge transfer is embedded throughout the engagement through working sessions and direct participation in implementation activities. This approach helps organizations move confidently into steady‑state operations without relying on long‑term external support. As I mentioned above, if you do feel you will need longer term support, we have your back on that front as well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Looking Beyond Migration&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A Hyper‑V migration is often the first step in a broader transformation journey. Many organizations use this transition to enable hybrid management, strengthen security posture, and prepare for future application or cloud modernization initiatives. When approached strategically, Hyper‑V becomes a platform for long‑term innovation, not just a replacement hypervisor.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Moving from VMware to Hyper‑V is not simply a technical migration—it is an opportunity to modernize how infrastructure is managed and governed. With structured planning, guided execution, and a focus on operational readiness, organizations can transition with confidence to a virtualization platform built for today’s hybrid cloud realities and tomorrow’s growth.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for reading, and maybe we’ll talk soon!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Apr 2026 02:50:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/customer-offerings-hyper-v-implementation-migration-and/ba-p/4510592</guid>
      <dc:creator>BrandonWilson</dc:creator>
      <dc:date>2026-04-13T02:50:50Z</dc:date>
    </item>
    <item>
      <title>Auditing FIDO2 authentication for Windows Sign-in</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/auditing-fido2-authentication-for-windows-sign-in/ba-p/4509702</link>
      <description>&lt;P&gt;Hello everyone, my name is Liju and I am a Cloud Solutions Architect helping customers secure their cloud and hybrid identities. With this post, I would like to show how FIDO2 security key authentication for Windows sign‑in can be audited on client devices.&lt;/P&gt;
&lt;P&gt;Recently, a customer of mine asked how they could:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Audit each use of a FIDO2 security key on a Windows client device&lt;/LI&gt;
&lt;LI&gt;Track all PIN verification attempts on the security key, including both successful and unsuccessful attempts&lt;/LI&gt;
&lt;LI&gt;Determine which user successfully authenticated to a Windows device using a FIDO2 security key&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;While standard Windows logon events such as &lt;A href="https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624" target="_blank" rel="noopener"&gt;4624&lt;/A&gt; and &lt;A href="https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4625" target="_blank" rel="noopener"&gt;4625&lt;/A&gt; report the user and logon type, they do not indicate whether a FIDO2 security key was used. We can find this information in the &lt;STRONG&gt;Microsoft&lt;/STRONG&gt;&lt;STRONG&gt;‑Windows&lt;/STRONG&gt;&lt;STRONG&gt;‑WebAuthN/Operational&lt;/STRONG&gt; event log, although interpreting these events requires additional decoding and correlation.&lt;/P&gt;
&lt;DIV class="mce-toc"&gt;
&lt;H2 class="lia-linked-item"&gt;&lt;a id="community--1-ToC" class="lia-anchor"&gt;&lt;/a&gt;Table of Contents&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-EntraID" target="_self" data-lia-auto-title="Entra ID" data-lia-auto-title-active="0"&gt;Entra ID&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-FIDO2SecurityKeyauthenticationinWindows" target="_self" data-lia-auto-title="FIDO2 Security Key authentication in Windows" data-lia-auto-title-active="0"&gt;FIDO2 Security Key authentication in Windows&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-Authenticationflow" target="_self" data-lia-auto-title="Authentication flow (high-level)" data-lia-auto-title-active="0"&gt;Authentication flow (high-level)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-MappingthestepstoWebAuthNevents" target="_self" data-lia-auto-title="Mapping the steps to WebAuthN events" data-lia-auto-title-active="0"&gt;Mapping the steps to WebAuthN events&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-WebAuthNEvents" target="_self" data-lia-auto-title="WebAuthN Events" data-lia-auto-title-active="0"&gt;WebAuthN Events&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-Challengegeneration" target="_self" data-lia-auto-title="Challenge generation" data-lia-auto-title-active="0"&gt;Challenge generation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-Requestconstruction" target="_self" data-lia-auto-title="Request construction" data-lia-auto-title-active="0"&gt;Request construction&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-HowtoparsetheCBOR-encodedrequest" target="_self" data-lia-auto-title="How to parse the CBOR-encoded request" data-lia-auto-title-active="0"&gt;How to parse the CBOR-encoded request&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-TranslatingEntrakeyidentifiertoWebAuthNCredentialId" target="_self" data-lia-auto-title="Translating Entra key identifier to WebAuthN Credential Id" data-lia-auto-title-active="0"&gt;Translating Entra key identifier to WebAuthN Credential Id&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-Authenticatorprocessing" target="_self" data-lia-auto-title="Authenticator processing" data-lia-auto-title-active="0"&gt;Authenticator processing&lt;/A&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-AuthenticatorPINValidation" target="_self" data-lia-auto-title="Authenticator PIN Validation" data-lia-auto-title-active="0"&gt;Authenticator PIN Validation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-HowtoparsetheCBOR-encodedrequest-2" target="_self" data-lia-auto-title="How to parse the CBOR-encoded request" data-lia-auto-title-active="0"&gt;How to parse the CBOR-encoded request&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-AuthenticatorGetAssertionoperation" target="_self" data-lia-auto-title="Authenticator GetAssertion operation" data-lia-auto-title-active="0"&gt;Authenticator GetAssertion operation&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-Responseprocessing" target="_self" data-lia-auto-title="Response processing" data-lia-auto-title-active="0"&gt;Response processing&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link" href="#community--1-Tyingitalltogether" target="_self" data-lia-auto-title="Tying it all together" data-lia-auto-title-active="0"&gt;Tying it all together&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But first, let us see how Entra ID stores the information when a user registers a FIDO2 security ley as an authentication method.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 id="mcetoc_1jlkjdlpu_1" class="lia-linked-item"&gt;&lt;a id="community--1-EntraID" class="lia-anchor"&gt;&lt;/a&gt;Entra ID&lt;/H1&gt;
&lt;P&gt;For each user that has registered a FIDO2 security key, the keys are represented as a &lt;A href="https://learn.microsoft.com/en-us/graph/api/resources/fido2authenticationmethod?view=graph-rest-1.0" target="_blank" rel="noopener"&gt;fido2AuthenticationMethod&lt;/A&gt; resource on the user object. The identifier for the key is stored with a Base64URL encoding.&lt;/P&gt;
&lt;P&gt;In the example below the value is &lt;SPAN class="lia-text-color-14"&gt;&lt;EM&gt;7ebzDmVTSreLsJkrjm1mNA2&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;When a FIDO2 key is registered, an audit event is generated in Entra ID. The &lt;STRONG&gt;KeyIdentifier&lt;/STRONG&gt; is stored using standard Base64 encoding.&lt;/P&gt;
&lt;P&gt;In the example below the value is &lt;SPAN class="lia-text-color-14"&gt;&lt;EM&gt;7ebzDmVTSreLsJkrjm1mNA==&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;&lt;img /&gt;&lt;img /&gt;
&lt;P&gt;If diagnostic logging is enabled for Entra ID and if the&amp;nbsp;&lt;STRONG&gt;AuditLogs&lt;/STRONG&gt; are sent to a Log Analytics Workspace, this information can be queried using KQL.&lt;/P&gt;
&lt;LI-CODE lang=""&gt;AuditLogs
| where Category == "UserManagement"
| where OperationName == "Add Passkey (device-bound)"
| extend UserUPN = tostring(TargetResources[0].userPrincipalName)
| extend FIDOkeyId = tostring(TargetResources[0].displayName)&lt;/LI-CODE&gt;&lt;img /&gt;
&lt;P class="lia-align-right"&gt;&lt;A class="lia-internal-link" href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H1 id="mcetoc_1jlkjdlpu_2" class="lia-linked-item"&gt;&lt;a id="community--1-FIDO2SecurityKeyauthenticationinWindows" class="lia-anchor"&gt;&lt;/a&gt;FIDO2 Security Key authentication in Windows&lt;/H1&gt;
&lt;P&gt;When a user signs in with a FIDO2 security key, Windows is trying to answer one question:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Can this authenticator (security key) prove possession of the private key associated with a registered credential for this user?&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This proof is provided in the form of a &lt;STRONG&gt;WebAuthN assertion&lt;/STRONG&gt;, which is a cryptographic response generated by the authenticator.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 id="mcetoc_1jlkjdlpu_3" class="lia-linked-item"&gt;&lt;a id="community--1-Authenticationflow" class="lia-anchor"&gt;&lt;/a&gt;Authentication flow (high-level)&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;STRONG&gt;Challenge generation&lt;BR /&gt;&lt;/STRONG&gt;During FIDO2 authentication for a Microsoft Entra user, a &lt;STRONG style="color: rgb(30, 30, 30);"&gt;challenge&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; is generated by the relying party (for example, login.microsoft.com) and provided to the client (Windows).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL start="2"&gt;
&lt;LI&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;STRONG&gt;Request construction&lt;BR /&gt;&lt;/STRONG&gt;Windows initiates a &lt;STRONG style="color: rgb(30, 30, 30);"&gt;WebAuthN GetAssertion request&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;, which is encoded using &lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;CBOR&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; (Concise Binary Object Representation), a compact binary format used by the FIDO2 protocol.&lt;BR /&gt;&lt;/SPAN&gt;The request contains the &lt;STRONG style="color: rgb(30, 30, 30);"&gt;clientDataHash&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; which is a hashed JSON object containing the challenge sent by Entra (along with other parameters).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL start="3"&gt;
&lt;LI&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;STRONG&gt;Authenticator processing&lt;BR /&gt;&lt;/STRONG&gt;The request is sent to the authenticator using &lt;STRONG style="color: rgb(30, 30, 30);"&gt;CTAP&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; (Client to Authenticator Protocol).&lt;BR /&gt;&lt;/SPAN&gt;The authenticator then locates a matching credential for the relying party, performs user verification if required (for example, PIN or biometric) and constructs the &lt;STRONG style="color: rgb(30, 30, 30);"&gt;authenticatorData&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;, which includes the hash of the relying party ID (&lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;rpIdHash&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;)&lt;BR /&gt;&lt;/SPAN&gt;The authenticator finally generates the assertion by signing (&lt;STRONG style="color: rgb(30, 30, 30);"&gt;authenticatorData&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; + &lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;clientDataHash&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;) using the credential’s private key&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL start="4"&gt;
&lt;LI&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;STRONG&gt;Response processing&lt;BR /&gt;&lt;/STRONG&gt;The authenticator returns the assertion (encoded in CBOR) to Windows.&lt;BR /&gt;Windows then decodes the CBOR response, extracts the assertion components (credential ID, authenticatorData, signature), evaluates the result and completes the WebAuthN operation.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="lia-align-right"&gt;&lt;A href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H2 id="mcetoc_1jlkjdlpu_4" class="lia-linked-item"&gt;&lt;a id="community--1-MappingthestepstoWebAuthNevents" class="lia-anchor"&gt;&lt;/a&gt;Mapping the steps to WebAuthN events&lt;/H2&gt;
&lt;P&gt;Before we take a look at the WebAuthN events on the Windows client, let us see how the logon process maps directly to the Event Log task categories.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 100%; border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Step&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Details&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Event entry&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Challenge generation&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Windows initiates authentication using a FIDO2 credential&lt;/P&gt;
&lt;P&gt;A TransactionId is created that ties all related events together.&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;WebAuthN Ctap GetAssertion started (Event ID 1003)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Request construction&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Windows builds the CTAP2 request to send to the key&lt;/P&gt;
&lt;P&gt;Encoded in the request are the rpId and clientDataHash.&lt;/P&gt;
&lt;P&gt;For Entra ID, the rpId is login.microsoft.com&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Cbor encode GetAssertion request (Event ID 1103)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="2"&gt;
&lt;P&gt;Authenticator processing&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Windows transitions from WebAuthN to the CTAP layer, and authenticator interaction begins&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Ctap GetAssertion started (Event ID 2100)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Windows exchanges CTAP commands with the key&lt;/P&gt;
&lt;P&gt;This includes:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;PIN verification (authenticatorClientPIN / getPINToken)&lt;/LI&gt;
&lt;LI&gt;Authentication request (authenticatorGetAssertion)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Ctap Usb Send Receive (Event ID 2225)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="3"&gt;
&lt;P&gt;Response processing&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Authenticator returns result to Windows&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Ctap GetAssertion completed (Event ID 2102 / 2103)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Windows interpret the authenticator’s response&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Cbor decode GetAssertion response (Event ID 1104)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Windows completes WebAuthN operation&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;WebAuthN Ctap GetAssertion completed&amp;nbsp;&amp;nbsp; (Event ID 1004 / 1005)&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 18.9064%" /&gt;&lt;col style="width: 44.8591%" /&gt;&lt;col style="width: 36.2345%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P class="lia-align-right"&gt;&lt;A href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H1 id="mcetoc_1jlkjdlpu_5" class="lia-linked-item"&gt;&lt;a id="community--1-WebAuthNEvents" class="lia-anchor"&gt;&lt;/a&gt;WebAuthN Events&lt;/H1&gt;
&lt;H2 id="mcetoc_1jlkjdlpu_6" class="lia-linked-item"&gt;&lt;a id="community--1-Challengegeneration" class="lia-anchor"&gt;&lt;/a&gt;Challenge generation&lt;/H2&gt;
&lt;P&gt;The &lt;STRONG&gt;WebAuthN Ctap GetAssertion started&lt;/STRONG&gt; event (Event ID 1003) indicates that Windows has initiated a WebAuthN authentication operation and is beginning the process of requesting an assertion from an authenticator. This marks the start of the FIDO2 authentication flow but does not yet involve communication with the security key or indicate whether authentication will succeed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;H2 id="mcetoc_1jlkjdlpu_7" class="lia-linked-item"&gt;&lt;a id="community--1-Requestconstruction" class="lia-anchor"&gt;&lt;/a&gt;Request construction&lt;/H2&gt;
&lt;P&gt;The &lt;STRONG&gt;Cbor encode GetAssertion request&lt;/STRONG&gt; event (Event ID 1103) shows Windows encoding a &lt;EM&gt;targeted&lt;/EM&gt; WebAuthN GetAssertion request.&lt;/P&gt;
&lt;P&gt;When the Request begins with 0x02, it indicates that this is a &lt;STRONG&gt;authenticatorGetAssertion&lt;/STRONG&gt; CTAP command.&lt;/P&gt;
&lt;P&gt;Note that whether or not a credential ID is present in this event depends on the scenario. When &lt;STRONG&gt;AllowCredentialCount&lt;/STRONG&gt; is greater than zero, the request includes one or more &lt;EM&gt;&lt;U&gt;specific&lt;/U&gt;&lt;/EM&gt; credential IDs (making it a “targeted” WebAuthN GetAssertion request). When it is zero, the authenticator is performing a credential discovery.&lt;/P&gt;
&lt;P&gt;The description may be parsed to get the credential Id and will match the key identifier from Entra ID when Base64 encoded.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-background-color-2" border="1" style="width: 100%; border-width: 1px;"&gt;&lt;colgroup&gt;&lt;col style="width: 99.9074%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;The &lt;STRONG&gt;Cbor encode GetAssertion request &lt;/STRONG&gt;event (Event ID 1103) is generally the most useful event for auditing each authentication attempts of a FIDO2 security key on a Windows client device.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P class="lia-linked-item lia-align-right"&gt;&lt;A href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H3 id="mcetoc_1jlkjdlpu_8" class="lia-linked-item"&gt;&lt;a id="community--1-HowtoparsetheCBOR-encodedrequest" class="lia-anchor"&gt;&lt;/a&gt;How to parse the CBOR-encoded request&lt;/H3&gt;
&lt;P&gt;Let us take the Cbor Encode GetAssertion Request event (ID 1103) and parse the CBOR-encoded data in its description&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;TransactionId: &lt;/STRONG&gt;{3443b0f7-a6a2-4b1c-9026-aea3ab93f662}&lt;BR /&gt;&lt;STRONG&gt;RpId:&lt;/STRONG&gt; login.microsoft.com&lt;BR /&gt;&lt;STRONG&gt;ClientDataHashAlgId: &lt;/STRONG&gt;S256&lt;BR /&gt;&lt;STRONG&gt;ClientDataLength: &lt;/STRONG&gt;176&lt;BR /&gt;&lt;STRONG&gt;ClientDataHash: &lt;/STRONG&gt;0x0E3A6FC2C6941563481563AFADF439276A2280A9F59E85197478BB748E625DF3&lt;BR /&gt;&lt;STRONG&gt;AllowCredentialCount: &lt;/STRONG&gt;1&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Request:&lt;/STRONG&gt; 0x02A401736C6F67696E2E6D6963726F736F66742E636F6D0258200E3A6FC2C6941563481563AFADF439276A2280A9F59E85197478BB748E625DF30381A262696450EDE6F30E65534AB78BB0992B8E6D663464747970656A7075626C69632D6B657905A1627570F5&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The first byte gives us the CTAP command.
&lt;UL&gt;
&lt;LI&gt;In this case it is &lt;STRONG&gt;0x02&lt;/STRONG&gt; which means &lt;STRONG&gt;authenticatorGetAssertion&lt;/STRONG&gt; (&lt;A href="https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html#authenticatorGetAssertion" target="_blank" rel="noopener"&gt;Client to Authenticator Protocol (CTAP)&lt;/A&gt;)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Everything after that first byte is the CBOR payload (&lt;STRONG&gt;A4&lt;/STRONG&gt;01736C6F67696E2E6D6963726F736F66742E636F6D0258200E3A6FC2C6941563481563AFADF439276A2280A9F59E85197478BB748E625DF30381A262696450EDE6F30E65534AB78BB0992B8E6D663464747970656A7075626C69632D6B657905A1627570F5).
&lt;UL&gt;
&lt;LI&gt;Note that The CBOR payload starts with &lt;STRONG&gt;A4&lt;/STRONG&gt;. This means that the CBOR body is a map with 4 entries or named fields.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;If you do not want to decode the bytes by hand, a simple way to inspect the payload is to paste it into an online CBOR decoder such as &lt;A href="https://cbor.nemo157.com/" target="_blank" rel="noopener"&gt;CBOR Playground&lt;/A&gt;. The site accepts hex input and can parse it into a readable CBOR structure.&lt;/LI&gt;
&lt;LI&gt;Paste the CBOR payload into the input area. Make sure the input mode is &lt;STRONG&gt;Hex&lt;/STRONG&gt;, then use &lt;STRONG&gt;Parse&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;/OL&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL start="5"&gt;
&lt;LI&gt;For this example, the decoded result is:&lt;/LI&gt;
&lt;/OL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;{&lt;BR /&gt;&amp;nbsp; 1: "login.microsoft.com",&lt;BR /&gt;&amp;nbsp; 2: h'0E3A6FC2C6941563481563AFADF439276A2280A9F59E85197478BB748E625DF3',&lt;BR /&gt;&amp;nbsp; 3: [&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "id": h'EDE6F30E65534AB78BB0992B8E6D6634',&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "type": "public-key"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; ],&lt;BR /&gt;&amp;nbsp; 5: {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "up": true&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;OL start="6"&gt;
&lt;LI&gt;This output is still using the CTAP numeric field keys (1-5), so the next step is to translate those numbers into the field names used by the GetAssertion request based on the table at &lt;A href="https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html#authenticatorGetAssertion" target="_blank" rel="noopener"&gt;Client to Authenticator Protocol (CTAP)&lt;/A&gt;:
&lt;UL&gt;
&lt;LI&gt;1 = rpId&lt;/LI&gt;
&lt;LI&gt;2 = clientDataHash&lt;/LI&gt;
&lt;LI&gt;3 = allowList&lt;/LI&gt;
&lt;LI&gt;5 = options&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;So in plain English, the payload says:&lt;/LI&gt;
&lt;/OL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;{&lt;BR /&gt;&amp;nbsp; "&lt;STRONG&gt;rpId&lt;/STRONG&gt;": "login.microsoft.com",&lt;BR /&gt;&amp;nbsp; "&lt;STRONG&gt;clientDataHash&lt;/STRONG&gt;": "0E3A6FC2C6941563481563AFADF439276A2280A9F59E85197478BB748E625DF3",&lt;BR /&gt;&amp;nbsp; "&lt;STRONG&gt;allowList&lt;/STRONG&gt;": [&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;STRONG&gt;id&lt;/STRONG&gt;": "EDE6F30E65534AB78BB0992B8E6D6634",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;STRONG&gt;type&lt;/STRONG&gt;": "public-key"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; ],&lt;BR /&gt;&amp;nbsp; "&lt;STRONG&gt;options&lt;/STRONG&gt;": {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;STRONG&gt;up&lt;/STRONG&gt;": true&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;OL start="8"&gt;
&lt;LI&gt;For a bit more detail about each field:
&lt;UL&gt;
&lt;LI&gt;Key 1 contains the relying party ID&lt;/LI&gt;
&lt;LI&gt;Key 2 contains the 32-byte clientDataHash&lt;/LI&gt;
&lt;LI&gt;Key 3 contains an allowList array with one credential descriptor&lt;/LI&gt;
&lt;LI&gt;Key 5 contains an options map&lt;/LI&gt;
&lt;LI&gt;Inside options, up: true means user presence was requested&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;For details on how to decode the CBOR payload yourself see &lt;A href="https://www.rfc-editor.org/rfc/rfc8949.html" target="_blank" rel="noopener"&gt;RFC 8949: Concise Binary Object Representation (CBOR)&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-align-right"&gt;&lt;A href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H3 id="mcetoc_1jlkjdlpu_9" class="lia-linked-item"&gt;&lt;a id="community--1-TranslatingEntrakeyidentifiertoWebAuthNCredentialId" class="lia-anchor"&gt;&lt;/a&gt;Translating Entra key identifier to WebAuthN Credential Id&lt;/H3&gt;
&lt;P&gt;The &lt;STRONG&gt;key identifier&lt;/STRONG&gt; from Entra ID when Base64 decoded will match the &lt;STRONG&gt;CredentialId&lt;/STRONG&gt; in the event.&lt;/P&gt;
&lt;P&gt;A sample PowerShell function that does this is given below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;function Convert-Base64UrlToBytes {
    param(
        [Parameter(Mandatory=$true)]
        [string]$Base64Url
    )

    # Convert Base64url to normal Base64
    $b64 = $Base64Url.Replace('-', '+').Replace('_', '/')

    # Add padding if required
    switch ($b64.Length % 4) {
        2 { $b64 += "==" }
        3 { $b64 += "=" }
        0 { }  # already aligned
        1 { throw "Invalid Base64url string length" }
    }

    # Decode Base64 → byte array
    return [Convert]::FromBase64String($b64)
}

cls

# Conversion from Base64URL encoded identifier (user object)
$bytes = Convert-Base64UrlToBytes "7ebzDmVTSreLsJkrjm1mNA2"
($bytes | ForEach-Object { $_.ToString("X2") }) -join ""

# Conversion from Base64 encoded identifier (audit log)
$bytes = Convert-Base64UrlToBytes "7ebzDmVTSreLsJkrjm1mNA=="
($bytes | ForEach-Object { $_.ToString("X2") }) -join "" 
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-align-right"&gt;&lt;A href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H2 id="mcetoc_1jlkjdlpu_10" class="lia-linked-item"&gt;&lt;a id="community--1-Authenticatorprocessing" class="lia-anchor"&gt;&lt;/a&gt;Authenticator processing&lt;/H2&gt;
&lt;P&gt;The &lt;STRONG&gt;Ctap GetAssertion started&lt;/STRONG&gt; event (Event ID 2100) shows Windows starting a CTAP GetAssertion operation against a specific FIDO2 key.&lt;/P&gt;
&lt;img /&gt;
&lt;H3 id="mcetoc_1jlkjdlpu_11" class="lia-linked-item"&gt;&lt;a id="community--1-AuthenticatorPINValidation" class="lia-anchor"&gt;&lt;/a&gt;Authenticator PIN Validation&lt;/H3&gt;
&lt;P&gt;All PIN attempts generate a &lt;STRONG&gt;Ctap Usb Send Receive&lt;/STRONG&gt; event (Event ID 2225) where the &amp;nbsp;&lt;STRONG&gt;Request&lt;/STRONG&gt; starts with &lt;STRONG&gt;0x&lt;SPAN class="lia-text-color-14"&gt;06&lt;/SPAN&gt;A401010205&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;06&lt;/STRONG&gt; means this is a &lt;STRONG&gt;PIN-related command&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;If the request starts with &lt;STRONG&gt;06A401010205&lt;/STRONG&gt; this denotes a &lt;STRONG&gt;getPinToken&lt;/STRONG&gt; flag, meaning a &lt;STRONG&gt;PIN verification attempt.&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If the &lt;STRONG&gt;Response&lt;/STRONG&gt; starts &lt;STRONG&gt;0x00&lt;/STRONG&gt;, it indicates a Success.&lt;/P&gt;
&lt;P&gt;Other possible values for the response field are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;0x31 - Incorrect PIN&lt;/LI&gt;
&lt;LI&gt;0x33 - PIN Auth Invalid&lt;/LI&gt;
&lt;LI&gt;0x34 - PIN Required&lt;/LI&gt;
&lt;/UL&gt;
&lt;img /&gt;&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-background-color-2" border="1" style="width: 100%; border-width: 1px;"&gt;&lt;colgroup&gt;&lt;col style="width: 99.9074%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Therefore,&amp;nbsp;&lt;STRONG&gt;Ctap Usb Send Receive&lt;/STRONG&gt; events (Event ID 2225) where the &lt;STRONG&gt;Request&lt;/STRONG&gt; starts with &lt;STRONG&gt;0x06A401010205 &lt;/STRONG&gt;will report all security key PIN attempts, both successful and unsuccessful, on the client device.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P class="lia-align-right"&gt;&lt;A href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H3 id="mcetoc_1jlkjdlpu_12" class="lia-linked-item"&gt;&lt;a id="community--1-HowtoparsetheCBOR-encodedrequest-2" class="lia-anchor"&gt;&lt;/a&gt;&lt;a id="community--1-HowtoparsetheCBOR-encodedrequest" class="lia-anchor"&gt;&lt;/a&gt;How to parse the CBOR-encoded request&lt;/H3&gt;
&lt;P&gt;Let us try and parse the CBOR-encoded data in the event’s description once again.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;TransactionId: &lt;/STRONG&gt;{3443b0f7-a6a2-4b1c-9026-aea3ab93f662}&lt;BR /&gt;&lt;STRONG&gt;Request Command: &lt;/STRONG&gt;0x90&lt;BR /&gt;&lt;STRONG&gt;Response Command: &lt;/STRONG&gt;0x90&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Request:&lt;/STRONG&gt; 0x06A40101020503A5010203381820012158206F67957900E6BBEC39838F015E3F5D6918F5A8D76E401828363E51F6C256541222582027E8B11854CE667B8EE19DF3A3DEE4A3F0DB43809811C3A93F2E9C0293E466AA0650746BE172CD2402CFFCC94734BC98D16A&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Response: &lt;/STRONG&gt;0x00A1025093B2EE5307CC81EA08684FEBE22D536D&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The first byte in the request (&lt;STRONG&gt;0x06&lt;/STRONG&gt;) gives us the &lt;STRONG&gt;authenticatorClientPIN &lt;/STRONG&gt;CTAP command (&lt;A href="https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html#authenticatorClientPIN" target="_blank" rel="noopener"&gt;Client to Authenticator Protocol (CTAP)&lt;/A&gt;)&lt;/LI&gt;
&lt;LI&gt;Everything after that first byte is the CBOR payload (&lt;STRONG&gt;A4&lt;/STRONG&gt;0101020503A5010203381820012158206F67957900E6BBEC39838F015E3F5D6918F5A8D76E401828363E51F6C256541222582027E8B11854CE667B8EE19DF3A3DEE4A3F0DB43809811C3A93F2E9C0293E466AA0650746BE172CD2402CFFCC94734BC98D16A).
&lt;UL&gt;
&lt;LI&gt;As before &lt;STRONG&gt;A4&lt;/STRONG&gt; means that the CBOR body is a map with &lt;STRONG&gt;4&lt;/STRONG&gt; entries or named fields.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Parsing this payload using &lt;A href="https://cbor.nemo157.com/" target="_blank" rel="noopener"&gt;CBOR Playground&lt;/A&gt; we get:&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;{&lt;BR /&gt;&amp;nbsp; 1: 1,&lt;BR /&gt;&amp;nbsp; 2: 5,&lt;BR /&gt;&amp;nbsp; 3: {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1: 2,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3: -25,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -1: h'6F67957900E6BBEC39838F015E3F5D6918F5A8D76E401828363E51F6C2565412',&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -2: h'27E8B11854CE667B8EE19DF3A3DEE4A3F0DB43809811C3A93F2E9C0293E466AA'&lt;BR /&gt;&amp;nbsp; },&lt;BR /&gt;&amp;nbsp; 6: h'746BE172CD2402CFFCC94734BC98D16A'&lt;BR /&gt;}&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL start="4"&gt;
&lt;LI&gt;Using the table at &lt;A href="https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html#authnrClientPin-cmd-dfn" target="_blank" rel="noopener"&gt;Client to Authenticator Protocol (CTAP)&lt;/A&gt; to translate the numeric keys we have:
&lt;UL&gt;
&lt;LI&gt;key 1 = pinUvAuthProtocol&lt;/LI&gt;
&lt;LI&gt;key 2 = subCommand&lt;/LI&gt;
&lt;LI&gt;key 3 = keyAgreement&lt;/LI&gt;
&lt;LI&gt;key 6 = pinHashEnc&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;After the translation, the payload says:&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; "&lt;STRONG&gt;pinUvAuthProtocol&lt;/STRONG&gt;": 1,&lt;BR /&gt;&amp;nbsp; "&lt;STRONG&gt;subCommand&lt;/STRONG&gt;": 5,&lt;BR /&gt;&amp;nbsp; "&lt;STRONG&gt;keyAgreement&lt;/STRONG&gt;": {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1: 2,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3: -25,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -1: h'6F67957900E6BBEC39838F015E3F5D6918F5A8D76E401828363E51F6C2565412',&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -2: h'27E8B11854CE667B8EE19DF3A3DEE4A3F0DB43809811C3A93F2E9C0293E466AA'&lt;BR /&gt;&amp;nbsp; },&lt;BR /&gt;&amp;nbsp; "&lt;STRONG&gt;pinHashEnc&lt;/STRONG&gt;": h'746BE172CD2402CFFCC94734BC98D16A'&lt;BR /&gt;}&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL start="6"&gt;
&lt;LI&gt;The information most useful for us here is "&lt;STRONG&gt;subCommand&lt;/STRONG&gt;": 5, which as you can see from the second table in &lt;A href="https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html#authnrClientPin-cmd-dfn" target="_blank" rel="noopener"&gt;Client to Authenticator Protocol (CTAP)&lt;/A&gt; tells is a &lt;STRONG&gt;getPinToken&lt;/STRONG&gt; subcommand.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;In summary, when the request begins with &lt;STRONG&gt;06 A4 01 01 02 05&lt;/STRONG&gt;, it can be identified as a PIN verification attempt. The leading byte &lt;STRONG&gt;0x06&lt;/STRONG&gt; indicates the CTAP &lt;STRONG&gt;authenticatorClientPIN&lt;/STRONG&gt; command. The next byte &lt;STRONG&gt;A4&lt;/STRONG&gt; shows that the CBOR payload is a map with four fields. Within that map, the sequence &lt;STRONG&gt;01 01&lt;/STRONG&gt; corresponds to &lt;STRONG&gt;pinUvAuthProtocol = 1&lt;/STRONG&gt;, and &lt;STRONG&gt;02 05&lt;/STRONG&gt; corresponds to &lt;STRONG&gt;subCommand = 5&lt;/STRONG&gt;. In the Client PIN command set, subcommand &lt;STRONG&gt;5&lt;/STRONG&gt; represents &lt;STRONG&gt;getPinToken&lt;/STRONG&gt;, which is used during PIN verification. Together, this byte pattern reliably indicates that the operation is a PIN-based authentication step rather than a standard assertion request.&lt;/P&gt;
&lt;P&gt;Turn on &lt;STRONG&gt;Annotate&lt;/STRONG&gt; if you want the CBOR Playground site to show how each byte is interpreted.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-align-right"&gt;&lt;A href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H3 id="mcetoc_1jlkjdlpu_13" class="lia-linked-item"&gt;&lt;a id="community--1-AuthenticatorGetAssertionoperation" class="lia-anchor"&gt;&lt;/a&gt;Authenticator GetAssertion operation&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Ctap Usb Send Receive&lt;/STRONG&gt; events (Event ID 2225) where the &lt;STRONG&gt;Request&lt;/STRONG&gt; begins with &lt;STRONG&gt;0x02&lt;/STRONG&gt; indicate an &lt;STRONG&gt;authenticatorGetAssertion&lt;/STRONG&gt; CTAP2 Operation. The encoded payload includes the RpId and ClientDataHash.&lt;/P&gt;
&lt;P&gt;If the &lt;STRONG&gt;Response&lt;/STRONG&gt; begins with &lt;STRONG&gt;0x00 &lt;/STRONG&gt;it was successful. Included in the CBOR payload is the &lt;STRONG&gt;id&lt;/STRONG&gt; (Credential ID) and the rpIdHash&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-align-right"&gt;&lt;A href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H2 id="mcetoc_1jlkjdlpu_14" class="lia-linked-item"&gt;&lt;a id="community--1-Responseprocessing" class="lia-anchor"&gt;&lt;/a&gt;Response processing&lt;/H2&gt;
&lt;P&gt;The &lt;STRONG&gt;Ctap GetAssertion completed&lt;/STRONG&gt; event (Event ID 2102) tells us that the authenticator successfully completed a GetAssertion operation and returned a valid signed assertion to Windows.&lt;/P&gt;
&lt;P&gt;Included in the response payload are security key device information, status of the operation (6673746174757300 stands for status = 0), the credential used and authenticator data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;The &lt;STRONG&gt;Cbor decode GetAssertion response&lt;/STRONG&gt; event (Event ID 1104) is logged when the authenticator successfully returns a WebAuthN assertion for the relying party using a particular credential.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;This is one of the best events to track successful authentication because the important fields are already parsed out.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The &lt;STRONG&gt;RpIdHash&lt;/STRONG&gt; of 356C9ED4A09321B9695F1EAF918203F1B55F689DA61FBC96184C157DDA680C81 is the SHA-256 hash of “login.microsoft.com”&lt;/LI&gt;
&lt;LI&gt;A &lt;STRONG&gt;Flags&lt;/STRONG&gt; value of 0x85 means 0x80 + 0x04 + 0x01
&lt;UL&gt;
&lt;LI&gt;0x01: UP (the user was present and interacted with the key)&lt;/LI&gt;
&lt;LI&gt;0x04: UV (user verification succeeded, which in this scenario means PIN was successfully validated)&lt;/LI&gt;
&lt;LI&gt;0x80: ED (extension data was included in the assertion)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;The&amp;nbsp;&lt;STRONG&gt;CredentialId&lt;/STRONG&gt; of EDE6F30E65534AB78BB0992B8E6D6634 when Base64 encoded, will match the key identifier in Entra.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table class="lia-background-color-2" border="1" style="width: 100%; border-width: 1px;"&gt;&lt;colgroup&gt;&lt;col style="width: 99.9074%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Therefore, &lt;STRONG&gt;Cbor decode GetAssertion response&lt;/STRONG&gt; events (Event ID 1104) will tell you which users successfully authenticated to the Windows device using a FIDO2 security key.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Finally, the &lt;STRONG&gt;WebAuthN Ctap GetAssertion completed&lt;/STRONG&gt; event (Event ID 1004) tells us that WebAuthN GetAssertion operation completed successfully for this TransactionId.&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-align-right"&gt;&lt;A href="#community--1-ToC" target="_blank" rel="noopener" data-lia-auto-title="Top👆" data-lia-auto-title-active="0"&gt;Top👆&lt;/A&gt;&lt;/P&gt;
&lt;H1 id="mcetoc_1jlkjdlpu_15" class="lia-linked-item"&gt;&lt;a id="community--1-Tyingitalltogether" class="lia-anchor"&gt;&lt;/a&gt;Tying it all together&lt;/H1&gt;
&lt;P&gt;I started out by outlining what my customer’s monitoring goals were; the table below summarizes the events recommended for monitoring:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;What to Monitor&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Event&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Notes&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Each use of a FIDO2 security key on a Windows client device.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Cbor encode GetAssertion request &lt;/STRONG&gt;(Event ID 1103)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Filter for events where:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Request&lt;/STRONG&gt; begins with &lt;STRONG&gt;0x02&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG style="background-color: rgba(0, 0, 0, 0); color: rgb(30, 30, 30);"&gt;AllowCredentialCount&lt;/STRONG&gt;&lt;SPAN style="background-color: rgba(0, 0, 0, 0); color: rgb(30, 30, 30);"&gt; is greater than zero.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Parse&amp;nbsp;&lt;STRONG&gt;Request&lt;/STRONG&gt; for credential Id.&lt;/P&gt;
&lt;P&gt;Base64 encode credential Id to match key identifier and user in Entra ID.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;All attempts, both successful and unsuccessful, when a PIN was tried to unlock a credential on the FIDO2 security key on the device.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Ctap Usb Send Receive&lt;/STRONG&gt; (Event ID 2225)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Filter for events where &lt;STRONG&gt;Request&lt;/STRONG&gt; starts with &lt;STRONG&gt;0x06A401010205&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;&lt;STRONG&gt;Response&lt;/STRONG&gt; property indicates result.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Which user successfully authenticated to the Windows device using their FIDO2 security key.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Cbor decode GetAssertion response&lt;/STRONG&gt; (Event ID 1104)&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Base64 encode credential Id to match key identifier and user in Entra ID.&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The techniques outlined in this document show how to identify individual FIDO2 credentials, track PIN verification attempts, and conclusively determine which user authenticated to a Windows device using a security key. With this approach, passwordless authentication becomes not only more secure, but also more observable and supportable in enterprise environments.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Apr 2026 11:10:08 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/auditing-fido2-authentication-for-windows-sign-in/ba-p/4509702</guid>
      <dc:creator>LijuV</dc:creator>
      <dc:date>2026-04-09T11:10:08Z</dc:date>
    </item>
    <item>
      <title>Azure Database Security Newsletter - April 2026</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/azure-database-security-newsletter-april-2026/ba-p/4507226</link>
      <description>&lt;P&gt;Welcome to the quarterly edition of Azure Database Platform Security Newsletter. In this newsletter we highlight the importance of strong encryption for data security, and call out recent encryption, key management, and auditing enhancements designed to help you strengthen your security posture while simplifying operational management.&lt;/P&gt;
&lt;P&gt;Data is one of the most critical assets organizations manage, and protecting it is essential to maintaining trust, resilience, and long‑term success. As cyber threats continue to evolve and regulatory expectations increase, strong encryption has become a foundational requirement rather than an optional safeguard.&lt;/P&gt;
&lt;P&gt;Encryption protects sensitive data across its entire lifecycle. Data is encrypted at rest using Transparent Data Encryption (TDE) to protect stored information, in transit using Transport Layer Security (TLS) to secure data as it moves across your application and server, and in use through Always Encrypted to help ensure data remains protected even from high-privileged users. Together, these capabilities reduce risk and support compliance obligations.&lt;/P&gt;
&lt;H1&gt;Feature highlights 💡&lt;/H1&gt;
&lt;H2&gt;Customer-Managed Keys in Fabric SQL Database&lt;/H2&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://blog.fabric.microsoft.com/en-us/blog/customer-managed-keys-cmk-in-fabric-sql-database-generally-available?ft=All" target="_blank" rel="noopener"&gt;Customer-Managed Keys (CMK) are now generally available for Fabric SQL Database&lt;/A&gt;, allowing you to use Azure Key Vault keys to encrypt all workspace data, including all SQL Database data. This feature gives organizations greater control over key management and helps meet data governance and encryption requirements. More information on &lt;A class="lia-external-url" href="https://www.youtube.com/watch?v=1ffSH5g1t-Y" target="_blank" rel="noopener"&gt;How to encrypt Fabric SQL Database with Customer Managed Keys (Video)&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;Versionless keys for Transparent Data Encryption in Azure SQL Database&lt;/H2&gt;
&lt;P&gt;Azure SQL Database now lets you use &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azuresqlblog/versionless-keys-for-transparent-data-encryption-in-azure-sql-database-generally/4502969" target="_blank" rel="noopener" data-lia-auto-title="versionless key URIs for Transparent Data Encryption (TDE)" data-lia-auto-title-active="0"&gt;versionless key URIs for Transparent Data Encryption (TDE)&lt;/A&gt; with customer-managed keys, automatically applying the latest enabled key from Azure Key Vault or Managed HSM. This update simplifies encryption management.&lt;/P&gt;
&lt;H2&gt;Auditing in Fabric SQL Database&lt;/H2&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/fabric/database/sql/auditing" target="_blank"&gt;Auditing for Fabric SQL Database&lt;/A&gt; is now generally available. Organizations can track and log database activities, addressing questions about data access for compliance, threat detection, and forensic analysis. Audit logs are stored in One Lake, and access is controlled by Fabric workspace roles and SQL permissions.&lt;/P&gt;
&lt;H1&gt;Best Practices Corner&amp;nbsp;&lt;/H1&gt;
&lt;H5&gt;Retain all historical TDE keys and key versions&lt;/H5&gt;
&lt;P&gt;Always keep all historical Transparent Data Encryption (TDE) keys and their versions. Databases and backups remain encrypted with the key version that was active at the time of encryption. Restoring an older database requires access to the exact key version used. Deleting older keys or versions can make database restore impossible and result in permanent data loss. See &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azuresqlblog/everything-you-need-to-know-about-tde-key-management-for-database-restore/4416564" target="_blank" rel="noopener" data-lia-auto-title="Everything you need to know about TDE key management for database restore" data-lia-auto-title-active="0"&gt;Everything you need to know about TDE key management for database restore&lt;/A&gt;.&lt;/P&gt;
&lt;H5&gt;Apply the Principle of Least Privilege&lt;/H5&gt;
&lt;P&gt;Always grant users, applications, and services the minimum level of access required to perform their database tasks. Avoid broad administrative or owner-level permissions unless absolutely necessary. Regularly review, restrict, and remove excessive or unused privileges to reduce the attack surface and limit the impact of compromised credentials or configuration errors. This control aligns with established security standards such as &lt;A class="lia-external-url" href="https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final" target="_blank" rel="noopener"&gt;NIST SP 800‑53 (AC‑6: Least Privilege)&lt;/A&gt;, &lt;A class="lia-external-url" href="https://www.cisecurity.org/controls/access-control-management" target="_blank" rel="noopener"&gt;CIS Critical Security Controls&lt;/A&gt;, &lt;A class="lia-external-url" href="https://www.iso.org/standard/75652.html" target="_blank" rel="noopener"&gt;ISO/IEC 27002&lt;/A&gt;, and &lt;A class="lia-external-url" href="https://cheatsheetseries.owasp.org/cheatsheets/Database_Security_Cheat_Sheet.html" target="_blank" rel="noopener"&gt;OWASP database security guidance&lt;/A&gt;.&lt;/P&gt;
&lt;H5&gt;Enable Auditing on Azure SQL and SQL Server&lt;/H5&gt;
&lt;P&gt;Always enable auditing on Azure SQL to record database activities for security monitoring, compliance, and forensic investigation. Auditing provides visibility into database access and changes, helping detect unauthorized or suspicious behavior and supporting incident response and regulatory requirements. See &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-sql/database/auditing-overview?view=azuresql" target="_blank" rel="noopener"&gt;Auditing - Azure SQL Database&lt;/A&gt;.&lt;/P&gt;
&lt;H1&gt;Blogs and Video Spotlight 🅱️&lt;/H1&gt;
&lt;P&gt;In the last three months, we've published blog posts on major releases and features. These updates offer practical insights and highlight the latest in data security and database management.&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azuresqlblog/why-ledger-verification-is-non-negotiable/4485290" target="_blank" rel="noopener" data-lia-auto-title="Why ledger verification is non-negotiable" data-lia-auto-title-active="0"&gt;Why ledger verification is non-negotiable&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://devblogs.microsoft.com/cosmosdb/how-to-enable-microsoft-entra-id-for-azure-cosmos-db-nosql/" target="_blank" rel="noopener"&gt;How to Enable Microsoft Entra ID for Azure Cosmos DB (NoSQL)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azuresqlblog/why-developers-and-dbas-love-sql%E2%80%99s-dynamic-data-masking-series-part-1/4498450" target="_blank" rel="noopener" data-lia-auto-title="Why Developers and DBAs love SQL’s Dynamic Data Masking (Series-Part 1)" data-lia-auto-title-active="0"&gt;Why Developers and DBAs love SQL’s Dynamic Data Masking (Series-Part 1)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/sqlserver/announcing-preview-of-bulkadmin-role-support-for-sql-server-on-linux/4503676" target="_blank" rel="noopener" data-lia-auto-title="Announcing Preview of bulkadmin role support for SQL Server on Linux" data-lia-auto-title-active="0"&gt;Announcing Preview of bulkadmin role support for SQL Server on Linux&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azuresqlblog/zero-trust-for-data-make-microsoft-entra-authentication-for-sql-your-policy-base/4506679" target="_blank" rel="noopener" data-lia-auto-title="Zero Trust for data: Make Microsoft Entra authentication for SQL your policy baseline" data-lia-auto-title-active="0"&gt;Zero Trust for data: Make Microsoft Entra authentication for SQL your policy baseline&lt;/A&gt;&lt;/P&gt;
&lt;H1&gt;Community &amp;amp; Events 👥&lt;/H1&gt;
&lt;P&gt;The data platform security team will be on-site at several upcoming events. Come and say hi!&lt;/P&gt;
&lt;H5&gt;Previous events&lt;/H5&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://sqlkonferenz.de/" target="_blank" rel="noopener"&gt;SQL Konferenz&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://fabriccon.com/" target="_blank" rel="noopener"&gt;FABCON 26 - Microsoft Fabric Community Conference - FABCON&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://sqlcon.us/" target="_blank" rel="noopener"&gt;SQLCON - Microsoft SQL Community Conference - SQLCON&lt;/A&gt;&lt;/P&gt;
&lt;H5&gt;Upcoming events&lt;/H5&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://sqlbits.com/" target="_blank" rel="noopener"&gt;SQLBits&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://datagrillen.com/" target="_blank" rel="noopener"&gt;DataGrillen&lt;/A&gt;&lt;/P&gt;
&lt;H1&gt;Call to action 📢&lt;/H1&gt;
&lt;P&gt;Take 15 minutes this week to validate your database encryption posture: confirm TDE is enabled, review your key management plan (including retaining historical key versions), and ensure TLS is enforced for all connections. If you are using Fabric SQL Database, consider enabling Customer-Managed Keys and turning on Auditing to strengthen governance and investigation readiness. Share this newsletter with your security and DBA partners and align on one concrete improvement you can complete.&lt;/P&gt;</description>
      <pubDate>Wed, 01 Apr 2026 08:08:13 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/azure-database-security-newsletter-april-2026/ba-p/4507226</guid>
      <dc:creator>PieterVanhove</dc:creator>
      <dc:date>2026-04-01T08:08:13Z</dc:date>
    </item>
    <item>
      <title>Check This Out! (CTO!) Guide (March 2026)</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/check-this-out-cto-guide-march-2026/ba-p/4506999</link>
      <description>&lt;P&gt;&lt;A href="https://techcommunity.microsoft.com/users/tysonpaul/322025" data-lia-auto-title="Member: TysonPaul | Microsoft Community Hub" data-lia-auto-title-active="0" target="_blank"&gt;Member: TysonPaul | Microsoft Community Hub&lt;/A&gt;&lt;/P&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/itopstalkblog/automating-large%E2%80%91scale-data-management-with-azure-storage-actions/4496766" target="_blank" rel="noopener noreferrer"&gt;Automating Large‑Scale Data Management with Azure Storage Actions&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/itopstalk/blog/itopstalkblog" target="_blank" rel="noopener noreferrer"&gt;ITOps Talk&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/1nataraj/1439120" target="_blank" rel="noopener noreferrer"&gt;1Nataraj&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/25/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Storage Actions is a fully managed, serverless automation platform that simplifies large-scale data management in Azure Blob and Data Lake Storage. It enables users to automate tasks such as tagging, tiering, deletion, and applying immutability based on customizable conditions—without custom code or infrastructure. Administrators can centrally define tasks and assign them across multiple storage accounts, with built-in preview, monitoring, and audit features. Use cases include compliance, cost optimization, and metadata management, making it ideal for organizations managing millions of items across vast storage estates. Azure Storage Actions is available in over 40 Azure regions.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/itopstalkblog/migration-modernization--agentic-tools/4497193" target="_blank" rel="noopener noreferrer"&gt;Migration, Modernization &amp;amp; Agentic Tools&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/itopstalk/blog/itopstalkblog" target="_blank" rel="noopener noreferrer"&gt;ITOps Talk&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/orinthomas/251291" target="_blank" rel="noopener noreferrer"&gt;OrinThomas&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/25/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article discusses how agentic tools, such as those in Azure Copilot and GitHub Copilot, transform cloud migration and modernization from one-time projects into ongoing, autonomous systems. These tools dynamically discover environments, recommend modernization paths, automate migration steps, and continuously optimize workloads for cost, performance, security, and compliance. By embedding governance and leveraging real-time telemetry, agentic tools reduce manual effort, minimize errors, and ensure migrations are efficient, secure, and aligned with enterprise standards, providing continuous improvement post-migration.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/finopsblog/what%E2%80%99s-new-in-finops-toolkit-13-%E2%80%93-january-2026/4493090" target="_blank" rel="noopener noreferrer"&gt;What’s new in FinOps toolkit 13 – January 2026&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/finopsblog" target="_blank" rel="noopener noreferrer"&gt;FinOps&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/michael_flanakin/3099145" target="_blank" rel="noopener noreferrer"&gt;Michael_Flanakin&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/09/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The January 2026 update to the FinOps toolkit focuses on stability, usability, and community engagement. Key enhancements include improved documentation, new features like configurable Key Vault purge protection, and expanded support for Parquet format and compression in Cost Management exports via PowerShell. Security, reliability, and extensibility have been strengthened for FinOps hubs, with numerous bug fixes across Power BI reports, workbooks, and the Azure Optimization Engine. The release highlights ongoing community involvement, upcoming features like AI automation, and premium services to help organizations deploy and scale the toolkit effectively.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/managed-identity-on-sql-server-on-prem-the-end-of-stored-secrets/4496450" target="_blank" rel="noopener noreferrer"&gt;Managed Identity on SQL Server On-Prem: The End of Stored Secrets&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/cis/blog/coreinfrastructureandsecurityblog" target="_blank" rel="noopener noreferrer"&gt;Core Infrastructure and Security&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/ryadb/193779" target="_blank" rel="noopener noreferrer"&gt;RyadB&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/23/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; **Summary:** The article explains how SQL Server 2025 on-premises, when connected to Azure Arc, can use Managed Identity to access Azure resources without storing secrets like SAS tokens or keys. This approach eliminates risks of secret storage, rotation, and auditing complexity by leveraging Microsoft Entra ID for identity management and RBAC for permissions. The article details configuration steps, migration from stored credentials, troubleshooting, and current limitations, highlighting improved security and simplified management for on-prem SQL Server accessing Azure services.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/coreinfrastructureandsecurityblog/running-text-to-image-and-text-to-video-with-comfyui-and-nvidia-h100-gpu/4497978" target="_blank" rel="noopener noreferrer"&gt;Running Text to Image and Text to Video with ComfyUI and Nvidia H100 GPU&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/cis/blog/coreinfrastructureandsecurityblog" target="_blank" rel="noopener noreferrer"&gt;Core Infrastructure and Security&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/houssemdellai/632520" target="_blank" rel="noopener noreferrer"&gt;HoussemDellai&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/27/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; This article provides a step-by-step guide for setting up and running ComfyUI, a node-based interface for AI-powered text-to-image and text-to-video generation, on Azure VMs with Nvidia H100 GPUs. It details both automated (Terraform) and manual setup methods, including installing drivers, dependencies, and downloading required models. The guide explains accessing ComfyUI’s web portal, workflow configuration, and model management to create high-quality images and videos efficiently. It also includes important notes about GPU driver compatibility and offers links to official documentation and scripts for further reference.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurenetworkingblog/unlock-outbound-traffic-insights-with-azure-standardv2-nat-gateway-flow-logs/4493138" target="_blank" rel="noopener noreferrer"&gt;Unlock outbound traffic insights with Azure StandardV2 NAT Gateway flow logs&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurenetworkingblog" target="_blank" rel="noopener noreferrer"&gt;Azure Networking&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/cozhang/2733179" target="_blank" rel="noopener noreferrer"&gt;cozhang&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/06/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article introduces Azure’s StandardV2 NAT Gateway, highlighting its new features such as zone-redundancy, enhanced performance, dual-stack support, and, notably, flow logs. Flow logs provide detailed visibility into outbound traffic, enabling security auditing, compliance, usage analytics, and troubleshooting. The article explains how to enable and use flow logs to diagnose connectivity issues and optimize network architecture. It emphasizes the importance of flow logs for monitoring established outbound connections and offers troubleshooting steps for connection drops, recommending best practices for resilient Azure deployments.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurehighperformancecomputingblog/centralized-cluster-performance-metrics-with-reframe-hpc-and-azure-log-analytics/4488077" target="_blank" rel="noopener noreferrer"&gt;Centralized cluster performance metrics with ReFrame HPC and Azure Log Analytics&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurehighperformancecomputingblog" target="_blank" rel="noopener noreferrer"&gt;Azure High Performance Computing (HPC)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/jimpaine/335139" target="_blank" rel="noopener noreferrer"&gt;jimpaine&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/06/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article outlines how to integrate ReFrame HPC, a flexible high-performance computing testing framework, with Azure Log Analytics for centralized performance monitoring across diverse clusters and environments. It details deploying necessary Azure resources, configuring ReFrame for HTTP logging, and running performance tests with results sent to Log Analytics. This integration enables unified, standardized metrics collection, cross-cluster comparisons, trend analysis, and improved system visibility—supporting migration, development, and operational assurance in heterogeneous HPC environments.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurehighperformancecomputingblog/azure-recognized-as-an-nvidia-cloud-exemplar-setting-the-bar-for-ai-performance-/4495747" target="_blank" rel="noopener noreferrer"&gt;Azure Recognized as an NVIDIA Cloud Exemplar, Setting the Bar for AI Performance in the Cloud&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurehighperformancecomputingblog" target="_blank" rel="noopener noreferrer"&gt;Azure High Performance Computing (HPC)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/fernando_aznar/2446399" target="_blank" rel="noopener noreferrer"&gt;Fernando_Aznar&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/18/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft Azure has been recognized as the first NVIDIA Exemplar Cloud for its world-class, end-to-end AI workload performance, now validated for both H100 and next-generation GB300 (Blackwell) systems. This designation reflects Azure’s optimized full-stack infrastructure—including compute, networking, and software integration—delivering predictable, efficient, and scalable AI training at production scale. Customers benefit from faster time-to-train, improved ROI, and confidence in Azure’s readiness for advanced AI workloads, ensuring consistent high performance from proof-of-concept to deployment without sacrificing cloud flexibility or manageability.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearchitectureblog/reference-architecture-for-highly-available-multi-region-azure-kubernetes-servic/4490479" target="_blank" rel="noopener noreferrer"&gt;Reference Architecture for Highly Available Multi-Region Azure Kubernetes Service (AKS)&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurearchitectureblog" target="_blank" rel="noopener noreferrer"&gt;Azure Architecture&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/rgarofalo/3339583" target="_blank" rel="noopener noreferrer"&gt;rgarofalo&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/03/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article presents a reference architecture for highly available, multi-region Azure Kubernetes Service (AKS) deployments. It compares active/active, active/passive, and deployment stamp models, detailing their trade-offs in availability, complexity, and cost. Key components include Azure Front Door for global traffic routing, geo-replicated data services, centralized monitoring, and consistent security controls. The architecture emphasizes resilience through fault isolation, automated recovery, and regular testing. It offers practical guidance for cloud architects to design AKS platforms that withstand regional outages, ensuring business continuity and scalable operations across Azure regions.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearchitectureblog/reactive-incident-response-with-azure-sre-agent-from-alert-to-resolution-in-minu/4492938" target="_blank" rel="noopener noreferrer"&gt;Reactive Incident Response with Azure SRE Agent: From Alert to Resolution in Minutes&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurearchitectureblog" target="_blank" rel="noopener noreferrer"&gt;Azure Architecture&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/sabyasachi-samaddar/1126636" target="_blank" rel="noopener noreferrer"&gt;Sabyasachi-Samaddar&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/18/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; **Summary:** The article details how Azure SRE Agent revolutionizes incident response by automating investigation and triage as soon as an alert fires, reducing resolution times from hours to minutes. Through two real-world scenarios—a SQL connectivity outage and a VM CPU spike—the agent autonomously diagnosed issues, proposed remediations, and required minimal human intervention. Custom Incident Response Plans and instructions enable context-aware, consistent, and rapid resolutions, with automated post-incident documentation. Key benefits include faster MTTR, reduced manual toil, and improved knowledge capture, though some technical challenges remain. Azure SRE Agent is currently in preview.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/askds/cross-forest-enrollment-%E2%80%93-pkisync-ps1/4463954" target="_blank" rel="noopener noreferrer"&gt;Cross Forest Enrollment – PKISync.PS1&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/windows-server/blog/askds" target="_blank" rel="noopener noreferrer"&gt;Ask the Directory Services Team&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/manuel_alvarez_v/1972690" target="_blank" rel="noopener noreferrer"&gt;Manuel_Alvarez_V&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/19/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article explains how to use the PKISync.ps1 PowerShell script for cross-forest certificate enrollment in Active Directory environments. PKISync synchronizes PKI-related objects, such as certificate templates and CA configurations, from a source forest to a target forest, enabling certificate requests across forests. It details the setup requirements, including two-way forest trusts, LDAP referral configuration, and certificate publishing. Although PKISync is considered legacy, automating its use can facilitate simple cross-forest enrollment, but CEP/CES is recommended for modern, secure deployments. The article concludes with best practices and automation tips for PKISync.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/askds/what%E2%80%99s-new-in-windows-group-policy-preferences-debug-logging/4497060" target="_blank" rel="noopener noreferrer"&gt;What’s New in Windows Group Policy Preferences Debug Logging&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/windows-server/blog/askds" target="_blank" rel="noopener noreferrer"&gt;Ask the Directory Services Team&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/tagoren/1668477" target="_blank" rel="noopener noreferrer"&gt;TagoreN&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/27/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article outlines a new feature in Windows 11 24H2 and 25H2 (from February 2026 preview updates) that allows administrators to enable Group Policy Preferences (GPP) debug logging directly through Local Group Policy, not just domain-based GPOs. This simplifies troubleshooting by allowing detailed logging on client devices without domain reliance. The article explains how to configure logging, manage trace file locations, and set necessary permissions. Overall, this update enhances flexibility and efficiency for IT professionals managing and debugging GPP issues on Windows client devices.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurestorageblog/public-preview-restrict-usage-of-user-delegation-sas-to-an-entra-id-identity/4497196" target="_blank" rel="noopener noreferrer"&gt;Public Preview: Restrict usage of user delegation SAS to an Entra ID identity&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurestorageblog" target="_blank" rel="noopener noreferrer"&gt;Azure Storage&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/ellievail/3335667" target="_blank" rel="noopener noreferrer"&gt;ellievail&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/26/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft has announced the public preview of user-bound user delegation SAS for Azure Storage, enhancing security by restricting SAS token usage to a specific Microsoft Entra ID identity. This feature extends user delegation SAS, requiring the end user to authenticate with Entra ID to access storage resources. It supports cross-tenant scenarios and incurs no additional cost beyond standard storage transactions. User-bound SAS is available via REST APIs, SDKs, PowerShell, and CLI for all GPv2 storage accounts in public regions, with detailed steps provided for setup and role assignment.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurestorageblog/azure-migrate-now-supporting-premium-ssd-v2-ultra-and-zrs-disks-as-targets/4495332" target="_blank" rel="noopener noreferrer"&gt;Azure Migrate: Now Supporting Premium SSD V2, Ultra and ZRS Disks as Targets&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurestorageblog" target="_blank" rel="noopener noreferrer"&gt;Azure Storage&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/lakshya_jalan/3335140" target="_blank" rel="noopener noreferrer"&gt;Lakshya_Jalan&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/18/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Migrate now supports Premium SSD v2, Ultra Disk, and ZRS Disks as migration targets, with Premium SSD v2 and ZRS generally available and Ultra Disk in public preview. This update enhances assessment and migration by enabling tailored recommendations based on workload performance needs, offering greater flexibility, performance, and resiliency. Users can now migrate demanding, mission-critical workloads to Azure using these advanced disk options, benefiting from features like zonal redundancy and customizable performance. The enhancements streamline migrations and ensure optimal resource alignment, supporting petabytes of data already migrated during the preview phase.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurecompute/public-preview-automatic-zone-balance-for-virtual-machine-scale-sets/4494476" target="_blank" rel="noopener noreferrer"&gt;Public Preview: Automatic zone balance for Virtual Machine Scale Sets&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurecompute" target="_blank" rel="noopener noreferrer"&gt;Azure Compute&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/hilarywang/1637159" target="_blank" rel="noopener noreferrer"&gt;HilaryWang&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/17/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure has introduced the public preview of automatic zone balance for Virtual Machine Scale Sets, which automatically monitors and redistributes VM instances across availability zones to maintain optimal resiliency. This feature addresses imbalances that can occur over time, minimizing the impact of zone failures without manual intervention. The system uses health checks, respects instance protection policies, and ensures workload capacity during rebalancing. Automatic instance repair is also enabled by default. Users can join the preview by enabling the feature and meeting specific prerequisites. This capability reduces operational overhead while enhancing workload reliability and zone-level resilience.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurecompute/azure-automated-virtual-machine-recovery-minimizing-downtime/4483166" target="_blank" rel="noopener noreferrer"&gt;Azure Automated Virtual Machine Recovery: Minimizing Downtime&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurecompute" target="_blank" rel="noopener noreferrer"&gt;Azure Compute&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/jon_andoni_baranda/3305512" target="_blank" rel="noopener noreferrer"&gt;Jon_Andoni_Baranda&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/04/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Automated Virtual Machine Recovery is a built-in Azure feature that minimizes VM downtime through fast, intelligent, and automated recovery processes. Without requiring customer setup, it continuously monitors VM health, rapidly detects failures, diagnoses issues, and applies the optimal recovery action, all without customer intervention. Leveraging detailed recovery event annotations, it provides deep visibility into incident timelines and helps optimize recovery strategies. Over the past 18 months, this system has halved average VM downtime, strengthening business continuity, reducing financial impact, and reinforcing customer trust in Azure’s reliable cloud platform.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/intunecustomersuccess/support-tip-resolve-device-noncompliance-with-mobile-threat-defense-partner-apps/4491669" target="_blank" rel="noopener noreferrer"&gt;Support tip: Resolve device noncompliance with Mobile Threat Defense partner apps&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/microsoftintune/blog/intunecustomersuccess" target="_blank" rel="noopener noreferrer"&gt;Intune Customer Success&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/intune_support_team/226779" target="_blank" rel="noopener noreferrer"&gt;Intune_Support_Team&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/02/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; This article provides guidance for resolving device noncompliance issues when using Mobile Threat Defense (MTD) partner apps, like Microsoft Defender for Endpoint, with Microsoft Intune. It outlines troubleshooting steps for users to restore compliance—installing, activating, refreshing, or reinstalling the MTD app—and checking compliance status. It also details simplified remediation workflows for iOS/iPadOS and methods for resetting the MTD connection on Android if sign-out is blocked, helping users regain access to work or school resources and reducing support overhead.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/intunecustomersuccess/how-to-enable-https-support-for-microsoft-connected-cache-for-enterprise-and-edu/4496173" target="_blank" rel="noopener noreferrer"&gt;How to enable HTTPS support for Microsoft Connected Cache for Enterprise and Education&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/microsoftintune/blog/intunecustomersuccess" target="_blank" rel="noopener noreferrer"&gt;Intune Customer Success&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/intune_support_team/226779" target="_blank" rel="noopener noreferrer"&gt;Intune_Support_Team&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/20/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Starting June 16, 2026, Intune will require HTTPS for Microsoft Connected Cache when delivering Win32 apps. To maintain caching benefits and reduce bandwidth, administrators must configure HTTPS on Connected Cache nodes using a CA-signed TLS certificate. The guide details generating a CSR on the node, signing and importing the certificate, and validating HTTPS on both Windows and Linux hosts. It also covers troubleshooting, maintenance, and renewal. Without HTTPS, devices will revert to using the CDN for Intune app downloads. Other content types remain unaffected. Early configuration ensures seamless transition and continued performance benefits.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/fasttrackblog/the-copilot-resource-guide-to-share-with-your-employees/4495989" target="_blank" rel="noopener noreferrer"&gt;The Copilot resource guide to share with your employees&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/fasttrack/blog/fasttrackblog" target="_blank" rel="noopener noreferrer"&gt;FastTrack&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/juliehersum/2538158" target="_blank" rel="noopener noreferrer"&gt;JulieHersum&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/19/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article introduces the "Essential Copilot resource hubs for employees," a centralized guide designed to streamline Microsoft Copilot onboarding and support. It helps adoption leaders structure learning paths, IT admins share resources efficiently, and all employees access consistent guidance. The guide consolidates key Microsoft Copilot resources, making it easier for organizations to accelerate adoption and customize internal policies. Additional support is available through FastTrack and the Microsoft 365 Accelerator site, offering expert guidance, templates, and personalized assistance to boost Copilot deployment and change management efforts.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/fasttrackblog/copilot-adoption-move-your-org-from-pilot-to-production-with-this-guide/4495997" target="_blank" rel="noopener noreferrer"&gt;Copilot adoption: Move your org from pilot to production with this guide&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/fasttrack/blog/fasttrackblog" target="_blank" rel="noopener noreferrer"&gt;FastTrack&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/juliehersum/2538158" target="_blank" rel="noopener noreferrer"&gt;JulieHersum&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/19/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article introduces a comprehensive guide for IT admins and Copilot adoption leads to streamline the rollout of Microsoft 365 Copilot. Organized around the adoption lifecycle (plan, build, operate), the guide highlights eight essential resource hubs, practical rollout steps, and audience-specific resources to ensure effective, governed adoption. It also promotes Microsoft FastTrack, which offers expert support, self-service resources, and personalized assistance to accelerate and scale Copilot deployment at no extra cost.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurevirtualdesktopblog/azure-virtual-desktop-is-now-available-in-us-gov-texas-in-azure-government/4485723" target="_blank" rel="noopener noreferrer"&gt;Azure Virtual Desktop is now available in US Gov Texas in Azure Government&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurevirtualdesktopblog" target="_blank" rel="noopener noreferrer"&gt;Azure Virtual Desktop&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/ron_coleman/180890" target="_blank" rel="noopener noreferrer"&gt;Ron_Coleman&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/04/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Virtual Desktop is now available in the USGov Texas region of Azure Government, offering customers a new option for deploying secure and flexible virtual desktop environments. This expansion enables improved connection performance, reduced latency, and enhanced responsiveness by allowing host pool creation directly in the region. It supports mission needs, geographic distribution, and regulatory requirements, while maintaining Azure Government’s compliance and security standards. Customers can now leverage multiple regions for greater flexibility and performance in their virtual desktop deployments.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurevirtualdesktopblog/rdp-shortpath-udp-over-private-link-is-now-generally-available/4494644" target="_blank" rel="noopener noreferrer"&gt;RDP Shortpath (UDP) over Private Link is now generally available&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurevirtualdesktopblog" target="_blank" rel="noopener noreferrer"&gt;Azure Virtual Desktop&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/rinku_dalwani/1321337" target="_blank" rel="noopener noreferrer"&gt;Rinku_Dalwani&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/17/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Azure Virtual Desktop now supports UDP-based RDP Shortpath over Private Link, enabling direct, high-performance RDP connections between session hosts and clients using private IPs. This complements existing TCP connectivity, helping customers with strict private network boundaries. Administrators must explicitly enable UDP in Azure portal settings to use this feature. The opt-in model ensures secure and predictable transport, giving full control over UDP introduction. This enhancement is recommended for customers needing precise routing and policy enforcement in regulated environments, while standard AVD connectivity remains suitable for most deployments. Full configuration guidance is available in Azure documentation.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuremigrationblog/migrating-workloads-from-aws-to-azure-a-structured-approach-for-cloud-architects/4495227" target="_blank" rel="noopener noreferrer"&gt;Migrating Workloads from AWS to Azure: A Structured Approach for Cloud Architects&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azuremigrationblog" target="_blank" rel="noopener noreferrer"&gt;Azure Migration and Modernization&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/rhack/2854208" target="_blank" rel="noopener noreferrer"&gt;rhack&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/18/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article outlines a structured, five-phase approach for migrating workloads from AWS to Azure, emphasizing a like-for-like architecture to minimize risk and maintain operational stability. Key phases include planning, preparation, execution, evaluation, and decommissioning, each requiring thorough documentation, stakeholder alignment, testing, and validation. The recommended migration strategy is blue/green deployment for risk mitigation. The workload team should lead the migration, supported by external Azure experts. Success depends on careful planning, phased execution, and post-migration optimization, with organizational knowledge-sharing encouraged for future improvements.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuremigrationblog/modernizing-for-the-ai-era-accelerating-application-transformation-with-agentic-/4490596" target="_blank" rel="noopener noreferrer"&gt;Modernizing for the AI Era: Accelerating Application Transformation with Agentic Tools&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azuremigrationblog" target="_blank" rel="noopener noreferrer"&gt;Azure Migration and Modernization&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/marcob/2856803" target="_blank" rel="noopener noreferrer"&gt;MarcoB&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/12/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article highlights the urgent need for organizations to modernize legacy applications to thrive in the AI era. Legacy systems drain resources and hinder innovation, but new agentic tools—such as GitHub Copilot, Azure Migrate, and Azure Copilot—use AI to automate and accelerate application transformation. These tools reduce manual effort, boost accuracy and safety, and make modernization accessible, empowering teams to focus on innovation. The result is faster, safer, and more consistent modernization, enabling organizations to continuously evolve their applications for intelligent, cloud-optimized environments. Practical steps and resources are provided to guide organizations in getting started.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/networkingblog/secure-dns-with-doh-public-preview-for-windows-dns-server/4493935" target="_blank" rel="noopener noreferrer"&gt;Secure DNS with DoH: Public Preview for Windows DNS Server&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/windows-server/blog/networkingblog" target="_blank" rel="noopener noreferrer"&gt;Networking&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/jorgeca%C3%B1as/2838432" target="_blank" rel="noopener noreferrer"&gt;JorgeCañas&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/09/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft has launched a public preview of DNS over HTTPS (DoH) for Windows DNS Server, enabling encrypted and authenticated DNS queries within on-premises networks. This upgrade enhances security and privacy by preventing DNS traffic from being exposed or intercepted, aligning with Zero Trust principles and U.S. federal requirements. The DoH feature, included in the February 2026 update for Windows Server 2025, is disabled by default and currently intended for evaluation only. Existing DNS functionality remains unchanged, with new tools added for DoH management. Feedback is encouraged to improve the feature before general availability.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearcblog/announcing-public-preview-simplified-machine-provisioning-for-azure-local/4496811" target="_blank" rel="noopener noreferrer"&gt;Announcing Public Preview: Simplified Machine Provisioning for Azure Local&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azurearcblog" target="_blank" rel="noopener noreferrer"&gt;Azure Arc&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/pragyadwivedi/1475983" target="_blank" rel="noopener noreferrer"&gt;PragyaDwivedi&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/26/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Microsoft has announced the Public Preview of Simplified Machine Provisioning for Azure Local, streamlining edge infrastructure deployment. The new process centralizes configuration in Azure, requiring minimal on-site expertise—staff only need to rack, power on hardware, and insert a prepared USB. Secure provisioning uses industry standards like FIDO Device Onboarding and Azure Arc Site for consistent, automated deployments across multiple locations. IT teams manage and monitor provisioning remotely, reducing errors and speeding up setup. Once complete, machines are ready for cluster creation and workload deployment, significantly simplifying and scaling Azure Local deployments.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuretoolsblog/azure-cli-windows-msi-upgrade-issue-root-cause-mitigation-and-performance-improv/4491691" target="_blank" rel="noopener noreferrer"&gt;Azure CLI Windows MSI Upgrade Issue: Root Cause, Mitigation, and Performance Improvements&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure/blog/azuretoolsblog" target="_blank" rel="noopener noreferrer"&gt;Azure Tools&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/alex-wdy/1467559" target="_blank" rel="noopener noreferrer"&gt;Alex-wdy&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/03/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article discusses a critical issue affecting Azure CLI upgrades on Windows using the MSI installer, where users upgrading from version 2.76.0 (or earlier) to 2.77.0 (or later) encountered startup crashes due to missing Python extension files. The root cause was a versioning conflict during upgrade, leading to incomplete installations. The article details recovery steps, recommends upgrading to version 2.83.0, and highlights improvements to the MSI upgrade process, making installations faster and more reliable by simplifying file replacement logic and eliminating slow version checks. Users are encouraged to upgrade and report issues if encountered.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurenetworksecurityblog/navigating-the-2025-holiday-season-insights-into-azure%E2%80%99s-ddos-defense/4495741" target="_blank" rel="noopener noreferrer"&gt;Navigating the 2025 holiday season: Insights into Azure’s DDoS defense&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure-network-security/blog/azurenetworksecurityblog" target="_blank" rel="noopener noreferrer"&gt;Azure Network Security&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/jdasari/3369146" target="_blank" rel="noopener noreferrer"&gt;Jdasari&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/18/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; During the 2025 holiday season, Azure observed a rise in burst-style DDoS attacks, with high-intensity, short-lived surges targeting packet processing and connection-handling layers. Most attacks were automated and brief, but the cumulative impact was operationally draining, especially for latency-sensitive sectors like gaming. Botnet-driven attacks rapidly shifted targets, exploiting inconsistent defenses. Azure DDoS Protection mitigated over 174,000 attacks, underscoring the need for always-on, automated, and layered security. Organizations are urged to standardize protections, proactively monitor, and adopt Zero Trust and multi-layered defense strategies to ensure resilience against evolving threats in 2026.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;
&lt;DIV class="card"&gt;
&lt;H2&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurenetworksecurityblog/a-practical-guide-to-azure-ddos-protection-cost-optimization/4495199" target="_blank" rel="noopener noreferrer"&gt;A Practical Guide to Azure DDoS Protection Cost Optimization&lt;/A&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Team Blog:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/category/azure-network-security/blog/azurenetworksecurityblog" target="_blank" rel="noopener noreferrer"&gt;Azure Network Security&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Author:&lt;/STRONG&gt; &lt;A href="https://techcommunity.microsoft.com/users/saleembseeu/1203393" target="_blank" rel="noopener noreferrer"&gt;SaleemBseeu&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Published:&lt;/STRONG&gt; 02/18/2026&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; The article provides strategies for optimizing Azure DDoS Protection costs. It explains the differences between DDoS Network Protection (best for large-scale, centralized management) and DDoS IP Protection (for few, specific endpoints). Key recommendations include consolidating protection plans to reduce base costs, selectively applying protection based on workload exposure, preventing unnecessary spend via regular reviews, and using cost management tools and tagging for visibility. The guide emphasizes aligning protection with actual risk and criticality, and offers scripts and checklists to support ongoing cost-efficient DDoS defense.&lt;/P&gt;
&lt;IMG style="max-width: 10%; height: auto;" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHtQTFRFAAAA8lAi8lAi8lAi8lAif7oAf7oAf7oAf7oA8lAi8lAi8lAif7oAf7oAf7oA8lAi8lAif7oAf7oA8lAif7oAAaTvAaTvAaTvAaTv/7kB/7kB/7kB/7kBAaTvAaTvAaTv/7kB/7kB/7kBAaTvAaTv/7kB/7kBAaTv/7kBfMz9mwAAACl0Uk5TADt7ag4Oans7/90eHt3/wBoawAMDDh4aAwMaHg5q3cDA3Wp7//97OzspjeVtAAAAlElEQVR4nO3WqwqAQBSEYY+uWiyCBm/J4Pu/jRhMBi8IFsHLCoZ9gCkbRGby8OVfHHuTD1sCQBHtw89hLDdE1h4h6zxp0aJFixYtWrT+bXnA8mWL5QbWZSyFLG9NHmTd9hszhY05ZrAxB2NVsEWnPECf3lg1+F3HXAQKWB0tWrRo0aJFi9a/rUYjaymR5bb2G/OL1guM9e5M8yBd4gAAAABJRU5ErkJggg==" alt="Embedded Image" /&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 30 Mar 2026 18:45:30 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/check-this-out-cto-guide-march-2026/ba-p/4506999</guid>
      <dc:creator>TysonPaul</dc:creator>
      <dc:date>2026-03-30T18:45:30Z</dc:date>
    </item>
    <item>
      <title>Implementing Intune RBAC and Scope Tags for Zero Trust and Least Privilege</title>
      <link>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/implementing-intune-rbac-and-scope-tags-for-zero-trust-and-least/ba-p/4506889</link>
      <description>&lt;P&gt;If you’re rolling out Microsoft Intune at scale, the hardest part usually isn’t creating policies—it’s making sure the &lt;EM&gt;right&lt;/EM&gt; people can manage the &lt;EM&gt;right&lt;/EM&gt; things, without turning every admin account into a “keys to the kingdom” risk. In this guide, you’ll learn how to use Intune RBAC and Scope Tags to enforce least privilege, build clear management boundaries by region/agency/environment, and pair device compliance with Entra Conditional Access to strengthen a Zero Trust posture—plus a practical RACI approach so ownership stays clear as your environment grows.&lt;/P&gt;
&lt;H1&gt;TL;DR&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;Use Intune RBAC to align admin permissions to job responsibilities, reducing standing privilege and limiting who can change policies, apps, and security settings.&lt;/LI&gt;
&lt;LI&gt;Use Scope Tags to create visibility/management boundaries (region, agency, environment) so admins only see and manage what they own.&lt;/LI&gt;
&lt;LI&gt;Pair Intune compliance + Entra Conditional Access to enforce “access only from compliant devices / protected apps,” which supports a Zero Trust posture.&lt;/LI&gt;
&lt;LI&gt;Establish a RACI model so ownership is explicit across Endpoint, Identity, Security, Apps, AD, Help Desk, and Compliance teams.&lt;/LI&gt;
&lt;LI&gt;Track outcomes (compliance rates, blocked risky sign-ins, RBAC audit events, scope boundary effectiveness, GPO migration progress) and review on a regular cadence.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;Zero Trust and Least Privilege in Modern Endpoint Management&lt;/H1&gt;
&lt;P&gt;Zero Trust is an approach to security that treats every access attempt as untrusted until it is proven otherwise. Rather than relying on “inside the network = safe,” organizations evaluate each request using signals such as user identity, device health, location, and risk, and they re-check those signals over time. In an endpoint program, Microsoft Intune supports this model by establishing device compliance, applying app protection where appropriate, and working with Conditional Access so that access decisions can depend on verified user and device posture.&lt;/P&gt;
&lt;P&gt;A practical way to describe Zero Trust is through three recurring themes: (1) make access decisions using explicit verification (strong authentication plus context and risk signals), (2) minimize privilege by granting only the access needed and reducing standing admin rights where possible, and (3) design for compromise by limiting lateral movement and reducing the impact of any single breach. These concepts align with Microsoft’s published Zero Trust guidance.&lt;/P&gt;
&lt;P&gt;Role-Based Access Control (RBAC) in Intune allows organizations to delegate administrative permissions based on roles, responsibilities, and scope. For modern endpoint environments, RBAC ensures that only authorized personnel can manage devices, deploy configurations, or access sensitive data, which is a foundational control in a Zero Trust model where access is granted based on least privilege and verified identity.&lt;/P&gt;
&lt;P&gt;By combining Intune's RBAC capabilities with Scope Tags, organizations can create visibility boundaries that align with their organizational structure, whether by region, department, business unit, or function. This prevents over-allowing permissions by assigning only the rights needed for each role, supports Zero Trust by enforcing least privilege and role-based access, and improves operational security by limiting who can manage devices and policies.&lt;/P&gt;
&lt;H1&gt;Understanding Intune RBAC Roles and Permissions&lt;/H1&gt;
&lt;P&gt;Microsoft Intune provides nine built-in RBAC roles designed to address common administrative scenarios. Each role has predefined permissions that determine what actions users can perform within the Intune environment, helping organizations delegate administrative tasks while maintaining control over access to sensitive information. The built-in roles include &lt;STRONG&gt;Intune Administrator&lt;/STRONG&gt; with full access to all Intune features and settings (&lt;EM&gt;This role should not be used for every day management tasks and should be limited to only a few individuals who would be responsible for performing more elevated tasks in the Intune Portal&lt;/EM&gt;), &lt;STRONG&gt;Policy and Profile Manager&lt;/STRONG&gt; who manages device configuration profiles and compliance policies&lt;STRONG&gt;, Application Manager&lt;/STRONG&gt; who manages mobile and managed applications, &lt;STRONG&gt;Endpoint Security Manager&lt;/STRONG&gt; who manages security and compliance features, &lt;STRONG&gt;Help Desk Operator&lt;/STRONG&gt; who performs remote tasks on users and devices&lt;STRONG&gt;, Read-Only Operator&lt;/STRONG&gt; with view-only access, &lt;STRONG&gt;School Administrator&lt;/STRONG&gt; for Windows 10 devices in Intune for Education, &lt;STRONG&gt;Intune Role Administrator&lt;/STRONG&gt; who manages custom roles and assignments, and &lt;STRONG&gt;Cloud PC roles&lt;/STRONG&gt; for managing Cloud PC features and &lt;STRONG&gt;Windows Autopatch roles&lt;/STRONG&gt; for managing updates.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Built-in Role&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Primary Permissions&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Use Case&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Application Manager&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Manages mobile and managed applications, app configuration policies, and app protection policies&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Teams responsible for deploying and managing organizational apps across devices&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Policy and Profile Manager&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Manages device configuration profiles, compliance policies, and conditional access policies&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;IT administrators configuring device settings and ensuring compliance across the organization&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Endpoint Security Manager&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Manages security baselines, endpoint detection and response, and BitLocker policies&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Security teams focused on device protection and threat mitigation&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Help Desk Operator&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Performs remote tasks including device restart, password reset, and remote lock&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;First-line support staff assisting end users with device issues&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Read-Only Operator&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;View-only access to all Intune data and reports without modification rights&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Auditors and stakeholders needing visibility without administrative capabilities&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;col style="width: 33.33%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;Beyond built-in roles, Intune supports custom roles that allow administrators to define specific permissions for users or groups based on their responsibilities. Custom roles enable fine-grained access control by selecting granular permissions for each role, ensuring users have access only to the features and data they require. For example, a custom role could grant only the 'Rotate local administrator password' permission to a specific Helpdesk Managers group, demonstrating the principle of least privilege in action.&lt;/P&gt;
&lt;P&gt;Create Custom Roles&lt;/P&gt;
&lt;P&gt;Login to the Intune Admin Portal with the Intune Administrator Role and navigate to &lt;EM&gt;Tenant Administration&amp;gt; Roles &amp;gt; All Roles &amp;gt; Create&lt;/EM&gt; then select the type of role you want to create. I will select &lt;EM&gt;“Intune Role”&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Give your Custom Role a Name and a brief description.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Scroll through the list of permissions as they will all be set to no by default and select the permissions relevant to the responsibility of the custom role.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have already created your Scope Tag add it here, then review and select create&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once the role is created you can select the new role and create an assignment. Give it a name and description, then select the admin group to be assigned to the role.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Add the groups that the role will be managing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Add your relevant Scope Tags then select create.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To take things one step further I would recommend leveraging Privileged Identity Management (PIM) for groups so that you can leverage Just-in-Time Assignments for the Intune roles.&lt;/P&gt;
&lt;P&gt;One last note on custom roles if you do not want to start from scratch with the permission sets, you can also duplicate a built-in role and modify the permissions as needed. Just select the 3 dots to the right of the role and select Duplicate&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Implementing Scope Tags for Distributed IT Management&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Scope Tags are labels that help control what different admins can see and manage in Microsoft Intune. By adding scope tags to Intune items like configuration profiles, apps, policies, or device groups and assigning the same labels to admins, organizations create clear boundaries, so each admin only sees the devices and settings they are responsible for. This capability is essential for distributed IT environments where different teams manage different locations, departments, or business units.&lt;/P&gt;
&lt;P&gt;Every Intune tenant includes a default scope tag that is automatically applied to all objects and admins, ensuring everything continues working smoothly even without custom tags configured. The key benefits of using scope tags include enabling distributed IT management by allowing regional or departmental admins to manage their specific resources, controlling access by limiting admin visibility to specific resources, enhancing security by preventing unauthorized access, improving organization by grouping resources by scope, and providing flexibility to support multiple administrative models.&lt;/P&gt;
&lt;P&gt;Scope tags work together with RBAC role assignments through three components: the role defining what actions admins can perform, scope tags determining which objects admins can see, and scope groups limiting which users and devices they can affect. Common use cases for scope tags include managed service providers limiting access to specific customer resources, regional IT administrators ensuring teams only manage and see objects relevant to their region, separating testing versus production environments when a dedicated test tenant is not available, and separating Azure Virtual Desktop resources for AVD administrators.&lt;/P&gt;
&lt;P&gt;Creating Scope Tags&lt;/P&gt;
&lt;P&gt;While still under Tenant Administration&amp;gt; Roles select Scope Tags Then Create.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Give it a name and description.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Assign the proper groups then select create.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If this is all implemented properly, the admin will only be able to see items and devices that have the Scope tag that has been assigned to their role. Here are views of the apps in my tenant when signed in as a Intune Administrator (which Scope tags do not apply t&lt;/P&gt;
&lt;img /&gt;&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And here are the same views when logged in with an admin with the iOS admin role that we created.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Establishing a RACI Model for Intune Management&lt;/H1&gt;
&lt;P&gt;While establishing a RACI model is not something done in the Intune portal, it is crucial in my opinion for enterprise customers since Intune covers such a vast number of capabilities that should not all be done by one team if we are practicing least privilege and zero trust.&lt;/P&gt;
&lt;P&gt;A RACI matrix is a powerful tool for defining organizational roles and responsibilities, identifying who is Responsible, Accountable, Consulted, and Informed for each activity. In Microsoft Intune management, implementing a RACI model eliminates ambiguity about which teams handle security policies, application management, patch compliance, Conditional Access, and GPO migration.&lt;/P&gt;
&lt;P&gt;The RACI framework defines four key roles: Responsible individuals execute the task or deliverable, Accountable is the single person ultimately answerable for correct completion and decision-making authority, Consulted are experts or stakeholders whose feedback is sought during the task, and Informed are those kept up to date on progress or decisions without actively contributing.&lt;/P&gt;
&lt;P&gt;For Intune environments, a well-designed RACI matrix promotes organizational alignment by mapping all key stakeholders across central IT and individual agencies or departments, clarifies decision rights by defining who approves, who executes, and who provides input for each Intune activity, ensures accountability by assigning a single accountable party for each deliverable to prevent diffusion of responsibility, and improves communication by identifying upfront who needs to be consulted and kept informed.&lt;/P&gt;
&lt;P&gt;Based on internal implementation experience and with Microsoft Federal customers, organizations should list deliverables not just activities, define roles not individual names to ensure the matrix remains relevant as people change positions, enforce exactly one Accountable person per task, assign Responsible, Consulted, and Informed roles thoughtfully, validate in a short review session, publish where work happens, and evolve the matrix as the project evolves.&lt;/P&gt;
&lt;H1&gt;RACI Matrix for Security Policies and Compliance&lt;/H1&gt;
&lt;P&gt;The following are just &lt;STRONG&gt;&lt;EM&gt;generic examples&lt;/EM&gt;&lt;/STRONG&gt; of some of the workloads and how they could be managed with a RACI matrix.&lt;/P&gt;
&lt;P&gt;Security policies and compliance management in Intune require clear ownership across multiple teams. Organizations must define who creates compliance policies requiring device encryption and minimum OS versions, who deploy security baselines like the Microsoft Defender for Endpoint Security Baseline, who manages Conditional Access policies that require device compliance, and who responds to non-compliant devices. A typical RACI model for security policies assigns the Cloud Security Team as Accountable for overall security policy strategy and compliance requirements, the Endpoint Team as Responsible for creating and deploying compliance policies and security baselines in Intune, the Application Team as Consulted for application-specific security requirements, the Help Desk as Informed about policy changes that may affect device compliance status, and the Compliance Team as Consulted to ensure policies meet regulatory requirements and as Informed about compliance status reports.&lt;/P&gt;
&lt;P&gt;For patch management and application compliance, the RACI model shifts slightly with the Endpoint Team becoming Accountable for patch deployment strategy and timing, the Application Team becoming Responsible for testing application compatibility with updates, the Help Desk becoming Responsible for addressing user-reported issues after patches, and the Cloud Security Team becoming Consulted for security update prioritization. Organizations implementing Windows Autopatch benefit from Microsoft managing problematic quality and feature update deployment cancellations using telemetry, automatically splitting devices into rings based on percentage of total devices, and managing patching behavior for Windows, Microsoft 365 Apps, Edge, Teams, and Drivers. This shifts some Accountable and Responsible designations to Microsoft while keeping internal teams Informed and Consulted.&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Intune Activity&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Accountable&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Responsible&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Consulted&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Informed&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Security Policy Creation&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Cloud Security Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Endpoint Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Application Team, Compliance Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Help Desk&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Compliance Policy Deployment&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Cloud Security Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Endpoint Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Compliance Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Help Desk, Application Team&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Security Baseline Management&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Cloud Security Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Endpoint Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Application Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Help Desk, Compliance Team&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Patch Management Strategy&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Endpoint Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Application Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Cloud Security Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Help Desk, Compliance Team&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Non-Compliance Response&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Cloud Security Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Endpoint Team, Help Desk&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Compliance Team&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Application Team&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;col style="width: 20.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H1&gt;Application and Conditional Access Management Responsibilities&lt;/H1&gt;
&lt;P&gt;Application management and Conditional Access in Intune span multiple organizational functions requiring coordinated responsibility. For application lifecycle management, the Application Team is both Accountable and Responsible for deployment strategy, app protection policies, creating and testing app packages and configurations. The Endpoint Team is Consulted for deployment targeting and device compatibility, while the Help Desk is Informed about new applications and support procedures.&lt;/P&gt;
&lt;P&gt;For Conditional Access policy management, multiple teams coordinate their expertise. The Cloud Security Team is Accountable for overall Conditional Access strategy and Zero Trust implementation. The Endpoint Team is Responsible for ensuring device compliance status feeds correctly into Conditional Access decisions. The Identity Team is Responsible for configuring Conditional Access policies in Microsoft Entra ID. The Application Team is Consulted about application-specific access requirements, and the Help Desk is both Informed about access restrictions and Responsible for assisting users blocked by Conditional Access policies.&lt;/P&gt;
&lt;P&gt;Conditional Access integration with Intune creates a powerful Zero Trust security model where Intune evaluates device compliance based on compliance policies, compliance status is reported to Microsoft Entra ID, Conditional Access policies check device compliance status, and access is granted or blocked based on compliance status.&lt;/P&gt;
&lt;P&gt;For mobile application management, the Application Team is both Accountable and Responsible for app protection policies including data protection settings, access requirements like PIN and biometric authentication, and integration with Conditional Access. The Cloud Security Team is Consulted for security requirements, and the Endpoint Team is Informed about app-level controls that complement device-level policies.&lt;/P&gt;
&lt;H1&gt;GPO Migration to Intune: Roles and Responsibilities&lt;/H1&gt;
&lt;P&gt;Migrating Group Policy Objects from on-premises Active Directory to Microsoft Intune represents a critical transformation requiring clear ownership and phased execution. The migration process uses Group Policy Analytics, a built-in tool in Intune that analyzes on-premises GPOs by importing them as XML exports and translating them against the Settings Catalog to determine which policies are supported, deprecated, or unsupported in Intune.&lt;/P&gt;
&lt;P&gt;Organizations export GPOs from the Group Policy Management Console by right clicking the GPO, selecting Save Report, and saving as XML format. After importing to Intune via Devices &amp;gt; Group Policy Analytics, the tool generates a percentage-based report showing exactly how many settings have a direct 1:1 mapping to modern Intune settings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Group Policy Analytics tool categorizes settings into three distinct types: Supported settings that have a direct counterpart in Intune and can be migrated via Settings Catalog policies, Deprecated settings no longer applicable to modern Windows versions, and Not Supported settings that do not currently have a CSP mapping and often require alternative management methods like PowerShell scripts or Proactive Remediations. Approximately 45% of GPOs can be successfully migrated to Settings Catalog, 30% require alternative approaches via PowerShell remediations, and 25% can be deprecated and retired based on typical migration outcomes.&lt;/P&gt;
&lt;H2&gt;RACI Model for GPO Migration&lt;/H2&gt;
&lt;P&gt;For the RACI model, the Endpoint Team is Accountable for the overall GPO migration strategy and timeline, the Active Directory Team is Responsible for exporting GPOs and documenting current policy structures, the Application Team is Consulted to validate that application-specific GPOs migrate correctly and that applications continue functioning, the Cloud Security Team is Consulted to ensure migrated policies maintain security posture, and the Help Desk is Informed about changes to device configurations and becomes Responsible for user communication about policy transitions.&lt;/P&gt;
&lt;H1&gt;Integrating Conditional Access with Device Compliance&lt;/H1&gt;
&lt;P&gt;Conditional Access integration with Intune device compliance creates an additional layer of security by enforcing access controls based on device compliance status and app protection policies. This integration ensures that only compliant devices and protected apps can access organizational resources, forming a cornerstone of Zero Trust architecture.&lt;/P&gt;
&lt;H2&gt;Device-Based Conditional Access Implementation&lt;/H2&gt;
&lt;P&gt;Device-based Conditional Access uses device compliance status from Intune to control access to organizational resources through a four-step process:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Intune evaluates device compliance based on compliance policies&lt;/LI&gt;
&lt;LI&gt;Compliance status is reported to Microsoft Entra ID&lt;/LI&gt;
&lt;LI&gt;Conditional Access policies check device compliance status&lt;/LI&gt;
&lt;LI&gt;Access is granted or blocked based on compliance status&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;To implement device compliance Conditional Access, organizations first create and assign device compliance policies in Intune requiring elements like BitLocker encryption, Microsoft Defender antivirus enabled, Windows Firewall enabled, and minimum OS version requirements. Then in the Microsoft Entra Admin Center under Security &amp;gt; Conditional Access, administrators create policies specifying:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Users&lt;/STRONG&gt; as target groups like Corporate Users&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cloud apps&lt;/STRONG&gt; as All cloud apps or selected Microsoft 365 apps&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Device platform&lt;/STRONG&gt; as Windows or other platforms&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Access control&lt;/STRONG&gt; requiring device to be marked as compliant&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;Measuring Success and Continuous Improvement&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Organizations implementing Intune RBAC and Scope Tags should establish metrics to measure success and identify areas for continuous improvement. Key performance indicators include percentage of devices compliant with security policies, time to resolve non-compliance issues, number of unauthorized access attempts blocked by Conditional Access, percentage of GPOs successfully migrated to Intune Settings Catalog, and administrative efficiency measured by reduction in time spent on routine management tasks.&lt;/P&gt;
&lt;P&gt;Compliance reporting in Intune provides visibility into device compliance status across the organization, with reports showing compliant versus non-compliant devices, specific compliance policy violations, and trends over time. Organizations typically see compliance rates improve from a 65% baseline to 95% or higher within 12 months of implementing proper RBAC roles and Scope Tags. This improvement results from clearer ownership, faster policy deployment, and more focused administrative oversight.&lt;/P&gt;
&lt;P&gt;Conditional Access sign-in logs in Microsoft Entra ID reveal which access attempts are granted or blocked, the reasons for access decisions, and patterns of risky sign-ins that may indicate compromised credentials or devices. For RBAC effectiveness, organizations should monitor audit logs to track which administrators are performing which actions, identify any privilege escalation attempts or suspicious administrative activity, and ensure separation of duties is maintained.&lt;/P&gt;
&lt;P&gt;Scope tag effectiveness can be measured by confirming that administrators only see resources within their designated scope, tracking incidents where admins requested access outside their scope, and validating that regional or departmental segregation is working as intended. Organizations should establish a regular review cadence with monthly compliance and security posture reviews, quarterly RBAC and Scope Tag access reviews, bi-annual GPO migration progress assessments, and annual Zero Trust maturity assessments.&lt;/P&gt;
&lt;H2 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Disclaimer&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;All screenshots are from a non-production lab environment and can/will vary per environment. All processes and directions are of my own opinion and not of Microsoft and are from my years of experience with the Intune product in multiple customer environments&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;References&lt;/H2&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/intune/intune-service/fundamentals/role-based-access-control" target="_blank" rel="noopener"&gt;Role-based access control (RBAC) with Microsoft Intune - Microsoft Intune | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/intune/intune-service/fundamentals/scope-tags" target="_blank" rel="noopener"&gt;Use role-based access control (RBAC) and scope tags for distributed IT - Microsoft Intune | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/organize/raci-alignment" target="_blank" rel="noopener"&gt;Aligning responsibilities across teams - Cloud Adoption Framework | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-all-users-device-compliance" target="_blank" rel="noopener"&gt;How to Require Device Compliance with Conditional Access - Microsoft Entra ID | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://techcommunity.microsoft.com/blog/intunecustomersuccess/configuring-microsoft-intune-just-in-time-admin-access-with-azure-ad-pim-for-gro/3843972" target="_blank" rel="noopener"&gt;Configuring Microsoft Intune just-in-time admin access with Azure AD PIM for Groups | Microsoft Community Hub&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Mar 2026 12:48:45 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/implementing-intune-rbac-and-scope-tags-for-zero-trust-and-least/ba-p/4506889</guid>
      <dc:creator>ChrisVetter</dc:creator>
      <dc:date>2026-03-30T12:48:45Z</dc:date>
    </item>
  </channel>
</rss>

