<?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>rss.livelink.threads-in-node</title>
    <link>https://techcommunity.microsoft.com/t5/</link>
    <description>Microsoft Community Hub</description>
    <pubDate>Mon, 18 May 2026 17:31:04 GMT</pubDate>
    <dc:creator>Community</dc:creator>
    <dc:date>2026-05-18T17:31:04Z</dc:date>
    <item>
      <title>Partner Blog | Time to market wins: Building the Frontier partner practice</title>
      <link>https://techcommunity.microsoft.com/t5/partner-news/partner-blog-time-to-market-wins-building-the-frontier-partner/ba-p/4520268</link>
      <description>&lt;P&gt;Customers are clear about what they want from AI now. They want to move from ideas to outcomes faster, and at enterprise scale. The experimentation phase is giving way to production expectations, and time&amp;nbsp;to&amp;nbsp;market is becoming a competitive advantage in how organizations transform.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That shift creates&amp;nbsp;opportunity&amp;nbsp;for&amp;nbsp;AI&amp;nbsp;practice&amp;nbsp;leaders&amp;nbsp;in services partner organizations.&amp;nbsp;Partners who can repeatedly take agentic solutions from concept to&amp;nbsp;production, while addressing&amp;nbsp;governance and security&amp;nbsp;considerations,&amp;nbsp;can&amp;nbsp;earn&amp;nbsp;a bigger role in customers’ most critical transformation work.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Earlier this spring,&amp;nbsp;&lt;A href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fblogs.microsoft.com%2Fblog%2F2026%2F04%2F21%2Faccelerating-frontier-transformation-with-microsoft-partners%2F&amp;amp;data=05%7C02%7Cv-armourjill%40microsoft.com%7C21d96554aafd4e4f98ed08deb2a60e1d%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639144623486908858%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&amp;amp;sdata=YlNKrcqBup%2BCApSf%2BAJnynMkuwZgneINljETG1OoXsE%3D&amp;amp;reserved=0" target="_blank"&gt;Nicole Dezen&amp;nbsp;shared the direction for our partner ecosystem&lt;/A&gt;, including our framework for Frontier Transformation and updates to the Microsoft AI Cloud Partner Program, such as the Frontier Partner&amp;nbsp;specialization. This blog is the&amp;nbsp;follow-up,&amp;nbsp;with&amp;nbsp;clear guidance on how to&amp;nbsp;build the partner business behind Frontier Transformation&amp;nbsp;and how&amp;nbsp;to&amp;nbsp;position&amp;nbsp;your&amp;nbsp;practice&amp;nbsp;to win on time&amp;nbsp;to&amp;nbsp;market.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Move confidently from pilots to production&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;AI has moved from experimentation to real-world impact. Customers are transforming business processes, products, and employee experiences with AI, and they expect solutions that operate reliably in the real world. That means production-grade delivery, governance, and the ability to scale.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://aka.ms/partnerblog-frontierMay2026" target="_blank"&gt;continue reading here&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 17:30:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/partner-news/partner-blog-time-to-market-wins-building-the-frontier-partner/ba-p/4520268</guid>
      <dc:creator>JillArmourMicrosoft</dc:creator>
      <dc:date>2026-05-18T17:30:00Z</dc:date>
    </item>
    <item>
      <title>Launched: Microsoft 365 Adoption Hub Redesign</title>
      <link>https://techcommunity.microsoft.com/t5/driving-adoption-blog/launched-microsoft-365-adoption-hub-redesign/ba-p/4520850</link>
      <description>&lt;P&gt;Driving successful adoption of Microsoft 365 Copilot is both art and science.&amp;nbsp; This community is dedicated to taking your feedback and continuing to provide tools that support you in that role.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Today we've done just that with the first release of our updated Microsoft 365 Copilot adoption hub that simplifies the experience and provides content for AI business users, AI Champions and AI Leaders. &lt;A class="lia-external-url" href="https://adoption.microsoft.com/copilot/" target="_blank" rel="noopener"&gt;Explore the content&lt;/A&gt; and let us know your thoughts.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This builds on our original hub and also our Essentials of Copilot Adoption experience that was previously launched.&amp;nbsp; We will continue to enhance this hub with content for Copilot Cowork and agent building tools over the coming weeks.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Advanced content like our Copilot Success Kit remains as well as technical guidance for IT Professionals in the advanced guidance section.&amp;nbsp; We also continue to provide information about upcoming events and connections to our communities.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Of special interest to AI Champion leaders will be our redesigned Prompt Gallery which will now open a selected prompt directly in the person's Microsoft 365 Copilot experience so they can directly get work done.&amp;nbsp; Filters by functional area, product and task are also included.&amp;nbsp;&lt;/P&gt;
&lt;img&gt;Prompt Gallery on Microsoft 365 Copilot adoption hub&lt;/img&gt;
&lt;P&gt;Check out our &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/microsoft365copilotblog/launched-microsoft-365-copilot-adoption-hub-redesign/4520841" target="_blank" rel="noopener" data-lia-auto-title="launch blog" data-lia-auto-title-active="0"&gt;launch blog&lt;/A&gt;, &lt;A class="lia-external-url" href="https://adoption.microsoft.com/copilot/" target="_blank" rel="noopener"&gt;visit the site &lt;/A&gt;and share with your colleagues. We will also review this in our June Microsoft 365 Champion call.&amp;nbsp; If you aren't signed up for our monthly calls where we review the roadmap, share tools and learning specific to adoption and share our content for you to reuse then &lt;A class="lia-external-url" href="https://adoption.microsoft.com/en-us/become-a-champion/" target="_blank" rel="noopener"&gt;visit this page&lt;/A&gt; to register today.&amp;nbsp; &lt;BR /&gt;&lt;BR /&gt;As always we value your feedback.&amp;nbsp; Let us know how we are doing at &lt;A class="lia-external-url" href="https://aka.ms/amc/feedback" target="_blank" rel="noopener"&gt;aka.ms/amc/feedback&lt;/A&gt;.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 17:11:51 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/driving-adoption-blog/launched-microsoft-365-adoption-hub-redesign/ba-p/4520850</guid>
      <dc:creator>Karuana_Gatimu_MSFT</dc:creator>
      <dc:date>2026-05-18T17:11:51Z</dc:date>
    </item>
    <item>
      <title>EVENT | Drive Frontier Transformation: Attend the engineer summit and work toward your badge</title>
      <link>https://techcommunity.microsoft.com/t5/partner-news/event-drive-frontier-transformation-attend-the-engineer-summit/ba-p/4520227</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Accelerate your&amp;nbsp;capabilities&amp;nbsp;delivering Frontier Transformation with two exciting opportunities: the Frontier&amp;nbsp;Transformation&amp;nbsp;Engineer&amp;nbsp;badge and the Frontier&amp;nbsp;Transformation&amp;nbsp;Engineer Summit.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/FrontierPartnerSkilling" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Frontier Transformation Engineer badge&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;validates your&amp;nbsp;expertise&amp;nbsp;in&amp;nbsp;building AI agents across&amp;nbsp;the&amp;nbsp;Frontier stack, which includes&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;Microsoft Foundry, Microsoft Copilot Studio,&amp;nbsp;Microsoft 365 Copilot, GitHub Copilot, Microsoft Fabric, and Agent 365&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;This applied skilling journey equips solution engineers and architects to design, build, and&amp;nbsp;operate&amp;nbsp;production-ready agentic AI solutions&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;—so you can lead customers&amp;nbsp;from AI experimentation to secure, real-world agentic&amp;nbsp;implementation.&amp;nbsp;Earn the badge through certifications,&amp;nbsp;project-ready execution, and advanced&amp;nbsp;training.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;As you work toward the badge, join us for the&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://skilling-hub.com/listing/o::fy26-fps-06" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Frontier&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Transformation&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Engineer Summit on June 9&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;, a live, expert-led skilling experience&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;designed to fast-track badge completion&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;. Gain insights on how to use Microsoft Agent Factory at scale, building individual&amp;nbsp;expertise,&amp;nbsp;showcasing&amp;nbsp;organizational readiness, and leading Frontier Transformation for your customers.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;These are exciting opportunities to drive Frontier Transformation—both for your organization and for customers who are looking to adopt agentic AI at scale. And as we get ready to enter FY27, the year of Frontier Transformation, we strongly encourage you&amp;nbsp;to join us at&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://aka.ms/FY27_MCAPSStartforPartners" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;MCAPS Start for Partners&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;on July 22.&amp;nbsp;You'll&amp;nbsp;get insights from Microsoft leaders on where&amp;nbsp;we’re&amp;nbsp;investing, our shared priorities, and how to activate AI-led opportunities to drive growth&amp;nbsp;this year.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 17:07:06 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/partner-news/event-drive-frontier-transformation-attend-the-engineer-summit/ba-p/4520227</guid>
      <dc:creator>JillArmourMicrosoft</dc:creator>
      <dc:date>2026-05-18T17:07:06Z</dc:date>
    </item>
    <item>
      <title>Say goodbye to planning bottlenecks with Microsoft Azure Migrate</title>
      <link>https://techcommunity.microsoft.com/t5/partner-news/say-goodbye-to-planning-bottlenecks-with-microsoft-azure-migrate/ba-p/4520240</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Every migration starts with&amp;nbsp;the same questions: what do we have, and where should it go?&amp;nbsp;Getting from&amp;nbsp;those&amp;nbsp;question&amp;nbsp;to a clear, execution-ready answer has historically taken weeks. From&amp;nbsp;exporting spreadsheets and manually classifying workloads to running assessments,&amp;nbsp;conducting&amp;nbsp;cost analyses,&amp;nbsp;and&amp;nbsp;stitching&amp;nbsp;everything&amp;nbsp;together into a deck that feels outdated by the time&amp;nbsp;it's&amp;nbsp;presented,&amp;nbsp;the&amp;nbsp;process slows&amp;nbsp;teams&amp;nbsp;and even limits&amp;nbsp;pipeline.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Azure Migrate collapses that entire process into a single workflow—reducing&amp;nbsp;migration planning from weeks to hours.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;How to get started with Azure Migrate&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Start&amp;nbsp;with Azure Migrate Collector&amp;nbsp;to&amp;nbsp;scan&amp;nbsp;a&amp;nbsp;customer's&amp;nbsp;entire IT estate offline, enrich the inventory with tags and application groupings, and generate a stakeholder-ready Microsoft PowerPoint presentation with migration and modernization recommendations.&amp;nbsp;The output&amp;nbsp;includes&amp;nbsp;lift-and-shift&amp;nbsp;options,&amp;nbsp;security posture&amp;nbsp;guidance,&amp;nbsp;and cost&amp;nbsp;insights&amp;nbsp;so you can move from assessment to customer conversation faster.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Follow these steps for a speedy migration planning process:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="54" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Set up Collector:&lt;/STRONG&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Download and configure the Azure Migrate Collector on a Windows Server in your datacenter.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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="54" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Choose your discovery method:&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Compare Collector, appliance, and import-based approaches for your scenario.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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="54" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Tag your workloads:&lt;/STRONG&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Follow tagging best practices for&amp;nbsp;accurate&amp;nbsp;recommendations.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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="54" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Organize applications:&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Define and manage applications from your discovered inventory.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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="54" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Generate your report:&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Build an Azure Migrate report and export to PowerPoint.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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="54" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="6" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Dive deeper:&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;View application assessments for application and workload-level migration plans.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&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;335559685&amp;quot;:720,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;From discovery to execution, this repeatable workshop-to-deck motion is built to empower partners to streamline their migration and modernization planning. Start exploring Azure Migrate and learn how to turn weeks of manual research and planning into more time for customer outreach and efficiency that expands your pipeline.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/migrate/migrate-services-overview?view=migrate?wt.mc_id=vfr69gbnxq " target="_blank"&gt;Start exploring Azure Migrate today&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 17:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/partner-news/say-goodbye-to-planning-bottlenecks-with-microsoft-azure-migrate/ba-p/4520240</guid>
      <dc:creator>JillArmourMicrosoft</dc:creator>
      <dc:date>2026-05-18T17:00:00Z</dc:date>
    </item>
    <item>
      <title>Launched:  Microsoft 365 Copilot Adoption Hub Redesign</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-copilot-blog/launched-microsoft-365-copilot-adoption-hub-redesign/ba-p/4520841</link>
      <description>&lt;P&gt;One of the biggest barriers to Copilot adoption is people don’t always know where to start.&lt;/P&gt;
&lt;P&gt;Today, we released the first version of our redesigned Microsoft 365 Copilot business user hub. &lt;A href="https://adoption.microsoft.com/copilot/" target="_blank" rel="noopener"&gt;Take a look.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;We set out to simplify adoption by making the experience more practical and focused on key roles: AI Business User, AI Champion and AI Leader.&lt;/P&gt;
&lt;img&gt;Microsoft 365 Copilot adoption hub&lt;/img&gt;
&lt;P&gt;What you’ll find:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Prompts you can apply immediately in your work.&lt;BR /&gt;• Real examples of how Copilot helps across tasks.&lt;BR /&gt;• Clear guidance based on your role.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;What's the same:&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Connection to what’s new, communities and event information.&lt;/LI&gt;
&lt;LI&gt;Advanced guidance for User Enablement and IT Professionals.&lt;/LI&gt;
&lt;LI&gt;Content from Microsoft Learn to advance your skilling through the AI Skills Navigator and learning paths for certification.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Your feedback was essential in crafting this evolution of how to learn and use AI experiences from Microsoft.&amp;nbsp; Keep sharing your insights via our feedback form at &lt;A class="lia-external-url" href="https://aka.ms/amc/feedback" target="_blank" rel="noopener"&gt;aka.ms/amc/feedback&lt;/A&gt;.&amp;nbsp; The entire team reads what you submit and innovates to support your needs.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That’s really the focus here; helping people get started and keep going to get work done.&lt;/P&gt;
&lt;P&gt;We’d love your input! What do you think, and what content would you like to see us build next?&lt;/P&gt;
&lt;P&gt;#Copilot #AIAdoption&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 16:45:25 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-copilot-blog/launched-microsoft-365-copilot-adoption-hub-redesign/ba-p/4520841</guid>
      <dc:creator>Karuana_Gatimu_MSFT</dc:creator>
      <dc:date>2026-05-18T16:45:25Z</dc:date>
    </item>
    <item>
      <title>Don’t Start Your Application Upgrade by Changing Code</title>
      <link>https://techcommunity.microsoft.com/t5/apps-on-azure-blog/don-t-start-your-application-upgrade-by-changing-code/ba-p/4520838</link>
      <description>&lt;P&gt;The first step of a .NET upgrade isn't code, it's assessment!&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;That sounds obvious, but it isn't. When somebody tells you to upgrade an app, the instinct is to open the repo, bump the &lt;EM&gt;TargetFramework&lt;/EM&gt;, update a few NuGet packages, and start chasing build errors, that feels like progress, but you're working without knowing what you signed up for.&amp;nbsp; As we wrote at our previous posts, the Copilot modernization agent runs in three steps: assess, plan, execute. At each step it writes a Markdown file you can read and edit before it moves forward, and this time we will deep dive to learn about the assessment step!&lt;/P&gt;
