{"id":24883,"date":"2025-10-29T12:59:35","date_gmt":"2025-10-29T19:59:35","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=24883"},"modified":"2026-02-10T04:00:47","modified_gmt":"2026-02-10T12:00:47","slug":"migrating-from-idcrl-authentication-to-modern-authentication-in-sharepoint","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/migrating-from-idcrl-authentication-to-modern-authentication-in-sharepoint\/","title":{"rendered":"Migrating from IDCRL authentication to modern authentication in SharePoint"},"content":{"rendered":"<p>In the next few months, Microsoft will be removing the legacy authentication protocol known as IDCRL (Identity Client Run Time Library) in SharePoint and force calls to rely on OpenID connect and OAuth Protocols. Since 2018, regular sign-in for services such as OneDrive and SharePoint has always relied on the more secure OpenID Connect and OAuth protocols; going forward we will enforce this for all authentical calls.<\/p>\n<p><strong>Starting February 16th, 2026, legacy client authentication will be blocked by default for SharePoint Online and OneDrive for Business.<\/strong> Organizations wishing to (temporarily) continue with legacy client authentication can get an extension till 30th April 2026. To get this temporary, one time extension, use PowerShell and set both <em>AllowLegacyAuthProtocolsEnabledSetting<\/em> and <em>LegacyAuthProtocolsEnabled<\/em> to TRUE. This will allow legacy calls\u00a0to continue till 30th April 2026.<\/p>\n<p><span data-contrast=\"auto\">Starting\u00a0May 1<\/span><span data-contrast=\"auto\">st<\/span><span data-contrast=\"auto\">, 2026, legacy client authentication will be blocked for SharePoint Online and OneDrive for\u00a0Business, and\u00a0cannot be re-enabled.\u00a0Organizations should necessarily move to modern auth (using steps mentioned below) by 30<\/span><span data-contrast=\"auto\">th<\/span><span data-contrast=\"auto\">\u00a0April.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:257}\">\u00a0<\/span><\/p>\n<h2><strong>How to access telemetry to check whether your organization has made any IDCRL Calls<\/strong><\/h2>\n<p>To access telemetry please log into the Microsoft Purview portal. Typically, users with following roles\/permissions are allowed access to this portal.<\/p>\n<ul>\n<li>Global Administrator<\/li>\n<li>Compliance Administrator<\/li>\n<li>Purview Compliance Administrator<\/li>\n<li>Role Management Role (to manage role groups)<\/li>\n<li>Collection Admin, Data Curator, or Data Reader for governance tasks.<\/li>\n<\/ul>\n<p>Go to <a href=\"https:\/\/compliance.microsoft.com\">https:\/\/compliance.microsoft.com<\/a> or <a href=\"https:\/\/purview.microsoft.com\">https:\/\/purview.microsoft.com<\/a> depending on your organization\u2019s configuration. Use your organizational account (not a personal Microsoft account).<\/p>\n<p>Once logged in, please navigate to \u201cAudit\u201d on the left hand side panel. Then under \u201cActivities \u2013 operations name\u201d please select \u201cIDCRLSuccessSignIn\u201d as shown in screenshot 1. Select other filters as required and click on Search.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic1-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-24884\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic1-1.png\" alt=\"pic1 image\" width=\"880\" height=\"429\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic1-1.png 880w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic1-1-300x146.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic1-1-768x374.png 768w\" sizes=\"(max-width: 880px) 100vw, 880px\" \/><\/a><\/p>\n<p>You will get telemetry output similar to screenshot 2 and 3 depending upon the information available.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic2-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-24885\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic2-1.png\" alt=\"pic2 image\" width=\"884\" height=\"423\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic2-1.png 884w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic2-1-300x144.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic2-1-768x367.png 768w\" sizes=\"(max-width: 884px) 100vw, 884px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic3.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-24886\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic3.png\" alt=\"pic3 image\" width=\"883\" height=\"426\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic3.png 883w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic3-300x145.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/10\/pic3-768x371.png 768w\" sizes=\"(max-width: 883px) 100vw, 883px\" \/><\/a><\/p>\n<h2>How to mitigate IDCRL calls and move to modern Authentication<\/h2>\n<p>Definition of IDCRL Calls: There are 2 categories of calls referred to as IDCRL calls<\/p>\n<ol>\n<li><strong>Category 1:<\/strong> Any use of the\u00a0SharePointOnlineCredentials\u00a0library within your codebase is an indication of IDCRL calls as\n<ul>\n<li>This library leverages the IDCRL protocol under the hood for authentication with SharePoint Online. If your application or script is calling\u00a0SharePointOnlineCredentials, it is using IDCRL authentication.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Category 2:<\/strong> All calls to the following endpoints are using IDCRL protocol:<\/li>\n<\/ol>\n<p style=\"padding-left: 80px;\">https:\/\/login.microsoftonline.com\/rst2.srf\u00a0(used to obtain the SAML BinarySecurityToken)\nhttps:\/\/TENANT.sharepoint.com\/_vti_bin\/idcrl.svc\u00a0(used to exchange the BinarySecurityToken for the SPOIDCRL cookie)<\/p>\n<p>Users should consider moving to modern auth protocols by using Microsoft Authentication Library (MSAL) for OAuth as this will ensure safe and secure continuity for<em><u> both Category 1 and Category 2<\/u><\/em> calls mentioned above. MSAL provides methods to acquire security tokens that can be used to authenticate apps and scripts.<\/p>\n<p>For comprehensive technical guidance on migrating to modern authentication, please consult this resource: <a href=\"https:\/\/learn.microsoft.com\/en-us\/sharepoint\/dev\/sp-add-ins\/using-csom-for-dotnet-standard#using-modern-authentication-with-csom-for-net-standard:~:text=standard%20targeted%20project.-,Using%20modern%20authentication%20with%20CSOM%20for%20.NET%20Standard,-Using%20user\/password\">Using modern authentication with CSOM for .NET Standard<\/a>.<\/p>\n<p>Additionally, your application must be registered in Microsoft Entra to acquire access tokens. For detailed steps on app registration, see: <a href=\"https:\/\/learn.microsoft.com\/en-us\/sharepoint\/dev\/sp-add-ins\/using-csom-for-dotnet-standard#using-modern-authentication-with-csom-for-net-standard:~:text=Configuring%20an%20application%20in%20Azure%20AD\">Configuring an application in Azure AD<\/a>.<\/p>\n<p>For more details and context on MSAL and OAuth, please visit the following links:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.microsoft.com\/en-us\/security\/business\/security-101\/what-is-oauth#:~:text=To%20get%20started,%20invest%20in%20an%20identity%20provider,Azure%20Active%20Directory)%20supports%20all%20OAuth%202.0%20flows.?msockid=379bf2a1877564862cbae667868565d5\">What Is OAuth? | Microsoft Security<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity-platform\/v2-oauth2-auth-code-flow\">Microsoft identity platform and OAuth 2.0 authorization code flow &#8211; Microsoft identity platform | Microsoft Learn<\/a>.<\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity-platform\/msal-overview\">Overview of the Microsoft Authentication Library (MSAL) &#8211; Microsoft identity platform | Microsoft Learn<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Alternative fix for category 1 calls (mentioned above):<\/strong> If your application or script leverages the &#8220;<span data-teams=\"true\"><em>SharePointOnlineCredentials<\/em>\u201d\u202flibrary (from the Microsoft.SharePointOnline.CSOM NuGet package), we have released a NuGet package which will give the option of transitioning from IDCRL to Modern Authentication protocol. The upgraded nuget package is available from <a id=\"menur82d\" class=\"fui-Link ___1q1shib f2hkw1w f3rmtva f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1s184ao f1mk8lai fnbmjn9 f1o700av f13mvf36 f1cmlufx f9n3di6 f1ids18y f1tx3yz7 f1deo86v f1eh06m1 f1iescvh fhgqx19 f1olyrje f1p93eir f1nev41a f1h8hb77 f1lqvz6u f10aw75t fsle3fq f17ae5zn\" title=\"https:\/\/www.nuget.org\/packages\/microsoft.sharepointonline.csom\/\" href=\"https:\/\/www.nuget.org\/packages\/Microsoft.SharePointOnline.CSOM\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Link NuGet Gallery | Microsoft.SharePointOnline.CSOM\">NuGet Gallery | Microsoft.SharePointOnline.CSOM<\/a>.<\/span><\/p>\n<p>In some rare cases, calls are directly being made to <em>GetAuthenticationCookie<\/em> method to acquire cookies; This method is getting deprecated in the newer version of the NuGet package and would be replaced by AcquireTokenAsync method which will acquire OAuth token.<\/p>\n<p>Additionally, if you have enabled Multi Factor Authentication in your tenant, then you need to pass a fourth parameter with <em>SharePointOnlineCredentials<\/em> constructor i.e (username, password, useModernAuth:true, interactiveAuth:<strong><em><u>true)<\/u><\/em><\/strong>. The fourth parameter i.e \u201c<em>true<\/em>\u201d will allow for user intervention and enable interactive auth for the tenant.<\/p>\n<p>In case admins don\u2019t want user intervention then they can use App Only Authentication while registering their app on Entra as mentioned above.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the next few months, Microsoft will be removing the legacy authentication protocol known as IDCRL (Identity Client Run Time Library) in SharePoint.<\/p>\n","protected":false},"author":69078,"featured_media":24888,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[166],"tags":[39,162],"class_list":["post-24883","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sharepoint","tag-authentication","tag-sharepoint"],"acf":[],"blog_post_summary":"<p>In the next few months, Microsoft will be removing the legacy authentication protocol known as IDCRL (Identity Client Run Time Library) in SharePoint.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/24883","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69078"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=24883"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/24883\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/24888"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=24883"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=24883"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=24883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}