{"id":71341,"date":"2025-06-25T10:24:26","date_gmt":"2025-06-25T18:24:26","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/devops\/?p=71341"},"modified":"2025-09-11T10:01:01","modified_gmt":"2025-09-11T18:01:01","slug":"removing-azure-resource-manager-reliance-on-azure-devops-sign-ins","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/removing-azure-resource-manager-reliance-on-azure-devops-sign-ins\/","title":{"rendered":"Removing Azure Resource Manager reliance on Azure DevOps sign-ins"},"content":{"rendered":"<p>Azure DevOps will no longer depend on the Azure Resource Manager (ARM) resource (https:\/\/management.azure.com) when you sign in or refresh Microsoft Entra access tokens. Previously, Azure DevOps required the ARM audience during sign-in and token refresh flows. This requirement meant administrators had to allow all Azure DevOps users to satisfy ARM-based <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/organizations\/accounts\/conditional-access-policies\">Conditional Access policies<\/a> to maintain access to ADO.<\/p>\n<p>Tokens for Azure DevOps no longer require the ARM audience. As a result, you can manage Azure DevOps access more effectively by creating Azure DevOps-specific Conditional Access policy instead of relying on the ARM Conditional Access policy to enforce access controls on ADO usage. <strong>These changes will go into effect on <del datetime=\"2025-07-15T13:45:30+00:00\">July 28, 2025<\/del> September 2, 2025 and make it to all organizations by September 18, 2025.<\/strong><\/p>\n<h2>Does this impact me?<\/h2>\n<p>If you have previously set up a Conditional Access policy for <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity\/conditional-access\/concept-conditional-access-cloud-apps#windows-azure-service-management-api\">Windows Azure Service Management API application<\/a>, this Conditional Access policy no longer covers Azure DevOps signins. You will need to setup a new ADO-exclusive Conditional Access policy in order to get continued coverage of Azure DevOps. \u00a0<\/p>\n<h2>How do I set up a Conditional Access policy for Azure DevOps?<\/h2>\n<p>As a tenant admin, you can use <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity\/conditional-access\/overview\">Conditional Access policies<\/a> to block or grant user access to Azure resources if they meet certain conditions (e.g. have an accepted IP address, belong to specific Entra groups, access from a given device, etc.) or complete actions like multifactor authentication.<\/p>\n<p>To create a conditional access policy that targets the Azure DevOps resource specifically:<\/p>\n<ol>\n<li>Go to the <a href=\"https:\/\/portal.azure.com\"><strong>Azure Portal<\/strong><\/a> and find the <strong>&#8220;Microsoft Entra Conditional Access&#8221;<\/strong> service. <\/li>\n<li>Select <strong>&#8220;Policies&#8221;<\/strong> on the right sidebar. <\/li>\n<li>Select the <strong>&#8220;+ New policy&#8221;<\/strong> button. <\/li>\n<li>Provide the policy a name and configure other settings as desired. <\/li>\n<li>For the <strong>&#8220;Target resources&#8221;<\/strong> assignments, toggle <strong>&#8220;Select resources&#8221;<\/strong> and add the <strong>&#8220;Microsoft Visual Studio Team Services&#8221;<\/strong> or <strong>&#8220;Azure DevOps&#8221;<\/strong> resource (resource id: <code>499b84ac-1321-427f-aa17-267ca6975798<\/code>) to the list of target resources. <\/li>\n<li>Select <strong>Save<\/strong> to apply this new policy.<\/li>\n<\/ol>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2025\/06\/image-16.png\"><img decoding=\"async\" width=\"995\" height=\"1261\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2025\/06\/image-16.png\" alt=\"Setup a new conditional access policy for Azure DevOps\" class=\"alignnone size-full wp-image-71827\" srcset=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2025\/06\/image-16.png 995w, https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2025\/06\/image-16-237x300.png 237w, https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2025\/06\/image-16-808x1024.png 808w, https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2025\/06\/image-16-768x973.png 768w\" sizes=\"(max-width: 995px) 100vw, 995px\" \/><\/a><\/p>\n<p>Learn more about the different flavors of Conditional Access policies you can set by reading the <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity\/conditional-access\/\">Microsoft Entra docs<\/a>.<\/p>\n<h3>Notable exceptions<\/h3>\n<p>Continued access to ARM is still required for the following Azure DevOps users:<\/p>\n<ul>\n<li><strong>Billing administrators<\/strong> need access to ARM to set up billing and access subscriptions.<\/li>\n<li><strong>Service Connection creators<\/strong> require access to ARM for ARM role assignments and updates to managed service identities (MSIs).<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Azure DevOps will no longer depend on the Azure Resource Manager (ARM) resource (https:\/\/management.azure.com) when you sign in or refresh Microsoft Entra access tokens. Previously, Azure DevOps required the ARM audience during sign-in and token refresh flows. This requirement meant administrators had to allow all Azure DevOps users to satisfy ARM-based Conditional Access policies to [&hellip;]<\/p>\n","protected":false},"author":43580,"featured_media":71827,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[224,1,251],"tags":[],"class_list":["post-71341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-devops","category-security"],"acf":[],"blog_post_summary":"<p>Azure DevOps will no longer depend on the Azure Resource Manager (ARM) resource (https:\/\/management.azure.com) when you sign in or refresh Microsoft Entra access tokens. Previously, Azure DevOps required the ARM audience during sign-in and token refresh flows. This requirement meant administrators had to allow all Azure DevOps users to satisfy ARM-based Conditional Access policies to [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/71341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/43580"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=71341"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/71341\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/71827"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=71341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=71341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=71341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}