&lt;H3&gt;Look at the app before you touch it&lt;/H3&gt;
&lt;P&gt;Jeff Fritz recorded a &lt;A class="lia-external-url" href="https://www.youtube.com/watch?v=ig__LIPW9Kg" target="_blank" rel="noopener"&gt;walkthrough of the Copilot modernization agent&lt;/A&gt; assessing the eShop reference app, upgrading from&amp;nbsp;&lt;STRONG&gt;.NET 8 &lt;/STRONG&gt;to &lt;STRONG&gt;.NET 10&lt;/STRONG&gt;. The interesting part isn't that it upgrades the code. It's that it doesn't, not at first. The agent runs an assessment pass first, reading the solution, walks the dependency graph, and writes a Markdown report you can actually open and read. No commits, no `.csproj` edits. Just a file.&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;What's in that report? In the eShop run: 10 projects that all need to move. 24 NuGet packages requiring updates, 5 of them incompatible. 52 APIs with behavioral changes that'll need testing. And every project marked "low difficulty," which tells you this particular upgrade is an afternoon, not a sprint, Knowing which project is going to be the hard one before you start changes how you plan the whole upgrade. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;That's what the assessment actually produced on a real codebase, and you can see it generated in about minutes with the agent running in autopilot mode in VS Code.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3&gt;The order matters&lt;/H3&gt;
&lt;P&gt;The workflow the agent encourages is straightforward, first, assess the app as it is today, plan the upgrade based on what assessment found, lastly, implement the changes to modernize the app. The order is the whole point, if you jump straight to step three you discover the dependency conflicts and the missing test coverage live, while you're already mid-upgrade. By the time you find them, you're committed. You've already burned the easy rollback.&lt;/P&gt;
&lt;P&gt;The point to do the assessment is to move all of that to the front, when it's still cheap to change your mind. The Markdown report isn't meant to sit there untouched. You can open it, edit it, add notes, mark the projects you know are fragile, assign owners, flag the services that have a release freeze next month. Turn it into something your team will actually use to run the upgrade. Remember that Copilot doesn't know that the payments service is owned by a team that's mid-reorg, or that the reporting module is the one the CFO looks at on Monday mornings. That context still has to come from you.&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;When you move to the planning step, the plan builds on whatever you left in that assessment. If you added constraints or flagged a project as "don't touch until Q3," that's what Copilot works from. You're setting direction, not just reviewing output.&lt;/P&gt;
&lt;H3&gt;Watch it in action&lt;/H3&gt;
&lt;P&gt;If you want to see the full assessment flow running on eShop, Fritz's video walks through it start to finish in VS Code with autopilot mode enabled: &lt;A class="lia-external-url" href="https://www.youtube.com/watch?v=ig__LIPW9Kg" target="_blank" rel="noopener"&gt;Modernize .NET Apps with GitHub Copilot&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/developer/github-copilot-app-modernization/overview" target="_blank" rel="noopener"&gt;Test with just one app you've been putting off&lt;/A&gt;, run the assessment, and read the Markdown file it gives you, edit the parts that need editing, and hand it around to the two or three people who actually know that codebase. See what they push back on.&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 16:34:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/apps-on-azure-blog/don-t-start-your-application-upgrade-by-changing-code/ba-p/4520838</guid>
      <dc:creator>PabloLopes</dc:creator>
      <dc:date>2026-05-18T16:34:57Z</dc:date>
    </item>
    <item>
      <title>Easy Auth Configuration for Logic App Standard through CI/CD</title>
      <link>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/easy-auth-configuration-for-logic-app-standard-through-ci-cd/ba-p/4520539</link>
      <description>&lt;H3 id="problem-statement"&gt;Problem Statement&lt;/H3&gt;
&lt;P&gt;When Easy Auth (Azure App Service’s built-in authentication and authorization) is enabled on a Logic App Standard, users frequently report that they cannot open the run history. Specifically, the &lt;STRONG&gt;inputs and outputs of the trigger and actions fail to load&lt;/STRONG&gt; on the run details page, even though the workflow itself runs and the user has access to the resource.&lt;/P&gt;
&lt;H3 id="background-how-easy-auth-interacts-with-logic-apps"&gt;Background — How Easy Auth Interacts with Logic Apps&lt;/H3&gt;
&lt;P&gt;Easy Auth is a feature of Azure App Service. Every request that reaches a Logic App Standard is first routed through the &lt;STRONG&gt;App Service layer&lt;/STRONG&gt;, and only then handed off to the &lt;STRONG&gt;Logic App runtime&lt;/STRONG&gt; for further processing. When Easy Auth is enabled, App Service authenticates each incoming request and decides whether it should be allowed or blocked — &lt;EM&gt;before&lt;/EM&gt; the Logic App runtime ever sees it.&lt;/P&gt;
&lt;P&gt;This dual-layer model is what causes the run-history symptom:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The Logic App runtime authenticates run-history requests using a &lt;STRONG&gt;SAS token&lt;/STRONG&gt; specific to that run, generated from the Logic App access keys.&lt;/LI&gt;
&lt;LI&gt;The portal calls that load the inputs and outputs of historical runs &lt;STRONG&gt;do not carry a bearer token&lt;/STRONG&gt; — they carry the SAS.&lt;/LI&gt;
&lt;LI&gt;Because App Service only knows how to validate Easy Auth tokens (not SAS), it blocks these requests whenever &lt;CODE&gt;unauthenticatedClientAction&lt;/CODE&gt; is set to disallow unauthenticated traffic.&lt;/LI&gt;
&lt;LI&gt;The request never reaches the runtime, so the runtime cannot apply its SAS validation, and the inputs/outputs panel stays empty.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 id="solution"&gt;Solution&lt;/H3&gt;
&lt;P&gt;There are two ways to fix this, depending on what your security policy allows.&lt;/P&gt;
&lt;H4 id="option-1-allow-unauthenticated-requests"&gt;Option 1 — Allow unauthenticated requests&lt;/H4&gt;
&lt;P&gt;The simplest fix is to configure Easy Auth to &lt;STRONG&gt;allow unauthenticated requests&lt;/STRONG&gt;. This does &lt;EM&gt;not&lt;/EM&gt; mean anyone can invoke the workflow. Instead, &lt;STRONG&gt;all calls (failed and successful) are routed through to the Logic App runtime&lt;/STRONG&gt;, and the runtime decides how to handle them:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A workflow trigger call with no token → the runtime applies its own auth (SAS, AAD, etc.) and rejects unauthorized invocations.&lt;/LI&gt;
&lt;LI&gt;A run-history call carrying a valid SAS → App Service marks it as “failed Easy Auth” but still forwards it; the runtime sees the valid SAS and returns the data.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The underlying App Service platform has no knowledge of SAS or any other Logic-App-specific auth scheme, so letting the runtime arbitrate is what makes the run-history experience work.&lt;/P&gt;
&lt;H4 id="option-2-keep-easy-auth-strict-but-exclude-the-runtime-paths"&gt;Option 2 — Keep Easy Auth strict, but exclude the runtime paths&lt;/H4&gt;
&lt;P&gt;In many enterprises the security team will not permit “Allow unauthenticated requests.” For those cases, you can leave authentication required but add the runtime endpoints to the &lt;STRONG&gt;&lt;CODE&gt;excludedPaths&lt;/CODE&gt;&lt;/STRONG&gt; list, so App Service skips Easy Auth specifically for those calls. The Logic App runtime continues to authenticate them via SAS.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Important:&lt;/STRONG&gt; The Azure portal lets you toggle Easy Auth, but it does &lt;STRONG&gt;not&lt;/STRONG&gt; expose the &lt;CODE&gt;excludedPaths&lt;/CODE&gt; setting. You must configure it through ARM, Bicep, the REST API, or CLI — which is exactly why this needs to live in your CI/CD pipeline.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;There are two ways to apply this through CI/CD.&lt;/P&gt;
&lt;HR /&gt;
&lt;H5 id="approach-1-arm-template-microsoft.websitesconfig"&gt;Approach 1 — ARM Template (&lt;CODE&gt;Microsoft.Web/sites/config&lt;/CODE&gt;)&lt;/H5&gt;
&lt;P&gt;Add a &lt;CODE&gt;Microsoft.Web/sites/config&lt;/CODE&gt; resource of type &lt;CODE&gt;authsettingsV2&lt;/CODE&gt; to the same ARM template that deploys the Logic App. Below is the sample template:&lt;/P&gt;
&lt;DIV id="cb1" class="sourceCode"&gt;
&lt;PRE class="sourceCode json"&gt;&lt;CODE class="sourceCode json"&gt;&lt;SPAN id="cb1-1"&gt;&lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-2"&gt;  &lt;SPAN class="dt"&gt;"$schema"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-3"&gt;  &lt;SPAN class="dt"&gt;"contentVersion"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"1.0.0.0"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-4"&gt;  &lt;SPAN class="dt"&gt;"parameters"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-5"&gt;    &lt;SPAN class="dt"&gt;"logicAppName"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"type"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"string"&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-6"&gt;    &lt;SPAN class="dt"&gt;"location"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt;     &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"type"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"string"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"defaultValue"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"[resourceGroup().location]"&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-7"&gt;    &lt;SPAN class="dt"&gt;"tenantID"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt;     &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"type"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"string"&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-8"&gt;    &lt;SPAN class="dt"&gt;"ClientID"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt;     &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"type"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"string"&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-9"&gt;  &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-10"&gt;  &lt;SPAN class="dt"&gt;"variables"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-11"&gt;  &lt;SPAN class="dt"&gt;"resources"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="ot"&gt;[&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-12"&gt;    &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-13"&gt;      &lt;SPAN class="dt"&gt;"type"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"Microsoft.Web/sites"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-14"&gt;      &lt;SPAN class="dt"&gt;"apiVersion"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"2022-03-01"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-15"&gt;      &lt;SPAN class="dt"&gt;"name"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"[parameters('logicAppName')]"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-16"&gt;      &lt;SPAN class="dt"&gt;"location"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"[parameters('location')]"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-17"&gt;      &lt;SPAN class="dt"&gt;"kind"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"functionapp,workflowapp"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-18"&gt;      &lt;SPAN class="dt"&gt;"identity"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"type"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"SystemAssigned"&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-19"&gt;      &lt;SPAN class="dt"&gt;"properties"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-20"&gt;        &lt;SPAN class="dt"&gt;"serverFarmId"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"&amp;lt;App Service Plan ID&amp;gt;"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-21"&gt;        &lt;SPAN class="dt"&gt;"siteConfig"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-22"&gt;          &lt;SPAN class="dt"&gt;"appSettings"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="ot"&gt;[&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-23"&gt;            &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"name"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"FUNCTIONS_EXTENSION_VERSION"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"value"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"~4"&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;SPAN class="ot"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-24"&gt;            &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"name"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"FUNCTIONS_WORKER_RUNTIME"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;    &lt;SPAN class="dt"&gt;"value"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"dotnet"&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;SPAN class="ot"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-25"&gt;            &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"name"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"AzureWebJobsStorage"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;         &lt;SPAN class="dt"&gt;"value"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"&amp;lt;Storage Account Connection String&amp;gt;"&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;SPAN class="ot"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-26"&gt;            &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"name"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"APP_KIND"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;                    &lt;SPAN class="dt"&gt;"value"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"workflowApp"&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-27"&gt;          &lt;SPAN class="ot"&gt;]&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-28"&gt;        &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-29"&gt;        &lt;SPAN class="dt"&gt;"httpsOnly"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="kw"&gt;true&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-30"&gt;      &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-31"&gt;    &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;SPAN class="ot"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-32"&gt;    &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-33"&gt;      &lt;SPAN class="dt"&gt;"type"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"Microsoft.Web/sites/config"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-34"&gt;      &lt;SPAN class="dt"&gt;"apiVersion"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"2021-02-01"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-35"&gt;      &lt;SPAN class="dt"&gt;"name"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"[concat(parameters('logicAppName'), '/authsettingsV2')]"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-36"&gt;      &lt;SPAN class="dt"&gt;"location"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"[parameters('location')]"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-37"&gt;      &lt;SPAN class="dt"&gt;"properties"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-38"&gt;        &lt;SPAN class="dt"&gt;"platform"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-39"&gt;          &lt;SPAN class="dt"&gt;"enabled"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="kw"&gt;true&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-40"&gt;          &lt;SPAN class="dt"&gt;"runtimeVersion"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"~1"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-41"&gt;        &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-42"&gt;        &lt;SPAN class="dt"&gt;"globalValidation"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-43"&gt;          &lt;SPAN class="dt"&gt;"requireAuthentication"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="kw"&gt;true&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-44"&gt;          &lt;SPAN class="dt"&gt;"unauthenticatedClientAction"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"Return401"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-45"&gt;          &lt;SPAN class="dt"&gt;"excludedPaths"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="ot"&gt;[&lt;/SPAN&gt;&lt;SPAN class="st"&gt;"/runtime/*"&lt;/SPAN&gt;&lt;SPAN class="ot"&gt;]&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-46"&gt;        &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-47"&gt;        &lt;SPAN class="dt"&gt;"identityProviders"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-48"&gt;          &lt;SPAN class="dt"&gt;"azureActiveDirectory"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-49"&gt;            &lt;SPAN class="dt"&gt;"enabled"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="kw"&gt;true&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-50"&gt;            &lt;SPAN class="dt"&gt;"registration"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-51"&gt;              &lt;SPAN class="dt"&gt;"openIdIssuer"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"[concat('https://sts.windows.net/', parameters('tenantID'), '/v2.0')]"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-52"&gt;              &lt;SPAN class="dt"&gt;"clientId"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"parameters('ClientID')"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-53"&gt;              &lt;SPAN class="dt"&gt;"clientSecretSettingName"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="st"&gt;"OVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-54"&gt;            &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-55"&gt;            &lt;SPAN class="dt"&gt;"login"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt; &lt;SPAN class="dt"&gt;"disableWWWAuthenticate"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="kw"&gt;false&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-56"&gt;            &lt;SPAN class="dt"&gt;"validation"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-57"&gt;              &lt;SPAN class="dt"&gt;"jwtClaimChecks"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-58"&gt;              &lt;SPAN class="dt"&gt;"allowedAudiences"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="ot"&gt;[]&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-59"&gt;              &lt;SPAN class="dt"&gt;"defaultAuthorizationPolicy"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-60"&gt;                &lt;SPAN class="dt"&gt;"allowedPrincipals"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-61"&gt;                &lt;SPAN class="dt"&gt;"allowedApplications"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="ot"&gt;[&lt;/SPAN&gt;&lt;SPAN class="st"&gt;"&amp;lt;LIST OF ALLOWED APPLICATIONS ID&amp;gt;"&lt;/SPAN&gt;&lt;SPAN class="ot"&gt;]&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-62"&gt;              &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-63"&gt;            &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-64"&gt;          &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-65"&gt;        &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-66"&gt;      &lt;SPAN class="fu"&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-67"&gt;      &lt;SPAN class="dt"&gt;"dependsOn"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="ot"&gt;[&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-68"&gt;        &lt;SPAN class="st"&gt;"[resourceId('Microsoft.Web/sites', parameters('logicAppName'))]"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-69"&gt;      &lt;SPAN class="ot"&gt;]&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-70"&gt;    &lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-71"&gt;  &lt;SPAN class="ot"&gt;]&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-72"&gt;  &lt;SPAN class="dt"&gt;"outputs"&lt;/SPAN&gt;&lt;SPAN class="fu"&gt;:&lt;/SPAN&gt; &lt;SPAN class="fu"&gt;{}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN id="cb1-73"&gt;&lt;SPAN class="fu"&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Key things to notice in the template:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;CODE&gt;requireAuthentication: true&lt;/CODE&gt; and &lt;CODE&gt;unauthenticatedClientAction: Return401&lt;/CODE&gt; keep Easy Auth strict for the public surface.&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;excludedPaths: ["/runtime/*"]&lt;/CODE&gt; carves out the runtime endpoints so the SAS-authenticated run-history calls aren’t blocked.&lt;/LI&gt;
&lt;LI&gt;&lt;CODE&gt;allowedApplications&lt;/CODE&gt; lets you whitelist specific AAD app IDs that are allowed to call the workflow.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Reference:&lt;/STRONG&gt; &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/templates/microsoft.web/sites/config?pivots=deployment-language-arm-template#:~:text=For%20authsettingsV2%2C%20use%3A" target="_blank" rel="noopener"&gt;Microsoft.Web/sites/config — authsettingsV2 (ARM template)&lt;/A&gt; · &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/templates/microsoft.web/sites/config?pivots=deployment-language-bicep#:~:text=For%20authsettingsV2%2C%20use%3A" target="_blank" rel="noopener"&gt;Bicep variant&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This is the easiest way to add or update Easy Auth on a new or existing Logic App.&lt;/P&gt;
&lt;HR /&gt;
&lt;H5 id="approach-2-rest-api-call-as-a-post-deployment-pipeline-step"&gt;Approach 2 — REST API call as a post-deployment pipeline step&lt;/H5&gt;
&lt;P&gt;If you’d rather keep your infra template lean (or you’re updating Easy Auth on a Logic App that already exists), add a step to your CI/CD pipeline that calls the App Service &lt;CODE&gt;authsettingsV2&lt;/CODE&gt; REST API &lt;EM&gt;after&lt;/EM&gt; the Logic App infra deployment completes. The payload mirrors the &lt;CODE&gt;properties&lt;/CODE&gt; block from the ARM example above — including &lt;CODE&gt;excludedPaths: ["/runtime/*"]&lt;/CODE&gt;.&lt;/P&gt;
&lt;P&gt;This approach is useful when:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The Logic App is provisioned by a different pipeline or team than the one owning auth configuration.&lt;/LI&gt;
&lt;LI&gt;You need to update Easy Auth settings without redeploying the site.&lt;/LI&gt;
&lt;LI&gt;You want to apply environment-specific values (tenant ID, client ID, allowed application list) at release time rather than template-compile time.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Reference:&lt;/STRONG&gt; &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/rest/api/appservice/web-apps/update-auth-settings-v-2?view=rest-appservice-2025-05-01&amp;amp;tabs=HTTP#update-auth-settings-v2" target="_blank" rel="noopener"&gt;Web Apps - Update Auth Settings V2 - REST API (Azure App Service) | Microsoft Learn&lt;/A&gt; · &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/rest/api/appservice/web-apps/update-auth-settings-v-2?view=rest-appservice-2025-05-01&amp;amp;tabs=HTTP#globalvalidation" target="_blank" rel="noopener"&gt;GlobalValidation&lt;/A&gt;&lt;/P&gt;
&lt;HR /&gt;
&lt;H3 id="summary"&gt;Summary&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;The “inputs/outputs don’t load on run history” symptom after enabling Easy Auth is caused by App Service blocking SAS-authenticated runtime calls before the Logic App runtime can see them.&lt;/LI&gt;
&lt;LI&gt;Either allow unauthenticated requests (and let the runtime do all the auth), or keep Easy Auth strict and exclude &lt;CODE&gt;/runtime/*&lt;/CODE&gt;.&lt;/LI&gt;
&lt;LI&gt;Because the portal doesn’t expose &lt;CODE&gt;excludedPaths&lt;/CODE&gt;, the production-grade fix is to deploy it through CI/CD — either by adding an &lt;CODE&gt;authsettingsV2&lt;/CODE&gt; config resource to your ARM template or by calling the App Service auth REST API as a pipeline step after deployment.&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 18 May 2026 16:32:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-integration-services-blog/easy-auth-configuration-for-logic-app-standard-through-ci-cd/ba-p/4520539</guid>
      <dc:creator>Arpit_MSFT</dc:creator>
      <dc:date>2026-05-18T16:32:46Z</dc:date>
    </item>
    <item>
      <title>State Explosion Security Problem in AI-Era Software Supply Chains</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-security-community/state-explosion-security-problem-in-ai-era-software-supply/ba-p/4518255</link>
      <description>&lt;H4&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;Introduction&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;To see why this problem scales so quickly, start with the smallest possible change: a single line of code. In modern software, even a tiny edit is rarely just a local modification. It can change execution flow, introduce a new dependency, expose sensitive data, or quietly shift the purpose of the package itself. What looks trivial in a diff can create a materially different security outcome. That is why supply chain defenders cannot afford to treat small code changes as small security events.&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;How a Single Line Changes Package Intent&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;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Every software package exists in a particular state at a particular moment in time. Imagine a benign version — State X — that behaves exactly as intended. Now add one line of code. That small edit can shift the package into a new state with different behavior and, potentially, a very different risk profile.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The security issue is not the added line by itself. It is&amp;nbsp;the&amp;nbsp;fact that the package now has to be interpreted differently. A tiny diff can change the role of the entire component, which means defenders have to reason&amp;nbsp;about&amp;nbsp;the resulting behavior, not just the textual change.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{}"&gt;&lt;SPAN data-contrast="auto"&gt;That is why file-level scanning breaks down so quickly. A change in one file can alter the behavior of the entire package because software semantics emerge from how components interact. Security systems therefore need to analyze packages as composed systems, not as a series of isolated file edits.&lt;/SPAN&gt; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Why the whole package matters&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;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This matters even more in modern supply chain attacks, where malicious intent is rarely concentrated in one obvious file. More often, the behavior is distributed across several files that look harmless when viewed independently.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="·" data-font="Symbol" data-listid="5" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;File A&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;defines an encoded string constant. Looks like a config value.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:36,&amp;quot;335559739&amp;quot;:36}"&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="5" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;File B&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;provides a decode function.&amp;nbsp;Looks&amp;nbsp;like a utility.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:36,&amp;quot;335559739&amp;quot;:36}"&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="5" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;File C&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;(setup.py / postinstall) imports both, decodes, and executes.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:36,&amp;quot;335559739&amp;quot;:36}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Viewed independently, each file may appear benign.&amp;nbsp;No single file has to trigger a clear signature, rule, or heuristic.&amp;nbsp;The malicious behavior only becomes visible when you reconstruct&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;how the files interact as a system&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;. Any scanner that evaluates files one by one without rebuilding that interaction is likely to miss the real behavior.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Why every change demands re-analysis&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;/STRONG&gt;&lt;/H4&gt;
&lt;P&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;&lt;SPAN data-contrast="auto"&gt;Every meaningful state change — a commit, pull request, version bump, or package&amp;nbsp;publish&amp;nbsp;— can alter the semantics of the software. That means defenders cannot stop at diff inspection or lightweight pattern matching. The real question is not only what changed, but what the software now does.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Quantifying the problem&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;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The scale of the problem becomes clearer when you look at how many software state changes occur across the ecosystem every day:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="·" data-font="Symbol" data-listid="5" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;GitHub alone&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;recorded nearly&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;1 billion commits in 2025&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, merged an average of&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;43.2 million pull requests per month&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, and now hosts roughly&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;630 million repositories&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;In 2026, GitHub was projected to reach roughly&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;38 million commits per day.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&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="5" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;npm&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;has grown to well over&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;2 million packages&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, making JavaScript one of the largest public package ecosystems.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&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="5" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="6" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;PyPI&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;published more than&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;130,000 new projects in 2025&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;and more than&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;3.9 million new files&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;in the same year.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&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="5" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="7" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;NuGet&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;serves package downloads at&amp;nbsp;massive&amp;nbsp;operational scale, with recent weekly totals in the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;5 to 6 billion&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;range.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&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="5" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="8" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Maven Central&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;indexed more than&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;20 million packages&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;and published more than&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;3.2 million packages in 2025&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&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;Taken together, these ecosystems are generating an enormous stream of new software states. Some numbers describe repositories, some describe publishes, and some describe downloads, but they all point to the same reality: the scale of software movement is already massive before you even account for the acceleration from AI-assisted development.&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;The number of state changes is already enormous, and AI-assisted development is&amp;nbsp;increasing it&amp;nbsp;even further. The result is not just more code, but more package states that may require meaningful security interpretation.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Why the math breaks traditional scanning&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;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{}"&gt;Assume a single semantic package analysis takes 30 seconds, which is a reasonable range for LLM-based inference. Scanning 50,000 packages would require roughly 1.5 million seconds of compute time per day — about 417 hours. But the ecosystem only gives defenders 24 hours before the next wave of packages arrives. Without aggressive parallelism and purpose-built infrastructure, backlog becomes inevitable.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;The scanning bottleneck&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;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This leaves modern scanning systems with a fundamental bottleneck:&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;Heuristic and signature-based scanners&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;are fast. They can match known patterns in milliseconds and work well for familiar malware families or repeated behaviors. Some systems also use emulation or detonation, but these approaches still struggle to deliver deep reasoning at ecosystem scale. That makes&amp;nbsp;them&amp;nbsp;easier&amp;nbsp;to bypass with novel, well-structured, or AI-generated code that behaves maliciously without resembling previously known samples.&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;LLM-based semantic analysis&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;can reason&amp;nbsp;about&amp;nbsp;intent. It can follow behavior across files, recognize obfuscated exfiltration paths, and explain why a package is suspicious even when the code appears ordinary at first glance. The tradeoff is cost, latency, and trust: inference takes seconds rather than milliseconds, and a single package may require multiple reasoning passes. At&amp;nbsp;ecosystem&amp;nbsp;scale, that becomes a serious infrastructure challenge.&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;Neither approach is sufficient on its own.&amp;nbsp;Heuristics provide speed without deep understanding, while semantic models provide understanding without inherent scale.&amp;nbsp;Closing the gap requires systems that combine both: package-level reasoning with the latency and throughput needed for production supply chains.&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;335559738&amp;quot;:180,&amp;quot;335559739&amp;quot;:180}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Heuristics often miss novel attacks, while LLM-based approaches remain too slow to apply inline at large scale. That gap between understanding and throughput is where supply chain malware can persist.&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;What needs to change&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;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Closing that gap will require a different class of supply chain security systems. Detonation can help in some cases, but it is too slow and expensive to apply inline to every&amp;nbsp;package&amp;nbsp;state change. What is needed is a system that can:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="2" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Analyze entire packages as a unit&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— not individual files. The intent lives in the interaction between files, not within any single one.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:36,&amp;quot;335559739&amp;quot;:36}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="2" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Run semantic analysis at data-plane speed&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— every package, every version, on the hot path, with latency low enough for inline enforcement. Not async advisories. Not CI-time checks. Inline, before delivery.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="Aptos" data-listid="2" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Handle the state explosion&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— millions of state changes per day, each&amp;nbsp;requiring&amp;nbsp;full re-analysis. This is an infrastructure problem as much as a security problem: rate limiting, backpressure, connection pooling, regional failover, model versioning — the same hard distributed systems problems, with security stakes.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335559738&amp;quot;:36,&amp;quot;335559739&amp;quot;:36}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="2" 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;hybridMultilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Maintain high accuracy under evasion&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;— attackers deliberately use encoding, string splitting, dynamic imports, polyglot files, and similar techniques to reduce detection quality. The scanner must continue to classify packages accurately even when the code is designed to obscure intent.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;335551550&amp;quot;:3,&amp;quot;335551620&amp;quot;:3}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4 aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;The Latency-Accuracy Tradeoff: Malware Detection as an ML Problem&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;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;At cloud scale, malware detection is governed by a hard tradeoff between&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;latency, accuracy, throughput, and cost&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;. The fastest detectors are typically shallow: signatures, heuristics, and lightweight models can make decisions in milliseconds, but they often miss novel, compositional, or intent-level attacks. Deeper semantic analysis can improve recall and resilience against evasion, but it also increases inference time, compute cost, and operational complexity. As a result, defenders cannot&amp;nbsp;optimize for&amp;nbsp;accuracy in isolation; they must deliver strong detection quality within strict performance constraints.&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;This makes malware detection not just a cybersecurity problem, but a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;machine learning and distributed systems&lt;/STRONG&gt; problem&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;. In modern software supply chains, AI-assisted development increases the number of package states and enables attackers to generate variants at high speed, expanding&amp;nbsp;the space defenders must reason over. The challenge is therefore to build detection architectures that preserve semantic depth while remaining fast enough for inline use at&amp;nbsp;global&amp;nbsp;scale.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The gap between the rate of software change and the capacity to analyze it is widening. That gap is the attack surface. If defenders cannot inspect software at the speed it is being produced and published, attackers will continue to exploit the delay. &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;What the industry needs now is a cloud-scale malware analysis capability that can deliver l&lt;STRONG&gt;ow latency, low cost, high accuracy, and the flexibility to meet different operational requirements&lt;/STRONG&gt; , such as SLAs, false-positive tolerance, and enforcement policies , without compromising on package-level semantic analysis.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 16:08:17 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-security-community/state-explosion-security-problem-in-ai-era-software-supply/ba-p/4518255</guid>
      <dc:creator>nirwandogra</dc:creator>
      <dc:date>2026-05-18T16:08:17Z</dc:date>
    </item>
    <item>
      <title>Agent 365 connector: Monitor, hunt, and investigate AI agent activity in Microsoft Sentinel</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/agent-365-connector-monitor-hunt-and-investigate-ai-agent/ba-p/4520836</link>
      <description>&lt;P&gt;As enterprises scale the use of AI agents, SOC teams need visibility into AI agent behavior. The &lt;STRONG&gt;Agent 365 connector,&lt;/STRONG&gt; now in public preview, streams rich agent telemetry from Agent 365 into Microsoft Sentinel data lake. Agent activity, such as agent data exposure or access drift, is surfaced alongside other security data, giving SOC teams a unified view across digital environments. AI Agent actions are correlated with agent identity, endpoint, and cloud signals, enabling analysts to run end‑to‑end investigations using KQL, graph, and MCP-powered workflows. &lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;H1&gt;Why this matters for organizations&lt;/H1&gt;
&lt;P&gt;By centralizing security and AI agent telemetry in Sentinel data lake, organizations establish a unified control plane for securing AI agents. This enables security teams to analyze agent activity in context with broader signals and investigate using familiar Sentinel tools. This unlocks the ability for SOCs to detect risky or anomalous agent behavior early, understand impact quickly, and respond with speed and confidence. As AI agents take on real operational responsibility, this level of visibility is critical to prevent blind spots, reduce risk, and ensure agents operate safely at enterprise scale.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;End&lt;/STRONG&gt;‑&lt;STRONG&gt;to&lt;/STRONG&gt;‑&lt;STRONG&gt;end visibility into AI agent behavior: &lt;/STRONG&gt;A centralized view of AI agent behavior allows AI agents to be treated as first-class entities alongside users, identities, endpoints, and workloads.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Advanced hunting with KQL: &lt;/STRONG&gt;Hunt using KQL to proactively uncover unusual AI agent execution patterns, sensitive actions, or activity without clear human context. These hunts help surface potential risk early using the same workflows already used for other security data.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Analyzing blast radius and impact with Sentinel graph: &lt;/STRONG&gt;Security teams can correlate AI agent activity with identities, endpoints, and cloud resources to understand blast radius and potential impact during an investigation. By pivoting across related entities in Sentinel, analysts can assess how agent actions connect to the broader environment and support deeper, end‑to‑end investigations.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Querying agent data through MCP:&lt;/STRONG&gt; Use MCP to surface agent observability data through AI assistants, letting analysts pull agent telemetry into investigation workflows alongside other Sentinel data.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Agent 365 connector key capabilities&lt;/H2&gt;
&lt;P&gt;Install the Agent 365 connector with a single click using Sentinel Content Hub in the Defender portal. Once enabled, two capabilities come online automatically:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Unified agent telemetry across Agent 365 agent experiences:&lt;/STRONG&gt; Rich Agent 365 agent telemetry streams into Sentinel data lake, ready to analyze alongside identity, endpoint, and cloud signals using familiar SOC workflows.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;ASIM unified schema for AI agent observability:&lt;/STRONG&gt; Agent 365 agent observability data is normalized into an ASIM-aligned schema so it is consistent, queryable, and ready for analytics and detections.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;With the connector in place, Sentinel data lake becomes the system of record and the control plane for Agent 365 agent security—turning agent behavior into first-class security signals across SecOps workflows like hunting, investigation, detection engineering, and response.&lt;/P&gt;
&lt;H1&gt;Use cases&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;Prevent sensitive data exposure from misconfigured agents&lt;/STRONG&gt;&lt;BR /&gt;When an AI agent is granted broader access than intended, a crafted prompt could override safeguards and expose confidential data. With agent telemetry, security teams can trace the full execution path—from prompt to tools to data access—to quickly identify the root cause and contain the exposure.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Detect and control agent access drift over time&lt;/STRONG&gt;&lt;BR /&gt;As agents take on new tasks, their permissions can expand beyond the original scope, often without clear visibility. Agent telemetry enables continuous behavioral baselining, making it easier to spot abnormal access patterns early and prevent privilege misuse before it escalates.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Uncover hidden lateral movement across agent workflows&lt;/STRONG&gt;&lt;BR /&gt;Agents often collaborate and delegate tasks across systems, creating complex chains of execution that are difficult to track. Agent telemetry provides visibility into these interactions, mapping delegation paths and helping teams understand and limit the potential blast radius.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Defend against prompt injection and manipulation attacks&lt;/STRONG&gt;&lt;BR /&gt;Attackers can craft prompts to override agent instructions and manipulate behavior. By capturing prompts and reasoning flows, agent telemetry enables detection of these attacks and provides the context needed to investigate and remediate quickly.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Accelerate SOC investigations with end-to-end visibility&lt;/STRONG&gt;&lt;BR /&gt;When an agent is involved in a security alert, understanding its actions can be challenging. Agent telemetry correlates prompts, identities, tools, and data access into a unified timeline, giving SOC teams the clarity needed to investigate faster and respond with confidence.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Strengthen governance and compliance for AI agents&lt;/STRONG&gt;&lt;BR /&gt;Organizations need visibility into what agents exist and what data they can access. Agent telemetry provides a comprehensive audit trail of agent activity and access patterns, supporting compliance reporting and policy enforcement.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Enable proactive threat hunting on agent behavior&lt;/STRONG&gt;&lt;BR /&gt;Security teams need to stay ahead of emerging risks as agent usage grows. Agent telemetry enables advanced hunting across agent activity, helping detect anomalies, uncover patterns, and identify threats before they impact the organization.&lt;/P&gt;
&lt;H1&gt;Get started with Agent 365 connector&lt;/H1&gt;
&lt;P&gt;Getting started is straightforward.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;In the Microsoft Defender portal, navigate to &lt;STRONG&gt;Microsoft Sentinel&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Open &lt;STRONG&gt;Content hub&lt;/STRONG&gt; and search for &lt;STRONG&gt;Agent 365&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Install the &lt;STRONG&gt;Agent 365 Connector &lt;/STRONG&gt;(if not already installed)&lt;/LI&gt;
&lt;LI&gt;Open the connector page and select &lt;STRONG&gt;Connect&lt;/STRONG&gt; to begin ingestion&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Once connected, AI agent telemetry starts flowing into Sentinel, ready for hunting, investigation, and response. Data ingestion and analytics are billed using existing Sentinel meters.&lt;/P&gt;
&lt;H1&gt;Learn more&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/data-connectors-reference#a365-observability" target="_blank" rel="noopener"&gt;Find the Agent 365 data connector | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/sentinel-solutions-deploy?tabs=defender-portal" target="_blank" rel="noopener"&gt;Discover and manage Sentinel out-of-the-box content | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/configure-data-connector?tabs=defender-portal" target="_blank" rel="noopener"&gt;Connect data sources to Sentinel by using data connectors | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/sentinel/datalake/kql-sample-queries" target="_blank" rel="noopener"&gt;Sample KQL queries for Sentinel data lake | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.youtube.com/playlist?list=PL3ZTgFEc7LyvM-OlDTB8BDV_aARfmBMG9" target="_blank" rel="noopener"&gt;Watch the Sentinel data lake video playlist | Microsoft Security&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/Get_started/Sentinel_datalake" target="_blank" rel="noopener"&gt;Get started with Sentinel data lake | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 18 May 2026 16:05:15 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-sentinel-blog/agent-365-connector-monitor-hunt-and-investigate-ai-agent/ba-p/4520836</guid>
      <dc:creator>RGupta</dc:creator>
      <dc:date>2026-05-18T16:05:15Z</dc:date>
    </item>
    <item>
      <title>Now in Foundry: Tongyi-MAI Z-Image-Turbo, with FLUX.1-schnell and SDXL base 1.0</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-foundry-blog/now-in-foundry-tongyi-mai-z-image-turbo-with-flux-1-schnell-and/ba-p/4520199</link>
      <description>&lt;P&gt;This week's Model Mondays edition pairs three models available through the&lt;A class="lia-external-url" href="https://aka.ms/hf/foundry-models" target="_blank"&gt; Hugging Face collection&lt;/A&gt; in &lt;A class="lia-external-url" href="https://ai.azure.com/explore/models" target="_blank"&gt;Microsoft Foundry&lt;/A&gt;:&amp;nbsp;&lt;STRONG&gt;Tongyi-MAI's Z-Image-Turbo, &lt;/STRONG&gt;a new designed for lower latency on a single GPU and native bilingual text rendering; &lt;STRONG&gt;Black Forest Labs' FLUX.1-schnell,&lt;/STRONG&gt; a 12B rectified flow transformer distilled to 1–4 step inference and one of the most adopted open-weight image models since its 2024 release; and &lt;STRONG&gt;Stability AI's stable-diffusion-xl-base-1.0 (SDXL),&lt;/STRONG&gt; a latent diffusion research model that can be used to generate and modify images based on text prompts.&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Models of the week&lt;/STRONG&gt;&lt;/H2&gt;
&lt;H3&gt;&lt;A class="lia-external-url" href="https://ai.azure.com/catalog/models/tongyi-mai-z-image-turbo" target="_blank"&gt;Tongyi-MAI: Z-Image-Turbo&lt;/A&gt;&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Model Specs&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-level="1"&gt;Parameters / size: 6B (BF16)&lt;/LI&gt;
&lt;LI aria-level="1"&gt;Resolution: Up to 1024×1024 native&lt;/LI&gt;
&lt;LI aria-level="1"&gt;Primary task: Text-to-image generation (English and Chinese)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Why it's interesting (Spotlight)&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-level="1"&gt;&lt;STRONG&gt;Scalable Single-Stream Diffusion Transformer (S3-DiT) architecture:&lt;/STRONG&gt; Z-Image concatenates text tokens, visual semantic tokens, and image VAE tokens into a single unified input stream rather than running text and image through separate branches. This single-stream design can improve parameter efficiency relative to dual-stream DiT architectures at the same capacity. See the &lt;A class="lia-external-url" href="https://huggingface.co/papers/2511.22699" target="_blank"&gt;Z-Image technical report&lt;/A&gt; for details.&lt;/LI&gt;
&lt;LI aria-level="1"&gt;&lt;STRONG&gt;8-step inference at sub-second latency, fits in 16GB VRAM: &lt;/STRONG&gt;Z-Image-Turbo is distilled with Decoupled Distribution Matching Distillation (Decoupled-DMD) and further refined with DMDR, a method that fuses DMD with reinforcement learning during post-training. The result is a model that runs 8 Number-of-Function-Evaluations (NFE) per image with no Classifier-Free Guidance (CFG)—which roughly halves the per-step compute compared to CFG-based inference. See the &lt;A class="lia-external-url" href="https://huggingface.co/papers/2511.22677" target="_blank"&gt;Decoupled-DMD&lt;/A&gt; and &lt;A class="lia-external-url" href="https://huggingface.co/papers/2511.13649" target="_blank"&gt;DMDR&lt;/A&gt; papers.&lt;/LI&gt;
&lt;LI aria-level="1"&gt;&lt;STRONG&gt;Native bilingual text rendering and strong instruction adherence:&lt;/STRONG&gt; Unlike most open-weight image models, which struggle with legible in-image text, Z-Image-Turbo renders complex English and Chinese text accurately which is useful for posters, signage, packaging mockups, and marketing creative.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Try it&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN lia-align-center"&gt;&lt;table border="1" style="width: 100%; border-width: 1px;"&gt;&lt;colgroup&gt;&lt;col style="width: 50.0386%" /&gt;&lt;col style="width: 49.9459%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img&gt;Figure 1. Cherry cake generated by Z-Image-Turbo&lt;/img&gt;&lt;/td&gt;&lt;td&gt;&lt;img&gt;Figure 2. Using the original image to create a poster for marketing material&lt;/img&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;Imagine you're a community programs coordinator at your city's parks department, planning a new summer event series — a "Cake Picnic in the Park" — designed to bring neighbors together over food in shared green space. The event is a few weeks out. You haven't booked bakery partners yet, so no actual cake exists, and you need marketing assets this week to start driving sign-ups: a hero image for the registration page, a flyer for community centers and libraries, social tiles for the city's channels. Use the prompt below and a photorealistic image, that can now be scaled to become additional assets like printed flyers or social images in minutes using image editing tools (or another model).&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Prompt&lt;/STRONG&gt;: A round layered cake displayed on a white ceramic cake stand, topped with glossy fresh red cherries and smooth pastel pink buttercream frosting piped in delicate rosettes around the edge. One generous slice has been cleanly cut and removed from the front, revealing a perfect cross-section: four distinct horizontal layers alternating between soft pink sponge cake and fluffy white vanilla cream frosting. Professional bakery photography, soft natural window light from the left, shallow depth of field, marble countertop, warm and inviting atmosphere, photorealistic detail on the cake texture, cherry highlights, and frosting swirls.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H3&gt;&lt;A class="lia-external-url" href="https://ai.azure.com/catalog/models/black-forest-labs-flux.1-schnell" target="_blank"&gt;Black Forest Labs: FLUX.1-schnell&lt;/A&gt;&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Model Specs&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-level="1"&gt;Parameters / size: 12B (rectified flow transformer)&lt;/LI&gt;
&lt;LI aria-level="1"&gt;Resolution: Flexible up to 2 megapixels&lt;/LI&gt;
&lt;LI aria-level="1"&gt;Primary task: Text-to-image generation&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Why it's interesting (Spotlight)&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-level="1"&gt;&lt;STRONG&gt;Rectified flow transformer with adversarial distillation for 1–4 step inference: &lt;/STRONG&gt;FLUX.1-schnell is the distilled, Apache 2.0 sibling of the FLUX.1 family. It uses a rectified flow formulation (a diffusion variant that learns straight-line probability paths between noise and data, reducing the number of solver steps needed) and is further compressed with latent adversarial diffusion distillation. The model generates high quality images in for latency-sensitive workloads.&lt;/LI&gt;
&lt;LI aria-level="1"&gt;&lt;STRONG&gt;Permissive licensing for commercial use: &lt;/STRONG&gt;Released under Apache 2.0, FLUX.1-schnell can be used for personal, scientific, and commercial purposes. This has driven broad adoption across product features that need an open, redistributable image backbone.&lt;/LI&gt;
&lt;LI aria-level="1"&gt;&lt;STRONG&gt;Strong prompt adherence at its parameter range&lt;/STRONG&gt;: At 12B parameters, FLUX.1-schnell sits between the SDXL family and frontier proprietary image models, and it remains a common reference point for evaluating open image generation prompt following—particularly for complex compositional prompts and longer captions—roughly two years after its initial release.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Try it&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="lia-embeded-content" contenteditable="false"&gt;&lt;IFRAME src="https://black-forest-labs-flux-1-schnell.hf.space" width="850" height="450" frameborder="0" sandbox="allow-scripts allow-same-origin allow-forms"&gt;&lt;/IFRAME&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Hugging Face Spaces give developers the ability to experiment and try new models before deploying them. Test out a few prompts here:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://black-forest-labs-flux-1-schnell.hf.space" target="_blank"&gt;https://black-forest-labs-flux-1-schnell.hf.space&lt;/A&gt; then when you are ready, deploy the model in Microsoft Foundry.&lt;/P&gt;
&lt;H3&gt;&lt;A class="lia-external-url" href="https://ai.azure.com/catalog/models/stabilityai-stable-diffusion-xl-base-1-0" target="_blank"&gt;Stability AI: stable-diffusion-xl-base-1.0&lt;/A&gt;&lt;/H3&gt;
&lt;img&gt;Figure 2. Architectural diagram available here: &lt;A href="https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0" target="_blank"&gt;stabilityai/stable-diffusion-xl-base-1.0 · Hugging Face&lt;/A&gt;&lt;/img&gt;
&lt;P&gt;&lt;STRONG&gt;Model Specs&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-level="1"&gt;Parameters / size: 2.6B UNet (≈3.5B total with text encoders)&lt;/LI&gt;
&lt;LI aria-level="1"&gt;Resolution: 1024×1024 native&lt;/LI&gt;
&lt;LI aria-level="1"&gt;Primary task: Text-to-image generation&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Why it's interesting (Spotlight)&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-level="1"&gt;&lt;STRONG&gt;Dual text encoder design and an ensemble-of-experts pipeline:&lt;/STRONG&gt; SDXL uses two pretrained text encoders—OpenCLIP-ViT/G and CLIP-ViT/L—concatenated to capture both broad semantic alignment and finer-grained token-level cues. It can be run standalone or paired with the &lt;A class="lia-external-url" href="https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0" target="_blank"&gt;SDXL refiner&lt;/A&gt; in an ensemble-of-experts pipeline where the base model handles early denoising and the refiner specializes in the final steps. See the &lt;A class="lia-external-url" href="https://huggingface.co/papers/2307.01952" target="_blank"&gt;SDXL report&lt;/A&gt; for the original training and architecture details.&lt;/LI&gt;
&lt;LI aria-level="1"&gt;&lt;STRONG&gt;CreativeML Open RAIL++-M licensing for managed deployments:&lt;/STRONG&gt; SDXL is distributed under the CreativeML Open RAIL++-M license, which permits commercial use and downstream fine-tuning with documented use restrictions.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Try it&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To go deeper on SDXL, take a look at Stability AI's &lt;A class="lia-external-url" href="https://github.com/Stability-AI/generative-models" target="_blank"&gt;generative-models GitHub repository&lt;/A&gt;, which implements the most popular diffusion frameworks for both training and inference and continues to expand with new capabilities like distillation.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;STRONG&gt;Getting started&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;You can deploy open-source Hugging Face models directly in Microsoft Foundry in two ways. The first by browsing the Hugging Face collection in the Foundry model catalog and deploying to managed endpoints in just a few clicks. The second way is direct through the Hugging Face Hub, select any supported model and then choose "Deploy on Microsoft Foundry", which brings you straight into Azure. Learn how to discover models and deploy them using Microsoft Foundry documentation:&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-level="1"&gt;&lt;A class="lia-external-url" href="https://aka.ms/hf/model-mondays" target="_blank"&gt;Follow along the Model Mondays series and access the GitHub to stay up to date on the latest&lt;/A&gt;&lt;/LI&gt;
&lt;LI aria-level="1"&gt;&lt;A class="lia-external-url" href="https://aka.ms/hf/docs/microsoft-azure" target="_blank"&gt;Read Hugging Face on Azure docs&lt;/A&gt;&lt;/LI&gt;
&lt;LI aria-level="1"&gt;&lt;A class="lia-external-url" href="https://aka.ms/hf/docs/microsoft-azure/one-click-deploy" target="_blank"&gt;Learn about one-click deployments from the Hugging Face Hub on Microsoft Foundry&lt;/A&gt;&lt;/LI&gt;
&lt;LI aria-level="1"&gt;&lt;A class="lia-external-url" href="https://aka.ms/hf/foundry-models" target="_blank"&gt;Explore models in Microsoft Foundry&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 18 May 2026 16:04:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-foundry-blog/now-in-foundry-tongyi-mai-z-image-turbo-with-flux-1-schnell-and/ba-p/4520199</guid>
      <dc:creator>Osi</dc:creator>
      <dc:date>2026-05-18T16:04:58Z</dc:date>
    </item>
    <item>
      <title>Navigate changing hosting economics with the Microsoft Datacenter Optimization initiative</title>
      <link>https://techcommunity.microsoft.com/t5/partner-news/navigate-changing-hosting-economics-with-the-microsoft/ba-p/4520234</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Hosting and hybrid cloud business models are under pressure as infrastructure economics change. While the full market impact will unfold through 2027, partners who begin planning now&amp;nbsp;may be&amp;nbsp;better positioned to protect margins,&amp;nbsp;retain&amp;nbsp;customers, and develop more differentiated offers across hybrid and&amp;nbsp;AI&lt;/SPAN&gt;‑&lt;SPAN data-contrast="none"&gt;ready&amp;nbsp;scenarios.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;The Microsoft Datacenter Optimization (DCO) initiative empowers&amp;nbsp;you&amp;nbsp;to move beyond legacy Services Provider License Agreement (SPLA)&lt;/SPAN&gt;‑&lt;SPAN data-contrast="none"&gt;based operations and build a stronger, more resilient business—modernizing customer environments while unlocking new recurring revenue opportunities across Azure, hybrid, and&amp;nbsp;AI&lt;/SPAN&gt;‑&lt;SPAN data-contrast="none"&gt;ready&amp;nbsp;services.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;Learning how to navigate these changes is the first step in a&amp;nbsp;mult&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;is&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;tage&amp;nbsp;journey. Start with the Microsoft Hybrid Cloud Partners podcast, available on&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=Z9ISM130C80&amp;amp;list=PLz7jPMmpNrjkZ_FHu3EH5rioHe38mj0TE&amp;amp;index=4&amp;amp;t=9s" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;YouTube&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="none"&gt;,&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://open.spotify.com/episode/3UPMz0pjucjYacfgJsFFf1" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Spotify&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="none"&gt;,&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://podcasts.apple.com/us/podcast/ignite-update-virtualization-changes-and-new-horizons/id1756830977?i=1000740895461" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Apple&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="none"&gt;, and&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.amazon.com/music/player/podcasts/e98dc5d9-3c2f-41d9-9b0d-5a09de513eb5/episodes/e150508c-b914-48c3-9143-2370740b89ea/hybrid-cloud-partners-ignite-update-virtualization-changes-and-new-horizons-for-hosters" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Amazon&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="none"&gt;.&amp;nbsp;The&amp;nbsp;podcast breaks down how shifting infrastructure economics are shaping the hybrid cloud landscape—and what that means for your&amp;nbsp;long&lt;/SPAN&gt;‑&lt;SPAN data-contrast="none"&gt;term&amp;nbsp;business strategy as a partner.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;This shift is about more than licensing alignment—it is about building a more resilient, differentiated, service-led business for the future. Explore&amp;nbsp;additional&amp;nbsp;tools and support on the&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://dco.microsoft.com/" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Microsoft Datacenter Optimization&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;page&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;so you can continue to plan confidently and grow with Microsoft.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://www.youtube.com/watch?v=Z9ISM130C80&amp;amp;list=PLz7jPMmpNrjkZ_FHu3EH5rioHe38mj0TE&amp;amp;index=5&amp;amp;t=9s%20" target="_blank"&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:276}"&gt;&lt;SPAN data-contrast="none"&gt;Watch the Microsoft Hybrid Cloud Partners podcast&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/partner-news/navigate-changing-hosting-economics-with-the-microsoft/ba-p/4520234</guid>
      <dc:creator>JillArmourMicrosoft</dc:creator>
      <dc:date>2026-05-18T16:00:00Z</dc:date>
    </item>
    <item>
      <title>Now available: Close deals faster and transact at scale with auto activation for SaaS subscriptions</title>
      <link>https://techcommunity.microsoft.com/t5/marketplace-blog/now-available-close-deals-faster-and-transact-at-scale-with-auto/ba-p/4519517</link>
      <description>&lt;P&gt;Auto activation for the SaaS products you sell in Microsoft Marketplace is now generally available. When turned on, subscription activation and billing for your SaaS solutions begin at purchase, removing API calls so customers get your solution, faster.&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;How it works&amp;nbsp;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Auto activation is designed around choice. Turn it ON to streamline customer onboarding. If your solution requires validation, coordinated provisioning, or a defined go‑live moment before billing starts, manual activation may be a better fit.&lt;/P&gt;
&lt;P&gt;You can configure this setting in Partner Center to fit how you price, bill, and fulfill your offer. Once a purchase is complete, you'll receive a real-time webhook notification confirming the completed transaction. This immediate signal allows you to trigger onboarding workflows, provision accounts, or notify internal systems without waiting for manual activation steps to resolve.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/AutoActivation" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Review the documentation &lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;Default behavior&lt;/STRONG&gt;&lt;/H5&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Existing plans:&lt;/STRONG&gt; Auto activation is&lt;STRONG&gt; OFF&lt;/STRONG&gt; by default, you will still manually activate SaaS purchases unless you republish your offer and change the setting.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;New plans&lt;/STRONG&gt;: Auto activation is &lt;STRONG&gt;ON&lt;/STRONG&gt; by default, with the option to turn off during offer publication if you prefer to manage manually.&lt;/LI&gt;
&lt;/UL&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Auto activation is also applicable for&lt;STRONG&gt; private offers.&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;By default, the private offer will use the auto activation setting of the public offer.
&lt;UL&gt;
&lt;LI&gt;Price adjustments to your SaaS plan will not affect the activation status of your private offer.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;If you create a new SaaS plan with a unique plan ID for your private offer, you can explicitly turn auto activation &lt;STRONG&gt;ON&lt;/STRONG&gt; or &lt;STRONG&gt;OFF&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;img /&gt;
&lt;H5&gt;&lt;STRONG&gt;Get started&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Auto activation works best when purchase and onboarding experiences are aligned. Use it to streamline scenarios where removing billing dependencies improves time-to-value. Choose manual activation when you need more high-touch onboarding, or want to manually manage when billing starts.&lt;/P&gt;
&lt;P&gt;Before enabling auto activation, make sure your customer messaging, documentation, and internal sales guidance reflect the updated flow. Because customer billing can start the day of activation, so clarity matters. &lt;A href="https://aka.ms/AutoActivation" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Learn more&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/marketplace-blog/now-available-close-deals-faster-and-transact-at-scale-with-auto/ba-p/4519517</guid>
      <dc:creator>sarahsnow</dc:creator>
      <dc:date>2026-05-18T16:00:00Z</dc:date>
    </item>
    <item>
      <title>Help Shape the Future of Microsoft Teams for Small and Medium Businesses</title>
      <link>https://techcommunity.microsoft.com/t5/partner-news/help-shape-the-future-of-microsoft-teams-for-small-and-medium/ba-p/4517928</link>
      <description>&lt;P&gt;Have you ever wished Microsoft Teams worked just a little better for the way your SMB customers run their business? Maybe you've thought:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;“It would be great if Teams could do this…”&lt;/P&gt;
&lt;P&gt;“This workflow would be so much simpler if…”&lt;/P&gt;
&lt;P&gt;“Why isn’t there a feature for…?”&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Now’s your chance to directly influence what comes next.&lt;/P&gt;
&lt;P&gt;Microsoft is inviting Small and Medium Business (SMB) partners to join the &lt;STRONG&gt;Teams SMB Partner Advisory Council (PAC)&lt;/STRONG&gt; — a simple, low-effort way to share real-world feedback with the product team and help shape the Teams roadmap for SMB customers.&lt;/P&gt;
&lt;H2&gt;What is Teams SMB PAC?&lt;/H2&gt;
&lt;P&gt;Our Teams SMB Partner Advisory Council (PAC) brings together a Microsoft partners who:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Work with SMB customers implementing Teams&lt;/LI&gt;
&lt;LI&gt;Have insights into the challenges SMBs face when adopting collaboration tools&lt;/LI&gt;
&lt;LI&gt;Want to help improve the products they rely on&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Through monthly virtual sessions, participants get the opportunity to:&lt;/P&gt;
&lt;P&gt;✅ Preview upcoming features and improvements&lt;BR /&gt;✅ Provide feedback during early stages of product development&lt;BR /&gt;✅ Share what’s working well — and what isn’t&lt;BR /&gt;✅ Highlight real-world business scenarios that should be better supported&lt;BR /&gt;✅ Influence priorities for SMB-focused innovation in Teams&lt;/P&gt;
&lt;P&gt;This isn’t a sales call or a support channel — it’s a direct line to the Teams product team.&lt;/P&gt;
&lt;H2&gt;What’s the Commitment?&lt;/H2&gt;
&lt;P&gt;We know you are busy.&lt;/P&gt;
&lt;P&gt;That’s why participation is designed to be:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Flexible – Virtual meetings combined with async conversation&lt;/LI&gt;
&lt;LI&gt;Low effort – No prep required for most sessions&lt;/LI&gt;
&lt;LI&gt;Conversational – Small-group discussions, not presentations&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Most sessions are informal and focused on understanding how Microsoft can better support you and your SMB customers.&lt;/P&gt;
&lt;P&gt;Your input helps ensure we build features that reflect how SMBs actually work — not just how software assumes they do.&lt;/P&gt;
&lt;H2&gt;Why Join?&lt;/H2&gt;
&lt;P&gt;Participants often tell us that one of the biggest benefits of joining the PAC is the opportunity to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Get early visibility into what’s coming next&lt;/LI&gt;
&lt;LI&gt;Understand where Teams development is headed&lt;/LI&gt;
&lt;LI&gt;Provide feedback that directly reaches the team building the product&lt;/LI&gt;
&lt;LI&gt;Help shape experiences that impact SMB customers worldwide&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Your perspective matters — and it can directly shape the future of Teams for SMB.&lt;/P&gt;
&lt;P&gt;Trusted by partners across regions including EMEA, APAC, and North America.&lt;/P&gt;
&lt;H2&gt;Interested in Participating?&lt;/H2&gt;
&lt;P&gt;If you'd like to be considered for the Microsoft Teams SMB Partner Advisory Council, simply fill out this short interest form:&lt;/P&gt;
&lt;P&gt;👉&amp;nbsp;&lt;A href="https://aka.ms/TeamsSMBAdvisory" target="_blank"&gt;Express your interest to join the Teams SMB Advisory Board&amp;nbsp;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Once submitted, our team will review your response and follow up with more information on next steps.&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 16:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/partner-news/help-shape-the-future-of-microsoft-teams-for-small-and-medium/ba-p/4517928</guid>
      <dc:creator>MiikkaOksanen</dc:creator>
      <dc:date>2026-05-18T16:00:00Z</dc:date>
    </item>
    <item>
      <title>You Can Scale MCP Servers Behind a Load Balancer on App Service — Here's How</title>
      <link>https://techcommunity.microsoft.com/t5/apps-on-azure-blog/you-can-scale-mcp-servers-behind-a-load-balancer-on-app-service/ba-p/4520824</link>
      <description>&lt;P&gt;Most MCP servers in the wild are single-instance processes. That's fine when they're driving a local Claude or VS Code session — but it's the wrong shape for a production agent fleet that has to absorb traffic spikes, ride through deploys, and survive instance failures.&lt;/P&gt;
&lt;P&gt;The good news: the MCP spec already grew up. The &lt;A class="lia-external-url" href="https://modelcontextprotocol.io/specification/2025-06-18" target="_blank"&gt;2025-06-18 revision&lt;/A&gt; formalizes &lt;STRONG&gt;stateless HTTP transport&lt;/STRONG&gt; (and the &lt;A class="lia-external-url" href="https://modelcontextprotocol.io/specification/2025-11-25" target="_blank"&gt;current 2025-11-25 revision&lt;/A&gt; keeps it), which means a single request carries everything the server needs to answer. No long-lived connection, no in-process session table, no sticky-session hacks to keep a client glued to one box.&lt;/P&gt;
&lt;P&gt;That tiny protocol change unlocks something big: &lt;STRONG&gt;you can stick an MCP server behind App Service's built-in load balancer and scale it like any other web API.&lt;/STRONG&gt; This post walks through how, with a runnable sample.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Sample:&lt;/STRONG&gt; &lt;A class="lia-external-url" href="https://github.com/seligj95/app-service-mcp-stateless-scale-python" target="_blank"&gt;seligj95/app-service-mcp-stateless-scale-python&lt;/A&gt;. One &lt;CODE&gt;azd up&lt;/CODE&gt; and you have a stateless FastAPI MCP server running on three App Service instances behind the platform load balancer, with a staging slot, Application Insights, and a k6 script that visualizes load distribution from the client side.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H3&gt;Why "stateless" is the whole story&lt;/H3&gt;
&lt;P&gt;Earlier MCP transports leaned on persistent connections — SSE channels and WebSocket-style sessions where the server held per-client state in memory (open tools, subscriptions, partial streams). That model is great for a local IDE talking to a local process. It's hostile to load balancing, because routing a follow-up request to a different instance breaks the session.&lt;/P&gt;
&lt;P&gt;The stateless HTTP transport flips that. Each request is a complete JSON-RPC envelope (&lt;CODE&gt;initialize&lt;/CODE&gt;, &lt;CODE&gt;tools/list&lt;/CODE&gt;, &lt;CODE&gt;tools/call&lt;/CODE&gt;), every response is self-contained, and the server is allowed to forget the client between requests. Any instance can serve any call. That is the property a load balancer needs.&lt;/P&gt;
&lt;P&gt;In the sample, every tool is a pure function of its arguments — &lt;CODE&gt;whoami&lt;/CODE&gt; reports the serving instance, &lt;CODE&gt;lookup_fact&lt;/CODE&gt; reads a static dictionary, &lt;CODE&gt;compute_primes&lt;/CODE&gt; runs a sieve. None of them touches per-client memory. That's not a constraint of the protocol; it's a discipline you adopt to keep statelessness intact.&lt;/P&gt;
&lt;H3&gt;Why App Service, and not Functions or AKS&lt;/H3&gt;
&lt;P&gt;A few defaults made App Service the right home for a scaled MCP server:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Always On.&lt;/STRONG&gt; Reasoning tools call into LLMs and external APIs; latencies routinely sit in the multi-second range. Functions caps a single execution at ten minutes by default (and aggressively scales workers to zero between bursts, which kills warm caches). App Service keeps the process resident.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Horizontal scale is one parameter.&lt;/STRONG&gt; Pick a Premium SKU, set the plan's capacity to N, and you have N instances behind a managed load balancer. No VMSS to declare, no ingress controller to wire up, no Service to reconcile.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Deployment slots.&lt;/STRONG&gt; Swap a warmed-up staging slot into production for zero-downtime deploys. Critical when your "API" is an LLM tool surface that an agent is actively driving.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Easy Auth.&lt;/STRONG&gt; OAuth 2.1 in front of the MCP endpoint without writing the flow yourself — turn on the App Service authentication blade and point it at Entra ID. The sample leaves this off so the deploy is one command, but the wiring is a checkbox away.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The TL;DR: it's PaaS that already knows how to run a stateful long-lived process at horizontal scale, which is exactly the shape of a scaled MCP server.&lt;/P&gt;
&lt;H3&gt;The FastAPI MCP server, end-to-end stateless&lt;/H3&gt;
&lt;P&gt;The whole transport is one POST handler. The full source is in &lt;A href="https://github.com/seligj95/app-service-mcp-stateless-scale-python/blob/main/main.py" target="_blank"&gt;&lt;CODE&gt;main.py&lt;/CODE&gt;&lt;/A&gt;, but here are the load-bearing pieces:&lt;/P&gt;
&lt;PRE class="language-python" tabindex="0"&gt;&lt;CODE class="language-python"&gt;&lt;SPAN class="token decorator annotation punctuation"&gt;@app&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;post&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"/mcp"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;async&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;mcp_endpoint&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;request&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; Request&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt;
    body &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;await&lt;/SPAN&gt; request&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;json&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;
    method &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; body&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;get&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"method"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;""&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;
    msg_id &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; body&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;get&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"id"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;

    &lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; method &lt;SPAN class="token operator"&gt;==&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"initialize"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt;
        &lt;SPAN class="token keyword"&gt;return&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"jsonrpc"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"2.0"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"id"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; msg_id&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"result"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; _server_info&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;

    &lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; method &lt;SPAN class="token operator"&gt;==&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"tools/list"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt;
        &lt;SPAN class="token keyword"&gt;return&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"jsonrpc"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"2.0"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"id"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; msg_id&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"result"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"tools"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;

    &lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; method &lt;SPAN class="token operator"&gt;==&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"tools/call"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt;
        params &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; body&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;get&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"params"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;
        result &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;await&lt;/SPAN&gt; MCP_TOOLS&lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;params&lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"name"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"function"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;**&lt;/SPAN&gt;params&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;get&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"arguments"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;
        &lt;SPAN class="token keyword"&gt;return&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;
            &lt;SPAN class="token string"&gt;"jsonrpc"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"2.0"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
            &lt;SPAN class="token string"&gt;"id"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; msg_id&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
            &lt;SPAN class="token string"&gt;"result"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"content"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"type"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"text"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"text"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; json&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;dumps&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;result&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
        &lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;There is no session table. There is no &lt;CODE&gt;client_id&lt;/CODE&gt; cookie. There is no &lt;CODE&gt;AsyncIterator&lt;/CODE&gt; held open between requests. &lt;CODE&gt;initialize&lt;/CODE&gt;, &lt;CODE&gt;tools/list&lt;/CODE&gt;, and &lt;CODE&gt;tools/call&lt;/CODE&gt; all return in a single round trip, which is the shape App Service's load balancer expects.&lt;/P&gt;
&lt;P&gt;The most useful debugging tool in the sample is &lt;CODE&gt;whoami&lt;/CODE&gt;:&lt;/P&gt;
&lt;PRE class="language-python" tabindex="0"&gt;&lt;CODE class="language-python"&gt;&lt;SPAN class="token keyword"&gt;async&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;tool_whoami&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;-&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;&amp;gt;&lt;/SPAN&gt; Dict&lt;SPAN class="token punctuation"&gt;[&lt;/SPAN&gt;&lt;SPAN class="token builtin"&gt;str&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; Any&lt;SPAN class="token punctuation"&gt;]&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt;
    &lt;SPAN class="token keyword"&gt;return&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;
        &lt;SPAN class="token string"&gt;"instance_id"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; os&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;environ&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;get&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"WEBSITE_INSTANCE_ID"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"local"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
        &lt;SPAN class="token string"&gt;"hostname"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; socket&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;gethostname&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
        &lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;
    &lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;CODE&gt;WEBSITE_INSTANCE_ID&lt;/CODE&gt; is unique per App Service worker. Call &lt;CODE&gt;whoami&lt;/CODE&gt; a few times from your MCP client and the value rotates — that's the load balancer working. If it doesn't rotate, something is pinning your traffic (almost always the ARR Affinity cookie; we'll get there).&lt;/P&gt;
&lt;H3&gt;The Bicep that actually makes it scale&lt;/H3&gt;
&lt;P&gt;The infra is a P0v3 plan with &lt;CODE&gt;capacity: 3&lt;/CODE&gt;, a web app with affinity disabled, and a staging slot on the same plan:&lt;/P&gt;
&lt;PRE class="language-bicep" tabindex="0"&gt;&lt;CODE class="language-bicep"&gt;&lt;SPAN class="token keyword"&gt;resource&lt;/SPAN&gt; appServicePlan &lt;SPAN class="token string"&gt;'Microsoft.Web/serverfarms@2024-04-01'&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;
  &lt;SPAN class="token property"&gt;name&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; name
  &lt;SPAN class="token property"&gt;sku&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;
    &lt;SPAN class="token property"&gt;name&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'P0v3'&lt;/SPAN&gt;
    &lt;SPAN class="token property"&gt;capacity&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; instanceCount   &lt;SPAN class="token comment"&gt;// 3 by default&lt;/SPAN&gt;
  &lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;
  &lt;SPAN class="token property"&gt;properties&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt; reserved&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token boolean"&gt;true&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="token keyword"&gt;resource&lt;/SPAN&gt; web &lt;SPAN class="token string"&gt;'Microsoft.Web/sites@2024-04-01'&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;
  &lt;SPAN class="token property"&gt;name&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; name
  &lt;SPAN class="token property"&gt;properties&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;
    &lt;SPAN class="token property"&gt;serverFarmId&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; appServicePlanId
    &lt;SPAN class="token property"&gt;httpsOnly&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token boolean"&gt;true&lt;/SPAN&gt;
    &lt;SPAN class="token property"&gt;clientAffinityEnabled&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token boolean"&gt;false&lt;/SPAN&gt;   &lt;SPAN class="token comment"&gt;// ← the one line that matters&lt;/SPAN&gt;
    &lt;SPAN class="token property"&gt;siteConfig&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;
      &lt;SPAN class="token property"&gt;linuxFxVersion&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'PYTHON|3.11'&lt;/SPAN&gt;
      &lt;SPAN class="token property"&gt;alwaysOn&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token boolean"&gt;true&lt;/SPAN&gt;
      &lt;SPAN class="token property"&gt;healthCheckPath&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'/health'&lt;/SPAN&gt;
      &lt;SPAN class="token property"&gt;appCommandLine&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'python -m uvicorn main:app --host 0.0.0.0 --port 8000'&lt;/SPAN&gt;
    &lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;
  &lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="token keyword"&gt;resource&lt;/SPAN&gt; staging &lt;SPAN class="token string"&gt;'Microsoft.Web/sites/slots@2024-04-01'&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;
  &lt;SPAN class="token property"&gt;parent&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; web
  &lt;SPAN class="token property"&gt;name&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'staging'&lt;/SPAN&gt;
  &lt;SPAN class="token property"&gt;properties&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt; &lt;SPAN class="token comment"&gt;/* same shape — separate hostname, same plan */&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;
&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The single most important line in that template is &lt;CODE&gt;clientAffinityEnabled: false&lt;/CODE&gt;. App Service defaults to &lt;STRONG&gt;on&lt;/STRONG&gt;, which sets the &lt;CODE&gt;ARRAffinity&lt;/CODE&gt; cookie and pins every subsequent request from a given client to the instance that handled the first one. That default exists because legacy ASP.NET apps used in-process session state. Stateless MCP does not. Leaving affinity on silently undoes everything we just built.&lt;/P&gt;
&lt;P&gt;Premium v3 (P0v3) is the floor for two reasons: it gives Always On and unlocks deployment slots. Below that tier you don't get either.&lt;/P&gt;
&lt;H3&gt;Application Insights without writing telemetry code&lt;/H3&gt;
&lt;P&gt;The sample drops one line of bootstrap into &lt;CODE&gt;main.py&lt;/CODE&gt;:&lt;/P&gt;
&lt;PRE class="language-python" tabindex="0"&gt;&lt;CODE class="language-python"&gt;&lt;SPAN class="token keyword"&gt;from&lt;/SPAN&gt; azure&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;monitor&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;opentelemetry &lt;SPAN class="token keyword"&gt;import&lt;/SPAN&gt; configure_azure_monitor

&lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; os&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;environ&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;get&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"APPLICATIONINSIGHTS_CONNECTION_STRING"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt;
    configure_azure_monitor&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;logger_name&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;"mcp"&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The Azure Monitor OpenTelemetry distro auto-instruments FastAPI and outbound HTTP. Every request span App Service emits is tagged with &lt;CODE&gt;cloud_RoleInstance&lt;/CODE&gt;, which Application Insights populates from &lt;CODE&gt;WEBSITE_INSTANCE_ID&lt;/CODE&gt;. That makes the question "is traffic actually spreading across my instances?" a one-liner in Logs:&lt;/P&gt;
&lt;PRE class="language-kusto" tabindex="0"&gt;&lt;CODE class="language-kusto"&gt;requests
&lt;SPAN class="token operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="token verb keyword"&gt;where&lt;/SPAN&gt; timestamp &lt;SPAN class="token operator"&gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;ago&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;15m&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="token operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="token verb keyword"&gt;where&lt;/SPAN&gt; name &lt;SPAN class="token keyword"&gt;contains&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;"/mcp"&lt;/SPAN&gt;
&lt;SPAN class="token operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="token verb keyword"&gt;summarize&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;count&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;by&lt;/SPAN&gt; cloud_RoleInstance
&lt;SPAN class="token operator"&gt;|&lt;/SPAN&gt; &lt;SPAN class="token verb keyword"&gt;order&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;by&lt;/SPAN&gt; count_ &lt;SPAN class="token keyword"&gt;desc&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If you see three roughly-equal rows, you're done. If you see one row, your client is sending &lt;CODE&gt;ARRAffinity&lt;/CODE&gt; cookies — turn affinity off and redeploy.&lt;/P&gt;
&lt;H3&gt;Deploy&lt;/H3&gt;
&lt;PRE class="language-bash" tabindex="0"&gt;&lt;CODE class="language-bash"&gt;azd auth login
azd up
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;That provisions the resource group, plan, web app, staging slot, Log Analytics workspace, and Application Insights resource, then deploys the Python app via Oryx. The output prints both &lt;CODE&gt;WEB_URI&lt;/CODE&gt; and &lt;CODE&gt;WEB_STAGING_URI&lt;/CODE&gt;. Open the production URI — the home page renders the instance ID that served it. Refresh. The ID changes.&lt;/P&gt;
&lt;P&gt;To swap the staging slot into production with no downtime:&lt;/P&gt;
&lt;PRE class="language-bash" tabindex="0"&gt;&lt;CODE class="language-bash"&gt;az webapp deployment slot swap &lt;SPAN class="token punctuation"&gt;\&lt;/SPAN&gt;
  --resource-group &lt;SPAN class="token operator"&gt;&amp;lt;&lt;/SPAN&gt;rg&lt;SPAN class="token operator"&gt;&amp;gt;&lt;/SPAN&gt; --name &lt;SPAN class="token operator"&gt;&amp;lt;&lt;/SPAN&gt;app&lt;SPAN class="token operator"&gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;\&lt;/SPAN&gt;
  --slot staging --target-slot production
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;App Service warms the staging instances, redirects traffic, and the old production becomes the new staging — the classic blue-green pattern, but free.&lt;/P&gt;
&lt;H3&gt;Prove it scales&lt;/H3&gt;
&lt;P&gt;The sample ships a k6 script that hammers &lt;CODE&gt;/mcp&lt;/CODE&gt; with &lt;CODE&gt;tools/call&lt;/CODE&gt; requests and tags every response with the &lt;CODE&gt;instance_id&lt;/CODE&gt; the server returned:&lt;/P&gt;
&lt;PRE class="language-bash" tabindex="0"&gt;&lt;CODE class="language-bash"&gt;&lt;SPAN class="token assign-left variable"&gt;BASE_URL&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;https://&lt;SPAN class="token operator"&gt;&amp;lt;&lt;/SPAN&gt;your-app&lt;SPAN class="token operator"&gt;&amp;gt;&lt;/SPAN&gt;.azurewebsites.net &lt;SPAN class="token punctuation"&gt;\&lt;/SPAN&gt;
  k6 run --summary-export&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;summary.json loadtest/k6-mcp.js
jq &lt;SPAN class="token string"&gt;'.metrics.mcp_instance_hits.values'&lt;/SPAN&gt; summary.json
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The output groups hits per instance tag. On a three-instance plan with a 60-second steady load you should see something close to:&lt;/P&gt;
&lt;PRE class="language-json" tabindex="0"&gt;&lt;CODE class="language-json"&gt;&lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt;
  &lt;SPAN class="token property"&gt;"count"&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1842&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
  &lt;SPAN class="token property"&gt;"instance0d3e2f..."&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;614&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
  &lt;SPAN class="token property"&gt;"instance7a91bc..."&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;612&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;
  &lt;SPAN class="token property"&gt;"instance19f0c4..."&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;616&lt;/SPAN&gt;
&lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Roughly 33% on each box — the App Service load balancer round-robining new connections, with no help from the application.&lt;/P&gt;
&lt;H3&gt;What I'd do next&lt;/H3&gt;
&lt;P&gt;The sample is intentionally a starting point. Two extensions are the obvious next moves:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Add Easy Auth.&lt;/STRONG&gt; Turn on App Service authentication, pick Entra ID, require auth on &lt;CODE&gt;/mcp&lt;/CODE&gt;. The token surfaces as headers; your tool handlers can use it to identify the calling agent without you owning any of the OAuth machinery.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Autoscale on CPU.&lt;/STRONG&gt; &lt;CODE&gt;instanceCount: 3&lt;/CODE&gt; is a starting point. Wire up &lt;CODE&gt;Microsoft.Insights/autoscalesettings&lt;/CODE&gt; against the plan and let it scale 3 → 10 on the prime-counting tool. The architecture already supports it — that's the whole point of stateless.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;Try it&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Sample repo:&lt;/STRONG&gt; &lt;A class="lia-external-url" href="https://github.com/seligj95/app-service-mcp-stateless-scale-python" target="_blank"&gt;github.com/seligj95/app-service-mcp-stateless-scale-python&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;MCP spec:&lt;/STRONG&gt; &lt;A class="lia-external-url" href="https://modelcontextprotocol.io/specification/2025-11-25" target="_blank"&gt;modelcontextprotocol.io/specification/2025-11-25&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;App Service docs:&lt;/STRONG&gt; &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/app-service/overview" target="_blank"&gt;learn.microsoft.com/azure/app-service/overview&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If you ship something with it, I'd love to hear how it held up.&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 15:49:16 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/apps-on-azure-blog/you-can-scale-mcp-servers-behind-a-load-balancer-on-app-service/ba-p/4520824</guid>
      <dc:creator>jordanselig</dc:creator>
      <dc:date>2026-05-18T15:49:16Z</dc:date>
    </item>
    <item>
      <title>"Not Available in Your Region" Isn't a Dead End: A Security Assessment of Global Deployments</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-foundry-blog/quot-not-available-in-your-region-quot-isn-t-a-dead-end-a/ba-p/4509804</link>
      <description>&lt;P&gt;You want to build with the latest Microsoft Foundry model. You checked the regional availability, and it isn't there yet — only Global Standard. Now you're weighing the capability you actually need against your instinct to keep everything in a regional SKU. This post is for that moment.&lt;/P&gt;
&lt;P&gt;This is a more common situation than people realise. Microsoft typically releases new and preview models on Global first, then expands into specific regions over time as capacity is built out. It isn't an oversight. It's how Microsoft makes new capabilities available to the broadest set of customers as quickly as possible. If you want those capabilities, Global is the path.&lt;/P&gt;
&lt;P&gt;The good news is that the path is well-paved. &lt;A href="https://learn.microsoft.com/en-us/azure/foundry/what-is-foundry" target="_blank" rel="noopener"&gt;Microsoft Foundry&lt;/A&gt; Global Standard is a secure, enterprise-grade deployment type backed by the same Azure controls you already rely on, with explicit contractual commitments on how your data is used. The data protection guarantees don't change because the model is newer or because regional capacity hasn't caught up — they're the same on day one of a new model on Global as they are on a model that's been deployed regionally for a year.&lt;/P&gt;
&lt;P&gt;The rest of this post walks through what Microsoft commits to, what you get out of the box, what you add on top, and the small number of cases where Global is genuinely the wrong choice. It's written for three audiences:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Developers&lt;/STRONG&gt; who want to know if they're allowed to ship on Global.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Solution architects&lt;/STRONG&gt; weighing the model choice against latency, quota, and resilience.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Security architects&lt;/STRONG&gt; who need to map Foundry's behaviour to enterprise controls before they sign off.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;&lt;STRONG&gt;Where does my data actually go?&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;This is the question that drives most of the concern, and the answer has two parts. Mixing them up is what causes the confusion.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Data at rest stays in the Azure geography of your Foundry resource.&lt;/STRONG&gt; That includes your configuration, uploaded files, stored artifacts, and logs. This is true for Global deployments, exactly the same as it is for regional ones. Microsoft commits to this in the &lt;A href="https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/" target="_blank" rel="noopener"&gt;Azure data residency page&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Data in processing is different.&lt;/STRONG&gt; When you send a prompt, the model processes it in memory for a few hundred milliseconds and returns a response. For Global deployments, that processing can happen in any Azure region where the model is hosted. This is how Microsoft gives you the highest available capacity and the broadest model access. The prompt and response are &lt;STRONG&gt;not persisted as part of inference processing&lt;/STRONG&gt; in the region that processed them.&lt;/P&gt;
&lt;P&gt;Once you separate "where my data lives" from "where the request runs," the residency picture becomes much clearer. Your customer data lives where you put it. The model that processes that data runs on Microsoft's global fleet. You can read the official description on the &lt;A href="https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/deployment-types" target="_blank" rel="noopener"&gt;Microsoft Foundry deployment types page&lt;/A&gt;.&lt;/P&gt;
&lt;img&gt;In a Global deployment, data at rest stays in your selected Azure geography. Inference requests are routed by Microsoft to whichever region has the best available capacity for the model.&lt;/img&gt;
&lt;H5&gt;&lt;STRONG&gt;What Microsoft commits&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;These commitments are contractual, not marketing language — they sit inside Microsoft's Product Terms and Data Protection Addendum. According to the &lt;A href="https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/data-privacy" target="_blank" rel="noopener"&gt;data privacy page for Azure Direct Models&lt;/A&gt;, your prompts and completions are not used to train Microsoft or OpenAI models, and your fine-tuned models are exclusively yours. Microsoft is also explicit that your data does not touch consumer OpenAI services:&lt;/P&gt;
&lt;P&gt;"Microsoft hosts the Azure Direct Models in Microsoft's Azure environment and Azure Direct Models do NOT interact with any services operated by Azure Direct Model providers, for example, OpenAI (e.g. ChatGPT, or the OpenAI API)."&lt;/P&gt;
&lt;P&gt;For partner and community models served through serverless APIs, the &lt;A href="https://learn.microsoft.com/en-us/azure/foundry-classic/how-to/concept-data-privacy" target="_blank"&gt;model catalog data privacy page&lt;/A&gt; confirms that those models are stateless and that Microsoft does not use prompts or outputs to train any model.&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;What Global does &lt;EM&gt;NOT &lt;/EM&gt;do&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;A Global deployment does not replicate your stored data into other regions, does not expose your prompts to consumer OpenAI services, and does not use your inputs or outputs for training. The only cross‑region behavior is the transient execution of model inference, which is stateless and not customer‑addressable.&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;What Global gives you on day one&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Before you configure anything yourself, a Global Standard deployment already includes the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Encryption at rest&lt;/STRONG&gt; using FIPS 140-2 compliant 256-bit AES with Microsoft-managed keys, applied transparently. See the &lt;A href="https://learn.microsoft.com/en-us/azure/foundry/concepts/architecture" target="_blank" rel="noopener"&gt;Microsoft Foundry architecture page&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Encryption in transit&lt;/STRONG&gt; using TLS 1.2 or higher, enforced by the platform.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Entra ID authentication&lt;/STRONG&gt; with &lt;STRONG&gt;Azure RBAC&lt;/STRONG&gt;. Foundry separates control-plane actions (like creating deployments) from data-plane actions (like invoking models), so you can grant least privilege without writing custom roles.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Tenant isolation.&lt;/STRONG&gt; Your Foundry resource lives in your subscription, your data lives in your tenant, and any fine-tuned models you create are exclusively yours.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Compliance inheritance.&lt;/STRONG&gt; Foundry runs on Azure and inherits Azure's compliance controls, including ISO 27001, SOC 1/2/3, HIPAA, PCI DSS, FedRAMP, and many others. The current authoritative list is in the &lt;A href="https://learn.microsoft.com/en-us/azure/compliance/offerings/" target="_blank" rel="noopener"&gt;Azure compliance offerings catalogue&lt;/A&gt; and the &lt;A href="https://www.microsoft.com/en-us/trust-center" target="_blank" rel="noopener"&gt;Microsoft Trust Center&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This baseline, with no extra configuration, already meets the security posture most enterprise teams target for new workloads.&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;The controls you already know&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Securing Microsoft Foundry uses the same building blocks as securing any other Azure PaaS service. If your team already knows how to lock down Azure Storage or Azure SQL, you already know how to lock down Foundry. Developers see familiar patterns. Architects get a clean fit into the landing zone. Security architects review the same control surfaces they review elsewhere.&lt;/P&gt;
&lt;img&gt;A typical secure deployment pattern. The application calls Foundry over a Private Link path, RAG sources sit behind their own private endpoints, and cross-cutting controls wrap the whole solution.&lt;/img&gt;
&lt;P&gt;The controls you'd apply are exactly what you'd expect:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Private networking: &lt;/STRONG&gt;Map the Foundry resource to a private IP using &lt;A href="https://learn.microsoft.com/en-us/azure/foundry/how-to/configure-private-link" target="_blank" rel="noopener"&gt;Private Link&lt;/A&gt;, back it with Private DNS, disable public network access, and route egress through Azure Firewall or an NVA. For agent workloads, Microsoft publishes a &lt;A href="https://learn.microsoft.com/en-us/azure/foundry/agents/how-to/virtual-networks" target="_blank" rel="noopener"&gt;private networking template for Foundry Agent Service&lt;/A&gt; you can deploy with Bicep or Terraform. Note that Private Link secures the path to the endpoint, not the routing of requests inside the model fleet — you get a private network path without giving up Global's capacity benefits.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure APIM GenAI gateway:&amp;nbsp;&lt;/STRONG&gt;Put&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities" target="_blank" rel="noopener"&gt;Azure API Management's GenAI gateway&lt;/A&gt; in front of your Foundry Global deployments to control&amp;nbsp;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;w&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;ho can call models, how much they can use, and under what policies, independent of where inference runs. It enforces &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;central auth, per‑consumer token limits, logging, and policy controls&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;, turning Global deployments from “globally available” into &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;centrally governed and auditable&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; services.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Identity and secrets: &lt;/STRONG&gt;Use Managed Identity for application-to-model calls and avoid embedding API keys in code. Apply Conditional Access to admin sign-in and use &lt;A href="https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-configure" target="_blank" rel="noopener"&gt;Privileged Identity Management&lt;/A&gt; for just-in-time elevation on admin roles.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Customer-managed keys: &lt;/STRONG&gt;If your compliance regime requires key ownership, enable CMK on the Foundry resource via &lt;A href="https://learn.microsoft.com/en-us/azure/key-vault/general/overview" target="_blank" rel="noopener"&gt;Azure Key Vault&lt;/A&gt; for rotation, revocation, and separation of duties.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Logging and monitoring: &lt;/STRONG&gt;Send diagnostics to a customer-owned &lt;A href="https://learn.microsoft.com/en-us/azure/azure-monitor/logs/log-analytics-workspace-overview" target="_blank" rel="noopener"&gt;Log Analytics workspace&lt;/A&gt;, enable the &lt;A href="https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log" target="_blank" rel="noopener"&gt;Azure Activity Log&lt;/A&gt;, and alert on token-usage spikes, unusual source IPs, and repeated authentication failures.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Governance at scale: &lt;/STRONG&gt;Use &lt;A href="https://learn.microsoft.com/en-us/azure/governance/policy/overview" target="_blank" rel="noopener"&gt;Azure Policy&lt;/A&gt; to enforce baselines (allowed locations, mandatory diagnostics, required private access) across your tenant, and pair it with &lt;A href="https://learn.microsoft.com/en-us/azure/defender-for-cloud/defender-for-cloud-introduction" target="_blank" rel="noopener"&gt;Microsoft Defender for Cloud&lt;/A&gt; for continuous posture management.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H5&gt;&lt;STRONG&gt;The risk that deserves attention: &lt;EM&gt;Data Exfiltration&lt;/EM&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;The most common security risk in any LLM deployment, on any SKU, is not Microsoft's infrastructure. It's the application layer. Examples include over-broad RAG retrieval pulling data the user shouldn't see, a tool-calling agent reaching an unintended destination, or a prompt that quietly echoes PII into a downstream log. These risks exist on Global, Data Zone, and Regional deployments equally. Choosing a more restrictive SKU does not mitigate them.&lt;/P&gt;
&lt;P&gt;The good news is that the mitigations are well understood and entirely under your control:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Use Private Endpoints for Storage, AI Search, Cosmos DB, and any other backing services your application uses for RAG, so retrieval traffic stays off the public internet.&lt;/LI&gt;
&lt;LI&gt;For tool-calling and agent scenarios, route outbound traffic through Azure Firewall with FQDN filtering, and keep an explicit allowlist of destinations the agent is permitted to reach.&lt;/LI&gt;
&lt;LI&gt;Apply DLP and redaction at the application layer for high-risk data classes, before that data ever becomes part of a prompt.&lt;/LI&gt;
&lt;LI&gt;Treat prompts and completions as transient. Don't persist them unless you have a specific, auditable reason to do so.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Doing this work on a Global deployment gives you exactly the same protection as doing it on a regional one.&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;Is Global Deployment right for you?&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;For most teams building on Microsoft Foundry, the answer is yes. Global Standard gives you:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The highest default quotas and the broadest model availability in the catalogue.&lt;/LI&gt;
&lt;LI&gt;First access to new models and features, often weeks or months ahead of regional rollouts.&lt;/LI&gt;
&lt;LI&gt;Elastic absorption of demand spikes through Microsoft's global capacity pool.&lt;/LI&gt;
&lt;LI&gt;A simpler architecture, with no regional duplication or custom failover logic.&lt;/LI&gt;
&lt;LI&gt;The full Azure security stack: Entra ID, RBAC, Private Link, CMK, Azure Policy, Defender for Cloud, and Monitor.&lt;/LI&gt;
&lt;LI&gt;Contractual guarantees that your data isn't used for training and isn't shared with consumer OpenAI services.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Global is not the right choice when a specific regulation explicitly requires inference processing to occur within a named country or zone. Note the word "processing" there: not data at rest, but the transient processing of the prompt itself. These cases do exist, particularly in some government, healthcare, and financial sector contexts, and Microsoft Foundry offers Data Zone (US or EU) and Regional SKUs for exactly those situations. But unless someone has pointed you at a specific clause in a specific regulation that names processing locality, you most likely don't need to step down from Global.&lt;/P&gt;
&lt;H5&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P&gt;Microsoft Foundry Global deployments are secure, compliant, and enterprise‑ready. Data at rest remains in your chosen Azure geography. Prompts and completions are not used for training and do not interact with consumer AI services. Encryption, identity, networking, logging, governance, and monitoring are all first‑class Azure controls.&amp;nbsp;Modified Abuse Monitoring is available for qualifying enterprise customers where required.&lt;/P&gt;
&lt;P&gt;A short summary for each audience:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Developers&lt;/STRONG&gt;: you can build on Global with confidence, using the Azure patterns you already know.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Solution architects&lt;/STRONG&gt;: Global is a sensible default unless a regulatory requirement specifically rules it out. Data Zone and Regional remain available for the cases that need them.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Security architects&lt;/STRONG&gt;: the control surfaces are familiar, the contractual commitments are explicit, and Global can be approved on the same basis as any other Azure PaaS service handling equivalent data classifications.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If you've been defaulting to a regional SKU "just to be safe," it's worth taking a fresh look at whether Global actually fits your workload. In most cases, it will.&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 15:45:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-foundry-blog/quot-not-available-in-your-region-quot-isn-t-a-dead-end-a/ba-p/4509804</guid>
      <dc:creator>shikhasinha</dc:creator>
      <dc:date>2026-05-18T15:45:46Z</dc:date>
    </item>
    <item>
      <title>Critical Shell/Explorer.exe Boot Loop and Flickering on Recent Windows 11 Insider Build</title>
      <link>https://techcommunity.microsoft.com/t5/windows-insider-program/critical-shell-explorer-exe-boot-loop-and-flickering-on-recent/m-p/4520800#M44006</link>
      <description>&lt;P&gt;Hello Windows Insider Team,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am writing to report a critical UI/system stability issue encountered immediately after updating to and restarting the recent Windows 11 Insider build on my machine.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Issue Description: Upon finalizing the update and rebooting, the desktop shell entered an infinite crash loop. The Windows background and active windows were flickering/blinking rapidly, and the Start Menu and Taskbar were completely missing/unresponsive.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Key Diagnostics:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Task Manager Stability: Interestingly, the Task Manager&amp;nbsp; remained completely stable and unaffected by the flickering, confirming the core OS and graphic drivers were functional.&lt;/P&gt;&lt;P&gt;Attempted Fixes: Restarting explorer.exe via Task Manager did not resolve the issue. Attempting to delete the IrisService registry key HKCU &amp;gt; SOFTWARE &amp;gt; Microsoft &amp;gt; Windows &amp;gt; CurrentVersion &amp;gt; IrisService only stabilized the Start Menu for a brief moment before the flickering loop resumed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Resolution: The system was only stabilized after bypassing the UI via Task Manager, booting into the Advanced Startup menu, and performing an "Uninstall latest feature update" rollback to the previous working Insider build.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I wanted to bring this to your attention as the crash loop completely breaks usability for users hitting this specific flight. Please let me know if you need any specific diagnostic logs from my previous build state to help isolate the bug.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Suryanarana N&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 15:22:40 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/windows-insider-program/critical-shell-explorer-exe-boot-loop-and-flickering-on-recent/m-p/4520800#M44006</guid>
      <dc:creator>suryanandikolla</dc:creator>
      <dc:date>2026-05-18T15:22:40Z</dc:date>
    </item>
    <item>
      <title>YellowKey BitLocker Exploit</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-intune/yellowkey-bitlocker-exploit/m-p/4520770#M23463</link>
      <description>&lt;P&gt;Hi All&lt;/P&gt;&lt;P&gt;I hope you are well.&lt;/P&gt;&lt;P&gt;Anyway, the YellowKey BitLocker Exploit has came to my attention.&lt;/P&gt;&lt;P&gt;We already have automatic&amp;nbsp; / silent BitLocker encryption enabled.&lt;/P&gt;&lt;P&gt;So, is there anything we should be doing (preferably via Intune) to mitigate this new exploit?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SK&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 15:05:12 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-intune/yellowkey-bitlocker-exploit/m-p/4520770#M23463</guid>
      <dc:creator>StuartK73</dc:creator>
      <dc:date>2026-05-18T15:05:12Z</dc:date>
    </item>
    <item>
      <title>Platform SSO during automated device enrollment is now generally available for macOS</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-entra-blog/platform-sso-during-automated-device-enrollment-is-now-generally/ba-p/4436813</link>
      <description>&lt;P&gt;Getting new devices into users’ hands quickly while maintaining strong identity and compliance has always required a careful balance. IT admins need streamlined deployment workflows, while end users expect a frictionless experience from the very first sign-in.&lt;/P&gt;
&lt;P&gt;Today, we’re excited to announce that &lt;STRONG&gt;Platform SSO (PSSO) during Automated Device Enrollment (ADE) on macOS is now generally available&lt;/STRONG&gt;. This capability simplifies onboarding by enabling device registration and Platform SSO setup to occur automatically during enrollment, eliminating extra steps for both IT administrators and end users.&lt;/P&gt;
&lt;H2&gt;Streamline setup for IT admins&lt;/H2&gt;
&lt;P&gt;Automated Device Enrollment already provides a powerful way to provision macOS devices with the right configuration, policies, and applications from the start. With Platform SSO now integrated directly into this flow, IT admins can:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Ensure Platform SSO is enabled as part of enrollment — no post-setup steps required.&lt;/LI&gt;
&lt;LI&gt;Standardize device identity and access configuration from day one.&lt;/LI&gt;
&lt;LI&gt;Reduce deployment complexity by avoiding separate workflows for completing SSO setup.&lt;/LI&gt;
&lt;LI&gt;Improve compliance posture immediately with identity-backed device trust.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;By incorporating PSSO into ADE, organizations can treat identity configuration as a core part of provisioning—not as an afterthought.&lt;/P&gt;
&lt;H2&gt;Reduce friction for end users&lt;/H2&gt;
&lt;P&gt;Previously, users enrolling macOS devices might encounter an additional step after setup to complete Platform SSO registration, typically requiring them to respond to a prompt or click a “Finish” action.&lt;/P&gt;
&lt;P&gt;With this new capability, that extra step is removed:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;No additional prompts to complete Platform SSO&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;No need for users to manually finish enrollment steps&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Immediate access to single sign-on experiences after setup&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The result is a smoother, more intuitive onboarding experience where users can begin working right away without interruption.&lt;/P&gt;
&lt;H2&gt;Understand how it works&lt;/H2&gt;
&lt;P&gt;With the &lt;STRONG&gt;EnableRegistrationDuringSetup&lt;/STRONG&gt; capability, Platform SSO registration is performed as part of the Automated Device Enrollment process. This ensures that:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The device is properly registered with Microsoft Entra ID during setup.&lt;/LI&gt;
&lt;LI&gt;Platform SSO is activated automatically.&lt;/LI&gt;
&lt;LI&gt;The user’s identity is fully integrated into the device experience from first sign-in.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Because this happens within the managed enrollment flow, it aligns naturally with existing MDM configurations and provisioning policies.&lt;/P&gt;
&lt;H2&gt;See why it matters&lt;/H2&gt;
&lt;P&gt;For organizations adopting modern identity and device management, reducing friction during onboarding is critical—not just for productivity, but for security consistency at scale.&lt;/P&gt;
&lt;P&gt;With Platform SSO during ADE:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;IT admins gain a predictable, simplified setup experience.&lt;/LI&gt;
&lt;LI&gt;Users avoid confusing or redundant steps during onboarding.&lt;/LI&gt;
&lt;LI&gt;Organizations achieve faster time-to-productivity with stronger identity integration.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This is especially impactful in environments where devices are deployed at scale, such as enterprise rollouts, education, or frontline scenarios.&lt;/P&gt;
&lt;H2&gt;Get started&lt;/H2&gt;
&lt;P&gt;Ready to simplify macOS onboarding? Configure Platform SSO during Automated Device Enrollment in Microsoft Intune to reduce setup friction and strengthen identity from day one.&lt;/P&gt;
&lt;P&gt;To enable Platform SSO during Automated Device Enrollment, follow the &lt;A href="https://review.learn.microsoft.com/en-us/mem/intune/configuration/configure-platform-sso-during-enrollment.md" target="_blank" rel="noopener"&gt;MDM configuration steps&lt;/A&gt; below:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Configure Automated Device Enrollment for macOS in your MDM solution.&lt;/LI&gt;
&lt;LI&gt;Ensure Platform SSO is configured for your organization.&lt;/LI&gt;
&lt;LI&gt;Enable the &lt;STRONG&gt;EnableRegistrationDuringSetup&lt;/STRONG&gt; setting as part of your deployment profile.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Once enabled, new devices will automatically complete Platform SSO setup during enrollment—with no additional user action required.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;-&lt;/STRONG&gt; Justin Ploegert&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Additional resources&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/entra/identity/devices/macos-psso" target="_blank" rel="noopener"&gt;macOS Platform single sign-on (PSSO) overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/entra/identity/devices/troubleshoot-macos-platform-single-sign-on-extension" target="_blank" rel="noopener"&gt;macOS Platform single sign-on known issues and troubleshooting&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://review.learn.microsoft.com/en-us/mem/intune/configuration/configure-platform-sso-during-enrollment.md" target="_blank" rel="noopener"&gt;Configure Platform SSO for macOS devices in Microsoft Intune&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/intune/device-configuration/settings-catalog/configure-platform-sso-scenarios-macos" target="_blank" rel="noopener"&gt;Single Sign-on scenarios&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/intune/device-configuration/settings-catalog/configure-platform-sso-during-enrollment" target="_blank" rel="noopener"&gt;Single Sign-on in ADE profile&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/intune/device-configuration/settings-catalog/configure-platform-sso-macos" target="_blank" rel="noopener"&gt;Platform SSO configuration guide for macOS devices using Microsoft Intune&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/intune/device-configuration/settings-catalog/configure-platform-sso-scenarios-macos" target="_blank" rel="noopener"&gt;Common Platform SSO scenarios for macOS devices&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/intune/intune-service/apps/apps-company-portal-macos" target="_blank" rel="noopener"&gt;Install Company Portal for macOS as a macOS LOB app&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/intune/intune-service/enrollment/device-enrollment-program-enroll-macos" target="_blank" rel="noopener"&gt;Set up automated device enrollment (ADE)&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Learn more about Microsoft Entra &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Prevent identity attacks, ensure least privilege access, unify access controls, and improve the experience for users with comprehensive identity and network access solutions across on-premises and clouds.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;⁠&lt;A href="https://www.microsoft.com/en-us/security/blog/products/microsoft-entra/" target="_blank" rel="noopener"&gt;Microsoft Entra News and Insights | Microsoft Security Blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;⁠&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-entra-blog/bg-p/Identity" target="_blank" rel="noopener"&gt;⁠Microsoft Entra blog | Tech Community&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;⁠&lt;A href="https://learn.microsoft.com/en-us/entra/" target="_blank" rel="noopener"&gt;Microsoft Entra documentation | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/t5/microsoft-entra/bd-p/Azure-Active-Directory" target="_blank" rel="noopener"&gt;Microsoft Entra discussions | Microsoft Community&amp;nbsp;&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 18 May 2026 15:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-entra-blog/platform-sso-during-automated-device-enrollment-is-now-generally/ba-p/4436813</guid>
      <dc:creator>Justin-Ploegert</dc:creator>
      <dc:date>2026-05-18T15:00:00Z</dc:date>
    </item>
    <item>
      <title>Legal Teams: Drafting Documents Securely with Copilot</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-copilot/legal-teams-drafting-documents-securely-with-copilot/m-p/4520743#M6474</link>
      <description>&lt;P data-slot-rendered-content="true"&gt;In today’s legal environment, speed matters just as much as accuracy. Legal teams are under constant pressure to draft contracts faster, review documents more efficiently, and maintain airtight compliance standards. At the same time, firms and corporate legal departments are handling larger volumes of sensitive information than ever before. This is where AI-powered tools like Microsoft Copilot are transforming the way legal professionals work.&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/legal-teams-drafting-documents-securely-with-copilot/" target="_blank"&gt;https://dellenny.com/legal-teams-drafting-documents-securely-with-copilot/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 14:36:56 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-copilot/legal-teams-drafting-documents-securely-with-copilot/m-p/4520743#M6474</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2026-05-18T14:36:56Z</dc:date>
    </item>
    <item>
      <title>[MMR Call Redirection] ISV submission form broken — requesting allowlisting channel</title>
      <link>https://techcommunity.microsoft.com/t5/azure-virtual-desktop-feedback/mmr-call-redirection-isv-submission-form-broken-requesting/idi-p/4520727</link>
      <description>&lt;P&gt;The ISV submission form referenced on this page is currently unavailable. Here is&lt;A class="lia-external-url" href="https://forms.microsoft.com/r/BtDs4pdYzB" target="_blank"&gt; the URL&lt;/A&gt;&lt;/P&gt;&lt;P&gt;We represent an ISV (Ringover — app.ringover.com) with a completed PoC validating MMR Call Redirection on AVD and Windows 365.&lt;/P&gt;&lt;P&gt;Full submission pack is ready. Please advise on the correct submission channel or restore The form. Contact: hicham.kadiri [at] ringover.com&lt;/P&gt;&lt;P&gt;Thanks in advance for your feedback.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Hicham.&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2026 13:56:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-virtual-desktop-feedback/mmr-call-redirection-isv-submission-form-broken-requesting/idi-p/4520727</guid>
      <dc:creator>Hicham_KADIRI</dc:creator>
      <dc:date>2026-05-18T13:56:00Z</dc:date>
    </item>
  </channel>
</rss>

