<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Legacy Things]]></title><description><![CDATA[Le radici nascoste dell’IT moderno]]></description><link>https://www.legacythings.it</link><image><url>https://substackcdn.com/image/fetch/$s_!kkFJ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5f5b73-cbd0-43af-957a-01e6c2c39191_1024x1024.png</url><title>Legacy Things</title><link>https://www.legacythings.it</link></image><generator>Substack</generator><lastBuildDate>Fri, 17 Apr 2026 08:28:21 GMT</lastBuildDate><atom:link href="https://www.legacythings.it/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Marco Lelli]]></copyright><language><![CDATA[it]]></language><webMaster><![CDATA[legacythings@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[legacythings@substack.com]]></itunes:email><itunes:name><![CDATA[Marco Lelli]]></itunes:name></itunes:owner><itunes:author><![CDATA[Marco Lelli]]></itunes:author><googleplay:owner><![CDATA[legacythings@substack.com]]></googleplay:owner><googleplay:email><![CDATA[legacythings@substack.com]]></googleplay:email><googleplay:author><![CDATA[Marco Lelli]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Capitolo #2 – Una questione di fiducia]]></title><description><![CDATA[Oltre il limite del perimetro]]></description><link>https://www.legacythings.it/p/capitolo-2-una-questione-di-fiducia</link><guid isPermaLink="false">https://www.legacythings.it/p/capitolo-2-una-questione-di-fiducia</guid><dc:creator><![CDATA[Marco Lelli]]></dc:creator><pubDate>Mon, 30 Mar 2026 06:15:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ekbm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>English version available here &#8594;<a href="https://www.legacythings.it/p/chapter-2-a-matter-of-trust"> [EN]</a></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ekbm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ekbm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Ekbm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Ekbm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Ekbm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ekbm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3021479,&quot;alt&quot;:&quot;Illustrazione di un&#8217;auto da Formula 1 in curva su pista, usata come metafora del capitolo sulla fiducia e sui limiti del perimetro di autenticazione.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192079223?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Illustrazione di un&#8217;auto da Formula 1 in curva su pista, usata come metafora del capitolo sulla fiducia e sui limiti del perimetro di autenticazione." title="Illustrazione di un&#8217;auto da Formula 1 in curva su pista, usata come metafora del capitolo sulla fiducia e sui limiti del perimetro di autenticazione." srcset="https://substackcdn.com/image/fetch/$s_!Ekbm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Ekbm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Ekbm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Ekbm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd745b109-49ff-4a4b-9282-bbea9ab0fb27_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Primavera 1993</strong>, chi scrive sta ancora ultimando gli studi.</p><p>Una domenica di aprile si corre il GP di F1 a Donington, UK. Per il leggendario <strong>Ayrton Senna</strong> &#232; un anno difficile, la sua McLaren &#232; inferiore alla concorrenza ed in griglia parte quinto, ma c&#8217;&#232; un dettaglio che gioca a suo favore: <em><strong>piove!</strong> </em>E quando piove la sua <strong>fiducia</strong> nel mezzo diventa totale.</p><p>Semaforo verde, scatta come una furia e nel primo giro si porta gi&#224; in testa per un dominio assoluto, nessun altro ha la sua confidenza con la pista bagnata.</p><p>Nel resto del mondo, in quegli stessi mesi, qualcosa di altrettanto straordinario sta prendendo forma<s>,</s> cambiando radicalmente il modo in cui le persone si <strong>fidano</strong> dei sistemi informatici.</p><p>Con la diffusione del <strong>World Wide Web</strong> e la distribuzione del browser <strong>NCSA Mosaic</strong>, Internet smette di essere un ambiente riservato a pochi addetti ai lavori e diventa improvvisamente accessibile.<br>Chiunque pu&#242; collegarsi, esplorare risorse remote, interagire con sistemi che non conosce e che non controlla.</p><p>Fino a quel momento, i modelli di sicurezza erano stati costruiti attorno a confini chiari: reti aziendali, sistemi locali, domini ben definiti.<br>Con il Web, invece, ci si affida a servizi lontani, identit&#224; remote, infrastrutture che vivono fuori dal proprio controllo diretto.</p><p>&#200; una rivoluzione culturale prima ancora che tecnologica.</p><p>Nei sistemi Enterprise il tema della fiducia si gioca su due fronti contrapposti.</p><p>Da un lato, l&#8217;universo <strong>Windows</strong> si diffonde basandosi su un modello di fiducia chiuso e perimetrale, che coincide con i primi domini.<br>&#200; qui che viene introdotto per la prima volta un concetto esplicito di <strong>Trust</strong>, fondato su un protocollo proprietario: <strong>NTLM</strong>.<br>Un meccanismo pensato per ambienti controllati, dove la fiducia &#232; una configurazione statica e dichiarata.</p><p>Dall&#8217;altro, il mondo <strong>Unix</strong> e accademico utilizza da tempo modelli di autenticazione distribuita, che raggiungono una maturit&#224; significativa con <strong>Kerberos V5</strong>.<br>Qui la fiducia non &#232; solo un collegamento tra sistemi, ma un elemento progettato per ambienti aperti, interconnessi e potenzialmente eterogenei.</p><p>Sono due visioni della <strong>fiducia</strong> profondamente diverse, nate per rispondere a esigenze diverse.</p><p>Con l&#8217;introduzione di <strong>Active Directory</strong><s>,</s> Microsoft compie per&#242; una scelta fondamentale: accoglie i valori dell&#8217;altro modello e <strong>adotta Kerberos come base fondante del nuovo sistema di autenticazione</strong>, avviando un percorso di convergenza tra questi due mondi.<br>Inizialmente i modelli convivono, affiancati pi&#249; che integrati, come compromesso necessario per garantire compatibilit&#224; con il passato.</p><p>&#200; solo con <strong>Windows Server 2003</strong> che arriva una convergenza pi&#249; matura, segnando il passaggio verso un approccio <em>Kerberos-first</em>, in cui la fiducia diventa parte dell&#8217;architettura<s>,</s> e non solo un collegamento tra perimetri separati.</p><p>Eppure, nonostante questa convergenza sia avvenuta da oltre vent&#8217;anni, non sempre &#232; stata compresa fino in fondo.<br>Come se, paradossalmente, <strong>fosse mancata proprio la fiducia</strong> in quel processo che voleva riunire scuole di pensiero inizialmente molto distanti.</p><p>Questo capitolo parte da qui.<br>Da una fiducia che si &#232; evoluta tecnicamente, ma non sempre concettualmente, e dalle conseguenze di non aver davvero compreso quel cambiamento fino in fondo.</p><h2>Cos&#8217;&#232; e come funziona</h2><p>Abbiamo capito che il concetto di &#8220;Trust&#8221; arriva da lontano, proviamo adesso di declinarlo in maniera pratica nel contesto Active Directory.</p><h3>Meccanismi di base di una Trust</h3><p>Partiamo da un <s>concetto </s>principio che viene molto spesso dato per scontato: il Dominio di autenticazione.</p><p>Un Dominio &#232; un perimetro entro il quale &#232; presente una &#8220;fiducia&#8221; implicita tra gli oggetti che ne fanno parte, mediata da opportuni permessi che definiscono chi accede a cosa e con che modalit&#224; (ACL, ne abbiamo parlato nel capitolo 1). Tra perimetri differenti (Domini) non c&#8217;&#232; fiducia implicita e di conseguenza l&#8217;accesso non &#232; consentito.</p><p>L&#8217;elemento che contraddistingue tutti gli oggetti facenti parte dello stesso Dominio &#232; il <strong>Security Identifier (SID)</strong>.</p><p>Si tratta di un attributo fondamentale del modello di sicurezza di Windows: una stringa immutabile che identifica in modo univoco un&#8217;entit&#224; (utente, gruppo, computer&#8230;) indipendentemente dal nome che le viene assegnato.</p><p>Un SID ha una struttura ben precisa e pu&#242; essere rappresentato in forma leggibile come segue:</p><p>S-1-5-21-&lt;DomainIdentifier&gt;-&lt;RelativeIdentifier&gt;</p><p>La prima parte del SID identifica <strong>l&#8217;autorit&#224; che lo ha emesso</strong> e il <strong>contesto di sicurezza</strong> in cui l&#8217;oggetto &#232; stato creato.<br>In particolare, la sequenza S-1-5-21 indica che il SID appartiene a un contesto di dominio Windows, mentre il valore &lt;DomainIdentifier&gt; rappresenta l&#8217;identit&#224; del dominio stesso.</p><p>Questo significa che <strong>tutti gli oggetti appartenenti allo stesso dominio condividono esattamente la stessa porzione iniziale del SID</strong>.</p><p>L&#8217;ultima parte, chiamata <strong>Relative Identifier (RID)</strong>, &#232; invece ci&#242; che rende l&#8217;oggetto univoco all&#8217;interno di quel dominio.<br>Il RID viene assegnato dal Domain Controller al momento della creazione dell&#8217;oggetto e distingue un utente, un gruppo o un computer da tutti gli altri che condividono lo stesso Domain SID.</p><p>In altre parole, il SID racconta sempre due verit&#224;:</p><ul><li><p><em>da dove proviene l&#8217;oggetto</em> (il dominio che lo ha emesso)</p></li><li><p><em>chi &#232; l&#8217;oggetto</em> all&#8217;interno di quel dominio</p></li></ul><p>Questa separazione &#232; uno dei pilastri del modello di sicurezza di Active Directory, se volete approfondire l&#8217;argomento vi lascio il riferimento all&#8217;<a href="https://learn.microsoft.com/en-gb/windows-server/identity/ad-ds/manage/understand-security-identifiers">articolo ufficiale</a>.</p><p>Grazie a questo meccanismo, sin dalla prima versione dei Domini NT, &#232; stato reso disponibile il meccanismo di <strong>Domain Trust</strong>, inizialmente basato su protocollo <strong>NTLM</strong>.</p><p>&#200; bene ricordare che, anche concettualmente, la fiducia ha una direzione precisa.<s>,</s> <s>l</s>La stessa cosa vale per la Domain Trust<s>,</s> dove <strong>chi offre le risorse</strong> (es: un File Server in un Dominio di risorse) <strong>concede fiducia a</strong> <strong>chi offre le identit&#224;</strong> (Dominio delle utenze). Questa direzione viene rappresentata con una freccia che va dalle risorse alle identit&#224;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CzK5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CzK5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png 424w, https://substackcdn.com/image/fetch/$s_!CzK5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png 848w, https://substackcdn.com/image/fetch/$s_!CzK5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png 1272w, https://substackcdn.com/image/fetch/$s_!CzK5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CzK5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png" width="540" height="184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:184,&quot;width&quot;:540,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3568,&quot;alt&quot;:&quot;Schema della direzione di una trust tra un dominio di risorse e un dominio utenti, con freccia da resource.ad verso user.ad.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192079223?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Schema della direzione di una trust tra un dominio di risorse e un dominio utenti, con freccia da resource.ad verso user.ad." title="Schema della direzione di una trust tra un dominio di risorse e un dominio utenti, con freccia da resource.ad verso user.ad." srcset="https://substackcdn.com/image/fetch/$s_!CzK5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png 424w, https://substackcdn.com/image/fetch/$s_!CzK5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png 848w, https://substackcdn.com/image/fetch/$s_!CzK5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png 1272w, https://substackcdn.com/image/fetch/$s_!CzK5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeb0c260-d65f-448d-baa3-336d4a3af830_540x184.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Direzione di una Trust</figcaption></figure></div><p>Quando viene attivata una Trust<s>,</s> il dominio di risorse non importa utenti n&#233; replica oggetti dal dominio trusted. <s><br></s>Accetta invece una cosa molto pi&#249; semplice e molto pi&#249; potente: <strong>i Security Identifier emessi dall&#8217;altro lato</strong>.</p><p>Nel momento in cui un oggetto esterno viene utilizzato per la prima volta &#8212; ad esempio aggiungendolo a un gruppo locale o assegnandogli un permesso &#8212; Active Directory crea automaticamente un <strong>Foreign Security Principal</strong>.</p><p>Un <a href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/5aa09c90-c5db-4e97-98d0-b7cdd6bc1bfe">Foreign Security Principal</a> non &#232; un vero account locale, ma un <strong>puntatore</strong>: un oggetto minimale che contiene esclusivamente il SID dell&#8217;entit&#224; remota.<br>Serve a consentire al dominio di risorse di includere identit&#224; esterne nei propri meccanismi di autorizzazione, senza doverne conoscere la struttura o replicarne gli attributi.</p><p>Ancora una volta, tutto ruota attorno alla <strong>fiducia</strong>: il dominio di risorse non sa <em>chi</em> sia quell&#8217;oggetto, ma si fida del fatto che il suo SID sia stato emesso da un&#8217;autorit&#224; considerata <em>attendibile</em>.</p><h3>L&#8217;evoluzione delle trust: da collegamenti puntuali a fiducia architetturale</h3><p>Nel primo modello di domini Windows, la fiducia &#232; un concetto semplice e molto concreto: due domini si conoscono, si parlano, si fidano l&#8217;uno dell&#8217;altro.<br>Nulla di pi&#249;. Ogni trust &#232; un collegamento esplicito, costruito a mano, che vale solo tra due estremi ben definiti. Se serve altro, si crea un&#8217;altra trust. E poi un&#8217;altra ancora.</p><p>&#200; un modello coerente con l&#8217;epoca: ambienti piccoli, perimetri chiari, poche interazioni.<br>Ma &#232; anche un modello che non scala. Ogni nuova relazione aumenta la complessit&#224; e, soprattutto, rende la fiducia fragile: basta dimenticare un collegamento perch&#233; qualcosa smetta di funzionare.</p><p>Con l&#8217;arrivo di Active Directory e la nascita del concetto di <em>forest</em>, Microsoft cambia approccio.<br>I domini non sono pi&#249; isole indipendenti, ma parti di una struttura pi&#249; ampia, pensata per condividere uno spazio di fiducia comune. A supportare un modello gerarchico di Domini nascono le trust <strong>intra-forest<s>,</s> che </strong>diventano automatiche, bidirezionali e transitive: la fiducia non &#232; pi&#249; una decisione puntuale, ma una propriet&#224; della struttura.</p><p>&#200; un passaggio fondamentale: per la prima volta la fiducia smette di essere un insieme di eccezioni e diventa una regola portante.</p><p>Quando per&#242; serve uscire da questo perimetro (collaborare con domini esterni, ambienti legacy o foreste completamente separate) si torna temporaneamente al passato.<br>Come eredit&#224; delle Domain Trust nascono le <strong>External Trust</strong>: collegamenti espliciti, non transitivi, volutamente limitati. Un compromesso necessario, pensato per contenere il rischio e ridurre l&#8217;esposizione.</p><p>Il problema &#232; che, nel frattempo, il mondo &#232; andato avanti.</p><p>Con <strong>Windows Server 2003</strong> arriva il tentativo di sintesi definitiva: la <strong>Forest Trust</strong>.<br>Non pi&#249; una fiducia tra singoli domini, ma tra insiemi di domini. Non pi&#249; un&#8217;eccezione, ma un&#8217;estensione coerente del modello Kerberos-first introdotto con Active Directory. La fiducia diventa finalmente parte anche delle architetture estese: transitiva, strutturata, progettata per scenari complessi come migrazioni, consolidamenti e coesistenza di ambienti.</p><p>Da quel momento, le trust non sono pi&#249; solo un mezzo per &#8220;far funzionare le cose&#8221;, ma uno strumento di design da considerare con attenzione.</p><p>Abbiamo fin qui parlato di <a href="https://learn.microsoft.com/en-us/entra/identity/domain-services/concepts-forest-trust">tanti tipi di trust</a>, fare confusione &#232; un attimo, mettiamo le cose un po&#8217; in ordine:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BQhE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BQhE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png 424w, https://substackcdn.com/image/fetch/$s_!BQhE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png 848w, https://substackcdn.com/image/fetch/$s_!BQhE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png 1272w, https://substackcdn.com/image/fetch/$s_!BQhE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BQhE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png" width="1255" height="502" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:502,&quot;width&quot;:1255,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80930,&quot;alt&quot;:&quot;Tabella comparativa dei tipi di trust in Active Directory, con categoria, creazione, transitivit&#224;, protocolli e scopo.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192079223?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Tabella comparativa dei tipi di trust in Active Directory, con categoria, creazione, transitivit&#224;, protocolli e scopo." title="Tabella comparativa dei tipi di trust in Active Directory, con categoria, creazione, transitivit&#224;, protocolli e scopo." srcset="https://substackcdn.com/image/fetch/$s_!BQhE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png 424w, https://substackcdn.com/image/fetch/$s_!BQhE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png 848w, https://substackcdn.com/image/fetch/$s_!BQhE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png 1272w, https://substackcdn.com/image/fetch/$s_!BQhE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d23c39b-8c67-418c-926d-0cdd6655f4b4_1255x502.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Riepilogo sulle tipologie di Trust in una foresta Active Directory</figcaption></figure></div><p>In fase di design architetturale la &#8220;vera&#8221; scelta riguarda le trust di tipo esterno (non intra-forest), dove dobbiamo capire &#8220;quanta&#8221; fiducia concedere, ma soprattutto con che modalit&#224;.</p><p>Ed &#232; qui che nasce il gap che vediamo ancora oggi<s>,</s> perch&#233;, mentre il modello di fiducia &#232; evoluto, il modo di pensarlo spesso &#232; rimasto fermo.<br>Applicare un modello di Trust sbagliato rispetto al contesto molto spesso non &#232; un errore di configurazione.<br>&#200; un&#8217;eredit&#224; concettuale.</p><h2>Quali &#8220;danni&#8221; si possono fare</h2><p>Come per il primo capitolo ho ritenuto interessante ed efficace calare gli aspetti teorici in un contesto pratico, partendo sempre da quanto ho potuto osservare sul campo.</p><h3>Caso reale #1 &#8211; La trust che non ti aspetti</h3><p>Torniamo al <a href="https://www.legacythings.it/i/189367336/caso-reale-1-il-gruppo-che-non-ti-aspetti">Caso reale #1 del capitolo #1</a>, il progetto di migrazione &#232; complesso e prosegue il lavoro da &#8220;equilibrista&#8221;. Se pensavate di aver gi&#224; visto e risolto tutti i problemi vi sbagliate, &#232; una situazione che riserva ancora qualche sorpresa.</p><p>I permessi sulle utenze sono stati sistemati e si passa ai test di migrazione. Per capire bene tutto quello che include lo scenario credo per&#242; che valga la pena fare uno schema di riepilogo:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l_b2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l_b2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!l_b2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!l_b2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!l_b2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!l_b2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png" width="703" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:703,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32248,&quot;alt&quot;:&quot;Diagramma dello scenario iniziale di migrazione con ambiente Active Directory source e target, Entra Connect in target, ADFS in source e trust tra gli ambienti. Gli utenti usano un suffisso UPN specifico e il login federato passa dalla farm ADFS del source.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192079223?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Diagramma dello scenario iniziale di migrazione con ambiente Active Directory source e target, Entra Connect in target, ADFS in source e trust tra gli ambienti. Gli utenti usano un suffisso UPN specifico e il login federato passa dalla farm ADFS del source." title="Diagramma dello scenario iniziale di migrazione con ambiente Active Directory source e target, Entra Connect in target, ADFS in source e trust tra gli ambienti. Gli utenti usano un suffisso UPN specifico e il login federato passa dalla farm ADFS del source." srcset="https://substackcdn.com/image/fetch/$s_!l_b2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!l_b2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!l_b2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!l_b2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea15524-32d7-4464-adaa-2f4121ed31c8_703x647.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Lo scenario di partenza: una migrazione che si basa su di una Trust attiva.</figcaption></figure></div><p>Anche solo contando il numero di frecce che sono servite a tracciare lo schema ci si rende conto del significato della parola &#8220;complesso&#8221;, gli elementi in campo sono diversi, soffermiamoci su quelli pi&#249; significativi:</p><p>&#183; Tra l&#8217;ambiente Active Directory sorgente e destinazione &#232; presente una Trust</p><p>&#183; Il motore di sincronizzazione Entra Connect &#232; in target ed ha un connettore anche verso il source</p><p>&#183; Gli utenti da migrare fanno uso di uno specifico suffisso nello UserPrincipalName (UPN), ovvero quell&#8217;attributo di logon simile alla mail</p><p>&#183; Il metodo di login per quel suffisso UPN sul tenant Entra ID &#232; di tipo federato e punta ad una Farm ADFS in source</p><p>Si tratta di uno scenario dove &#232; gi&#224; attiva una &#8220;collaborazione tra le parti&#8221; di cui la Trust &#232; la colonna portante, la migrazione delle identit&#224; &#232; solo una parte del disegno complessivo.</p><p>Ma rimanendo sulle identit&#224; mi preme sottolineare un paio di dettagli:</p><p>&#183; I nomi Netbios ed FQDN tra i due ambienti Active Directory sono differenti, requisito per poter attivare una trust</p><p>&#183; Il suffisso UPN degli utenti, che &#232; di fatto un FQDN aggiuntivo, pu&#242; essere registrato <strong>solo in una delle due Active Directory alla volta</strong>, pena la generazione di &#8220;<a href="https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc784334(v=ws.10)?redirectedfrom=MSDN#collision-detection">UPN suffix collision</a>&#8221;. Questo obbliga ad una migrazione di tipo cut-over, dove le utenze ed il relativo FQDN vengono spostate in blocco.</p><p>Torniamo ai nostri test, viene individuato un FQDN separato con cui svolgere tutto il processo, la procedura va avanti, si arriva al momento del cut-over, le utenze diventano attive in target e si passa al test di logon.</p><p>Pagina di logon di Microsoft 365, si inserisce lo UserPrincipalName di un utente di test, il sistema di federazione ci rimanda alla farm ADFS, si inserisce la password e&#8230; otteniamo un KO: <em>Incorrect username or password.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pYRb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pYRb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!pYRb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!pYRb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!pYRb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pYRb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png" width="703" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:703,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31754,&quot;alt&quot;:&quot;Diagramma del fallimento di logon durante la migrazione: il login Microsoft 365 dell&#8217;utente viene reindirizzato alla farm ADFS del source, ma l&#8217;External Trust non consente il corretto instradamento del suffisso UPN aggiuntivo verso i Domain Controller del target.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192079223?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Diagramma del fallimento di logon durante la migrazione: il login Microsoft 365 dell&#8217;utente viene reindirizzato alla farm ADFS del source, ma l&#8217;External Trust non consente il corretto instradamento del suffisso UPN aggiuntivo verso i Domain Controller del target." title="Diagramma del fallimento di logon durante la migrazione: il login Microsoft 365 dell&#8217;utente viene reindirizzato alla farm ADFS del source, ma l&#8217;External Trust non consente il corretto instradamento del suffisso UPN aggiuntivo verso i Domain Controller del target." srcset="https://substackcdn.com/image/fetch/$s_!pYRb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!pYRb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!pYRb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!pYRb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7fc785d-e109-45fb-a592-7f6df85c2a00_703x647.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Il punto di rottura: la trust esiste, ma non sa portare la richiesta dove serve.</figcaption></figure></div><p>Uhm&#8230; errore molto generico, inizia la trafila delle verifiche:</p><p>&#183; L&#8217;utente &#232; attivo in target? &gt; S&#236;</p><p>&#183; Reset della password in target &gt; ancora KO</p><p>&#183; Tentativo di logon su ADFS con SamaccountName (DOMAIN\username) &gt; stesso errore</p><p>&#183; La risoluzione DNS funziona? &gt; S&#236;</p><p>&#183; I requisiti per gli <a href="https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/overview/ad-fs-requirements#multi-forest-requirements">scenari multi-forest</a> di ADFS sono soddisfatti? &gt; OK</p><p>&#183; La Trust &#232; configurata correttamente? &gt; &#8230;</p><p>Ecco, questo &#232; il momento in cui salta fuori il <em><strong>dettaglio che cambia tutto</strong></em>.</p><p>Andando ad analizzare la configurazione della Trust tra i due ambienti Active Directory ci si rende conto che &#232; stata attivata (o meglio ereditata) una <strong>External Trust</strong> e non una pi&#249; sofisticata <strong>Forest Trust</strong>.</p><p>Altro dettaglio importante, visto in precedenza, &#232; che le utenze oggetto di migrazione fanno uso di suffissi UPN aggiuntivi, es: <em>&lt;username&gt;@UPNsuffix.xyz</em></p><p>Questi ultimi sono definiti a livello di foresta e fanno parte dei metadati condivisi tramite la Configuration Partition.</p><p>Il meccanismo di Name / UPN Suffix Routing utilizza queste informazioni ed &#232; <a href="https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc784334(v=ws.10)?redirectedfrom=MSDN#routing-name-suffixes-across-forests-1">disponibile solo nel contesto di una forest trust</a>.</p><p><em>&#8220;Name suffix routing is a mechanism used to manage how authentication requests are routed across Windows Server 2003 forests that are joined together by forest trusts.&#8221;</em></p><p>Le <strong>External Trust</strong>, operando esclusivamente a livello di dominio, <strong>non hanno visibilit&#224; dei metadati di foresta e non possono quindi instradare suffissi UPN aggiuntivi.</strong></p><p>Per questo motivo un tentativo di logon con il suffisso UPN aggiuntivo, effettuato nella farm ADFS dell&#8217;ambiente source, non permette il corretto instradamento della richiesta verso i Domain Controller dell&#8217;ambiente Active Directory target.</p><p>Siamo quindi alle prese con una <strong>configurazione ereditata</strong>, sicuramente funzionale allo scopo originale, <strong>ma incompatibile con lo scenario presente.</strong></p><p>La domanda a questo punto &#232; inevitabile: come risolvere?</p><p>La soluzione tecnica pi&#249; ovvia sarebbe quella di sostituire l&#8217;<strong>External Trust </strong>con una <strong>Forest Trust</strong>. Logico no?</p><p>Peccato che nei progetti reali le soluzioni ovvie non siano sempre praticabili e si scontrano con le politiche aziendali.</p><p>In questo caso il cliente aveva le idee chiare: <strong>nessuna modifica architetturale poteva essere approvata senza una verifica formale degli impatti</strong>, condotta in un ambiente controllato che riproducesse fedelmente la produzione. E con un vincolo ulteriore, non negoziabile:<strong> l&#8217;esperienza utente non doveva cambiare.</strong></p><p>Requisiti comprensibili, anzi corretti e tutelativi, ma che nella pratica significavano una cosa sola: <em><strong>la strada pi&#249; semplice era sbarrata</strong></em>.</p><p>&#200; uno di quei momenti in cui il lavoro da equilibrista si fa sentire davvero. Hai la diagnosi, conosci la cura, ma non puoi somministrarla. Devi trovare un percorso alternativo che rispetti i vincoli, non comprometta l&#8217;esperienza utente e non faccia saltare la timeline del progetto.</p><p>La soluzione individuata &#232; stata quella di <strong>aggirare il limite senza ignorarlo</strong>: introdurre una nuova farm ADFS nell&#8217;ambiente target, validare l&#8217;architettura e l&#8217;esperienza utente con un suffisso UPN dedicato, raccogliere le evidenze necessarie per portare al tavolo una proposta formale di cambio architetturale in un secondo momento.</p><p>Non la risposta ideale. Ma la risposta possibile in quello specifico contesto.</p><p>Questo il diagramma di arrivo:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0zBF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0zBF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!0zBF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!0zBF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!0zBF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0zBF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png" width="703" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:703,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31646,&quot;alt&quot;:&quot;Diagramma della soluzione finale con una nuova farm ADFS nell&#8217;ambiente target, introdotta per validare architettura ed esperienza utente senza modificare subito la trust esistente.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192079223?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Diagramma della soluzione finale con una nuova farm ADFS nell&#8217;ambiente target, introdotta per validare architettura ed esperienza utente senza modificare subito la trust esistente." title="Diagramma della soluzione finale con una nuova farm ADFS nell&#8217;ambiente target, introdotta per validare architettura ed esperienza utente senza modificare subito la trust esistente." srcset="https://substackcdn.com/image/fetch/$s_!0zBF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!0zBF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!0zBF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!0zBF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa20cbdf1-bfaa-4eb8-ae49-d0b66e8747db_703x647.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">La soluzione possibile: aggirare il limite senza ignorarlo.</figcaption></figure></div><p>Anche in questo caso siamo di fronte ad uno sforzo extra che difficilmente pu&#242; essere preventivato durante la normale fase di assessment.</p><p>La Trust era attiva e stava facendo quello per cui era stata progettata, peccato che non fosse sufficiente a supportare lo scenario di migrazione.</p><p>Supponendo che la messa in opera della Trust sia stata fatta dopo il 2003, viene naturale aprire una riflessione sulla lungimiranza della scelta che ha portato all&#8217;uso della <strong>External Trust</strong> e dei vincoli che nel tempo si porta dietro.</p><h2>Cosa ci ha insegnato la fiducia</h2><p>La fiducia, nei sistemi informatici, &#232; uno di quei concetti che diamo per scontati fino a quando non smette di funzionare.<br>&#200; una compagna invisibile, silenziosa, che ci abitua alla sua presenza senza farsi sentire. Eppure, quando viene progettata o ereditata senza piena consapevolezza, &#232; in grado di determinare il successo o il fallimento di intere architetture.</p><p>Il caso visto in questo capitolo mostra chiaramente un punto spesso trascurato: <strong>una trust non &#232; solo un collegamento tecnico, &#232; una scelta di design</strong>.<br>Una scelta che nasce in un contesto preciso, per risolvere un problema specifico, e che pu&#242; restare perfettamente valida per anni&#8230; fino a quando <strong>il contesto cambia.</strong></p><p>Nel momento in cui entrano in gioco identit&#224; ibride, federazioni, suffissi UPN aggiuntivi e requisiti di continuit&#224; verso il cloud, quella stessa fiducia pu&#242; diventare un vincolo invisibile.<br>Non perch&#233; sia &#8220;sbagliata&#8221;, ma perch&#233; &#232; stata pensata per un mondo diverso, con confini pi&#249; semplici e percorsi di autenticazione meno articolati.</p><p>La lezione pi&#249; importante &#232; che <strong>la fiducia non scala automaticamente con la complessit&#224;</strong>.<br>Aggiungere nuovi componenti (Entra ID, ADFS, sincronizzazioni multi&#8209;forest) senza rimettere in discussione il modello di trust significa spesso costruire sopra <em><strong>fondamenta che non sono state progettate per sostenere quel peso</strong></em>.</p><p>C&#8217;&#232; poi una seconda lezione, ancora pi&#249; sottile: <strong>i problemi legati alla fiducia raramente si manifestano in modo esplicito</strong>.<br>Non producono errori chiari, non indicano una causa precisa. Si presentano come comportamenti ambigui, autenticazioni che falliscono &#8220;senza motivo&#8221;, configurazioni che sembrano corrette ma non funzionano. Ed &#232; proprio questa ambiguit&#224; a renderli costosi da diagnosticare e risolvere.</p><p>Come nel caso del guardiano visto nel Capitolo 1, anche qui <em><strong>il problema non sono le trust</strong></em>.<br>Esse continuano a fare esattamente ci&#242; per cui sono state progettate: delimitare perimetri, stabilire confini, definire chi pu&#242; fidarsi di chi.<br>Il problema nasce quando <strong>il design moderno ignora quei confini</strong>, assumendo che la fiducia sia implicita, transitiva o adattabile per default.</p><p>Negli ambienti ibridi<s>,</s> la fiducia non &#232; un dettaglio operativo<s>,</s> ma una <strong>decisione architetturale di primo livello</strong>.<br>Trattarla come un&#8217;eredit&#224; da subire, invece che come un elemento da comprendere e ridisegnare, significa spostare i problemi pi&#249; avanti nel tempo<s>,</s> dove saranno inevitabilmente pi&#249; complessi e pi&#249; costosi, soprattutto quando si inseriscono nell&#8217;equazione i vincoli &#8220;politici&#8221;.</p><p>Ed &#232; proprio da qui che <em><strong>Legacy Things</strong></em> continua il suo percorso: riportare alla luce quei meccanismi silenziosi che, pur nati decenni fa, continuano a determinare il comportamento delle infrastrutture moderne.<br>Perch&#233; ignorare il passato non lo rende innocuo. Lo rende solo pi&#249; difficile da riconoscere quando torna a farsi sentire.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.legacythings.it/subscribe?&quot;,&quot;text&quot;:&quot;Iscriviti&quot;,&quot;language&quot;:&quot;it&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Grazie per aver letto Legacy Things! Iscriviti gratuitamente per ricevere nuovi post e supportare il mio lavoro.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digita la tua email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Iscriviti"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Chapter #2 – A Matter of Trust]]></title><description><![CDATA[Beyond the perimeter&#8217;s edge]]></description><link>https://www.legacythings.it/p/chapter-2-a-matter-of-trust</link><guid isPermaLink="false">https://www.legacythings.it/p/chapter-2-a-matter-of-trust</guid><dc:creator><![CDATA[Marco Lelli]]></dc:creator><pubDate>Mon, 30 Mar 2026 06:10:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LGe3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Versione italiana disponibile qui &#8594;</em><a href="https://www.legacythings.it/p/capitolo-1-adminsdholder-il-guardiano"> </a><em><a href="https://www.legacythings.it/p/capitolo-2-una-questione-di-fiducia">[IT]</a></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LGe3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LGe3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!LGe3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!LGe3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!LGe3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LGe3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3021479,&quot;alt&quot;:&quot;Illustration of a Formula 1 car on track, used as a metaphor for trust and the limits of the authentication perimeter discussed in the chapter.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192082985?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Illustration of a Formula 1 car on track, used as a metaphor for trust and the limits of the authentication perimeter discussed in the chapter." title="Illustration of a Formula 1 car on track, used as a metaphor for trust and the limits of the authentication perimeter discussed in the chapter." srcset="https://substackcdn.com/image/fetch/$s_!LGe3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!LGe3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!LGe3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!LGe3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39bffba-8323-4c05-ab04-8d8062c870f4_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Spring 1993</strong>, the writer is still completing studies.<br>One April Sunday the F1 Grand Prix takes place at Donington, UK. For the legendary <strong>Ayrton Senna</strong> it is a difficult year: his McLaren is inferior to the competition, and he starts fifth on the grid, but there is one detail that plays in his favour: <em><strong>it is raining!</strong></em> And when it rains, his <strong>trust</strong> in the car becomes absolute.<br>Green light, he launches forward like fury and by the end of the first lap he is already in the lead, in total domination. No one else has his <strong>confidence</strong> on a wet track.</p><p>In the rest of the world, in those same months, something equally extraordinary was taking shape, radically changing the way people <strong>trusted</strong> computer systems.<br>With the spread of the <strong>World Wide Web</strong> and the distribution of the <strong>NCSA Mosaic</strong> browser, the Internet stops being an environment reserved for a handful of specialists and suddenly becomes accessible.<br>Anyone can connect, explore remote resources, interact with systems they do not know and do not control.</p><p>Until that moment, security models had been built around clear boundaries: corporate networks, local systems, well&#8209;defined domains.<br>With the Web, instead, people begin relying on distant services, remote identities, infrastructures that live outside their direct control.</p><p>It is a cultural revolution even before a technological one.</p><p>In Enterprise systems the subject of trust is played out across two opposing fronts.<br>On one side, the <strong>Windows</strong> universe was spreading based on a closed, perimeter-based trust model that coincided with the first domains.<br>This is where the first explicit concept of <strong>trust</strong> was introduced, built on a proprietary protocol: <strong>NTLM</strong>.<br>A mechanism designed for controlled environments, where trust is a static, declared configuration.</p><p>On the other side, the <strong>Unix</strong> and academic world had long used distributed authentication models, reaching significant maturity with <strong>Kerberos V5</strong>.<br>Here, trust is not merely a connection between systems, but an element designed for open, interconnected, and potentially heterogeneous environments.</p><p>Two profoundly different visions of <strong>trust</strong>, created to respond to different needs.</p><p>With the introduction of <strong>Active Directory</strong>, however, Microsoft made a fundamental choice: it embraced the values of the other model and <strong>adopted Kerberos as the foundational basis of the new authentication system</strong>, initiating a path of convergence between these two worlds.<br>Initially the models coexisted, side by side more than integrated, as a necessary compromise to guarantee backward compatibility.</p><p>Only with <strong>Windows Server 2003</strong> did a more mature form of convergence arrive, marking the transition towards a <em>Kerberos&#8209;first</em> approach, in which trust became part of the architecture rather than merely a connection between separate perimeters.</p><p>And yet, despite this convergence having happened more than twenty years ago, it has not always been fully understood.<br>As if, paradoxically, <strong>trust itself had been lacking</strong> in the process that intended to unite schools of thought that were originally far apart.</p><p>This chapter starts from here.<br>From a kind of trust that has evolved technically, but not always conceptually, and from the consequences of not having truly understood that change all the way through.</p><h2>What it is and how it works</h2><p>We have understood that the concept of &#8220;Trust&#8221; has deep roots; let us now try to frame it into practical terms within the context of Active Directory.</p><h3>Basic mechanics of a Trust</h3><p>Let us start from a principle that is very often taken for granted: the Authentication Domain.</p><p>A Domain is a perimeter within which an implicit &#8220;trust&#8221; exists among the objects that belong to it, mediated by appropriate permissions that define who can access what and in which mode (we discussed ACLs in Chapter 1).<br>Between different perimeters (Domains) there is no implicit trust, and consequently access is not allowed.</p><p>The element that distinguishes all objects belonging to the same Domain is the <strong>Security Identifier (SID)</strong>.<br>This is a fundamental attribute of the Windows security model: an immutable string that uniquely identifies an entity (user, group, computer&#8230;) regardless of the name assigned to it.</p><p>A SID has a precise structure and can be represented in readable form as follows:<br>S&#8209;1&#8209;5&#8209;21&#8209;&lt;DomainIdentifier&gt;&#8209;&lt;RelativeIdentifier&gt;</p><p>The first part of the SID identifies <strong>the authority that issued it</strong> and the <strong>security context</strong> in which the object was created.<br>In particular, the sequence S&#8209;1&#8209;5&#8209;21 indicates that the SID belongs to a Windows domain context, while the value &lt;DomainIdentifier&gt; represents the identity of the domain itself.</p><p>This means that <strong>all objects belonging to the same domain share exactly the same initial portion of the SID</strong>.</p><p>The final part, called the <strong>Relative Identifier (RID)</strong>, is what makes the object unique within that domain.<br>The RID is assigned by the Domain Controller at the time the object is created and distinguishes a user, group or computer from all others that share the same Domain SID.</p><p>In other words, the SID always tells two different truths:</p><p>&#183; <em>where the object comes from</em> (the domain that issued it)</p><p>&#183; <em>who the object is</em> within that domain</p><p>This separation is one of the cornerstones of the Active Directory security model; if you want to explore the topic further, here is the link to the <a href="https://learn.microsoft.com/en-gb/windows-server/identity/ad-ds/manage/understand-security-identifiers">official article</a>.</p><p>Thanks to this mechanism, ever since the very first NT Domains, the <strong>Domain Trust</strong> mechanism has been available, initially based on the <strong>NTLM</strong> protocol.</p><p>It is important to remember that, even conceptually, trust has a precise direction, the same is true for Domain Trusts, where <strong>those who provide the resources</strong> (for example, a File Server in a resource Domain) <strong>extend trust to</strong> <strong>those who provide the identities</strong> (the user Domain).<br>This direction is represented with an arrow going from resources to identities.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cFHx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cFHx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png 424w, https://substackcdn.com/image/fetch/$s_!cFHx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png 848w, https://substackcdn.com/image/fetch/$s_!cFHx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png 1272w, https://substackcdn.com/image/fetch/$s_!cFHx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cFHx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png" width="540" height="184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:184,&quot;width&quot;:540,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3568,&quot;alt&quot;:&quot;Diagram showing the direction of a trust between a resource domain and a user domain, with an arrow from resource.ad to user.ad.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192082985?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Diagram showing the direction of a trust between a resource domain and a user domain, with an arrow from resource.ad to user.ad." title="Diagram showing the direction of a trust between a resource domain and a user domain, with an arrow from resource.ad to user.ad." srcset="https://substackcdn.com/image/fetch/$s_!cFHx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png 424w, https://substackcdn.com/image/fetch/$s_!cFHx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png 848w, https://substackcdn.com/image/fetch/$s_!cFHx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png 1272w, https://substackcdn.com/image/fetch/$s_!cFHx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cdeacbf-5cd5-43c5-97e8-ac6db74538f3_540x184.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Trust direction</figcaption></figure></div><p>When a Trust is activated, the resource domain does not import users nor replicate objects from the trusted domain.<br>Instead, it accepts something much simpler and far more powerful: <strong>the Security Identifiers issued on the other side</strong>.</p><p>When an external object is used for the first time (for example, by adding it to a local group or assigning it a permission) Active Directory automatically creates a <strong>Foreign Security Principal</strong>.</p><p>A <a href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/5aa09c90-c5db-4e97-98d0-b7cdd6bc1bfe">Foreign Security Principal</a> is not a real local account, but a <strong>pointer</strong>: a minimal object containing only the SID of the remote entity.<br>It allows the resource domain to include external identities in its authorisation mechanisms without needing to know their structure or replicate their attributes.</p><p>Once again, everything revolves around <strong>trust</strong>: the resource domain does not know <em>who</em> that object is, but trusts that its SID was issued by an authority considered <em>reliable</em>.</p><h3>The evolution of trusts: from point-to-point connections to architectural trust</h3><p>In the first Windows domain model, trust was a simple and very concrete concept: two domains know each other, speak to each other, trust each other.<br>Nothing more. Every trust is an explicit, manually created connection that applies only between two well defined endpoints.<br>If you need something else, you create another trust, and then another.</p><p>It is a model coherent with its era: small environments, clear perimeters, few interactions.<br>But it is also a model that does not scale.<br>Every new relationship increases complexity and, more importantly, makes trust fragile: forgetting a single link is enough for something to stop working.</p><p>With the arrival of Active Directory and the birth of the <em>forest</em> concept, Microsoft changed approach.<br>Domains were no longer independent islands, but parts of a broader structure designed to share a common trust space.<br>To support a hierarchical domain model, <strong>intra&#8209;forest trusts</strong> were introduced: automatic, bidirectional, transitive.<br>Trust was no longer an exception but a structural property.</p><p>It was a fundamental shift: for the first time, trust stopped being a set of exceptions and became a foundational rule.</p><p>However, when it becomes necessary to leave this perimeter (to collaborate with external domains, legacy environments or completely separate forests) one temporarily returns to the past.<br>As a legacy of Domain Trusts, <strong>External Trusts</strong> were introduced: explicit, non&#8209;transitive links, deliberately limited.<br>A necessary compromise, designed to contain risk and reduce exposure.</p><p>The problem is that, in the meantime, the world moved on.</p><p>With <strong>Windows Server 2003</strong>, the attempt at a definitive synthesis arrived: the <strong>Forest Trust</strong>.<br>No longer trust between individual domains, but between entire sets of domains.<br>No longer an exception, but a coherent extension of the Kerberos&#8209;first model introduced with Active Directory.<br>Trust finally became part of extended architectures as well: transitive, structured, designed for complex scenarios such as migrations, consolidations and coexistence.</p><p>From that moment onwards, trusts were no longer just a way to &#8220;make things work&#8221;, but a design tool that must be considered carefully.</p><p>So far we have mentioned <a href="https://learn.microsoft.com/en-us/entra/identity/domain-services/concepts-forest-trust">many different types of trusts</a>; confusion is easy, so let&#8217;s put things in order:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i7le!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i7le!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png 424w, https://substackcdn.com/image/fetch/$s_!i7le!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png 848w, https://substackcdn.com/image/fetch/$s_!i7le!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png 1272w, https://substackcdn.com/image/fetch/$s_!i7le!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i7le!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png" width="1255" height="476" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:476,&quot;width&quot;:1255,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67854,&quot;alt&quot;:&quot;Comparison table of Active Directory trust types, showing category, creation, transitivity, protocols and purpose.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192082985?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Comparison table of Active Directory trust types, showing category, creation, transitivity, protocols and purpose." title="Comparison table of Active Directory trust types, showing category, creation, transitivity, protocols and purpose." srcset="https://substackcdn.com/image/fetch/$s_!i7le!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png 424w, https://substackcdn.com/image/fetch/$s_!i7le!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png 848w, https://substackcdn.com/image/fetch/$s_!i7le!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png 1272w, https://substackcdn.com/image/fetch/$s_!i7le!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F788835a0-6c15-49d4-99cc-30a4d4c1b9dd_1255x476.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Trust type summary inside an Active Directory Forest</figcaption></figure></div><p>In architectural design, the <em>real</em> decision concerns <strong>external-type trusts</strong> (not intra-forest), where we must decide &#8220;how much&#8221; trust to grant and, above all, in what way.</p><p>And this is where the gap we still see today is born, because while the trust model has evolved, the way people think about it has often remained still.<br>Applying the wrong trust model to the wrong context is very often not a configuration error.<br>It is a conceptual legacy.</p><h2>What can go wrong</h2><p>As with the first chapter, I felt it would be both interesting and effective to place the theoretical aspects into a practical context, always starting from what I have been able to observe in the field.</p><h3>Real case #1 &#8211; The trust you do not expect</h3><p>Let us return to <a href="https://www.legacythings.it/i/189536509/real-case-1-the-group-you-dont-expect">Real Case #1 of Chapter #1</a>. The migration project is complex and the work of the &#8220;tightrope walker&#8221; goes on. If you thought you had already seen and solved every problem, you were mistaken: this is a situation that still has a few surprises in store.</p><p>Permissions on the user accounts have been fixed, and the migration tests begin. To fully understand everything that this scenario includes, I believe it is worth laying it out in a summary diagram:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NN3k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NN3k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!NN3k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!NN3k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!NN3k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NN3k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png" width="703" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:703,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32248,&quot;alt&quot;:&quot;Initial migration scenario diagram showing source and target Active Directory environments, Entra Connect in the target, ADFS in the source and a trust between the two environments. Users rely on a specific UPN suffix and federated sign-in goes through the source ADFS farm.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192082985?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Initial migration scenario diagram showing source and target Active Directory environments, Entra Connect in the target, ADFS in the source and a trust between the two environments. Users rely on a specific UPN suffix and federated sign-in goes through the source ADFS farm." title="Initial migration scenario diagram showing source and target Active Directory environments, Entra Connect in the target, ADFS in the source and a trust between the two environments. Users rely on a specific UPN suffix and federated sign-in goes through the source ADFS farm." srcset="https://substackcdn.com/image/fetch/$s_!NN3k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!NN3k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!NN3k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!NN3k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13ccd3a-2526-4d88-a488-f2045620c6e1_703x647.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The starting point: a migration already resting on an active trust relationship.</figcaption></figure></div><p>Even just by counting the number of arrows needed to draw the diagram, you immediately understand the meaning of the word &#8220;complex&#8221;. There are several elements in play, so let us focus on the most significant ones:</p><ul><li><p>There is a Trust between the source and target Active Directory environments</p></li><li><p>The Entra Connect synchronisation engine is in the target and has a connector to the source</p></li><li><p>The users to be migrated use a specific suffix in their UserPrincipalName (UPN), that logon attribute that resembles an email address</p></li><li><p>The login method for that UPN suffix in the Entra ID tenant is federated and points to an ADFS Farm in the source</p></li></ul><p>This is a scenario where a &#8220;collaboration between the parties&#8221; is already active, and the Trust is its main pillar. Identity migration is only one part of the overall design.</p><p>Staying on the topic of identities, however, I would like to highlight a couple of details:</p><ul><li><p>The NetBIOS names and FQDNs of the two Active Directory environments are different, which is a requirement for enabling a trust</p></li><li><p>The users&#8217; UPN suffix, which is effectively an additional FQDN, can be registered <em><strong>only in one of the two Active Directory environments at a time</strong></em>, otherwise an &#8220;<a href="https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc784334(v=ws.10)?redirectedfrom=MSDN#collision-detection">UPN suffix collision</a>&#8221; is generated. This forces a cut over migration approach, where the user accounts and the related FQDN are moved in one block.</p></li></ul><p>Back to our tests: a separate FQDN is identified with which to carry out the whole process, the procedure continues, cut over time arrives, the users become active in the target and the logon test begins.</p><p>Microsoft 365 logon page, the UserPrincipalName of a test user is entered, the federation system redirects us to the source ADFS Farm, the password is entered and&#8230; the attempt fails: <em>Incorrect username or password.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2a8Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2a8Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!2a8Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!2a8Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!2a8Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2a8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png" width="703" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:703,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31754,&quot;alt&quot;:&quot;Failed logon diagram showing Microsoft 365 sign-in redirected to the source ADFS farm, where the External Trust cannot correctly route the additional UPN suffix towards the target Domain Controllers.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192082985?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Failed logon diagram showing Microsoft 365 sign-in redirected to the source ADFS farm, where the External Trust cannot correctly route the additional UPN suffix towards the target Domain Controllers." title="Failed logon diagram showing Microsoft 365 sign-in redirected to the source ADFS farm, where the External Trust cannot correctly route the additional UPN suffix towards the target Domain Controllers." srcset="https://substackcdn.com/image/fetch/$s_!2a8Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!2a8Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!2a8Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!2a8Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab622100-7c43-4c32-9d20-ed43cac9c732_703x647.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The breaking point: the trust exists, but it cannot take the request where needed.</figcaption></figure></div><p>Hmm&#8230; a very generic error, and so the usual sequence of checks begins:</p><ul><li><p>Is the user active in the target? &gt; Yes</p></li><li><p>Password reset in the target &gt; still KO</p></li><li><p>Attempt to log on to ADFS using SamaccountName (DOMAIN\username) &gt; same error</p></li><li><p>Does DNS resolution work? &gt; Yes</p></li><li><p>Are the requirements for <a href="https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/overview/ad-fs-requirements#multi-forest-requirements">multi-forest</a> ADFS scenarios met? &gt; OK</p></li><li><p>Is the Trust configured correctly? &gt; &#8230;</p></li></ul><p>This is the moment when<em><strong> the detail that changes everything</strong></em> emerges.</p><p>By analysing the Trust configuration between the two Active Directory environments, it becomes clear that an <strong>External Trust</strong> had been enabled, or rather inherited, instead of a more sophisticated <strong>Forest Trust</strong>.</p><p>Another important detail, already mentioned above, is that the users being migrated use additional UPN suffixes, for example: <em>&lt;username&gt;@UPNsuffix.xyz</em></p><p>These are defined at forest level and are part of the metadata shared through the Configuration partition.</p><p>The Name / UPN Suffix Routing mechanism uses this information and is <a href="https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc784334(v=ws.10)?redirectedfrom=MSDN#routing-name-suffixes-across-forests-1">available only in the Forest Trust context</a>.</p><p><em>&#8220;Name suffix routing is a mechanism used to manage how authentication requests are routed across Windows Server 2003 forests that are joined together by forest trusts.&#8221;</em></p><p><strong>External Trusts</strong>, operating exclusively at domain level, <strong>do not have visibility over forest metadata and therefore cannot route additional UPN suffixes</strong>.</p><p>For this reason, an attempt to log on using the additional UPN suffix, carried out through the ADFS Farm in the source environment, cannot correctly route the request towards the Domain Controllers in the target Active Directory environment.</p><p>So, we are dealing with an <strong>inherited configuration</strong>, certainly functional for its original purpose, but <strong>incompatible with the current scenario</strong>.</p><p>At this point, the question becomes inevitable: how do we solve it?</p><p>The most obvious technical solution would be to replace the <strong>External Trust</strong> with a <strong>Forest Trust</strong>. Logical, right?</p><p>The problem is that, in real projects, obvious solutions are not always practical, and they clash with corporate policies.</p><p>In this case, the customer was very clear: <em><strong>no architectural change could be approved without a formal impact assessment</strong>,</em> carried out in a controlled environment that reproduced production faithfully. And there was an additional, non-negotiable constraint: <em><strong>the user experience must not change</strong></em>.</p><p>Understandable requirements indeed, correct and protective ones, but in practice they meant only one thing: <em><strong>the simplest path was blocked</strong></em>.</p><p>This is one of those moments when the tightrope walker&#8217;s work truly makes itself felt. You have the diagnosis, you know the cure, but you cannot administer it. You must find an alternative path that respects the constraints, does not compromise the user experience and does not blow up the project timeline.</p><p>The solution identified was to <strong>work around the limit without ignoring it:</strong> introduce a new ADFS Farm in the target environment, validate the architecture and the user experience with a dedicated UPN suffix, and collect the evidence needed to bring a formal proposal for architectural change to the table at a later stage.</p><p>Not the ideal answer. But the possible answer in that specific context.</p><p>This is the resulting diagram:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yFGQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yFGQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!yFGQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!yFGQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!yFGQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yFGQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png" width="703" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:703,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31646,&quot;alt&quot;:&quot;Final solution diagram showing a new ADFS farm introduced in the target environment in order to validate architecture and user experience without immediately changing the existing trust.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/192082985?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Final solution diagram showing a new ADFS farm introduced in the target environment in order to validate architecture and user experience without immediately changing the existing trust." title="Final solution diagram showing a new ADFS farm introduced in the target environment in order to validate architecture and user experience without immediately changing the existing trust." srcset="https://substackcdn.com/image/fetch/$s_!yFGQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png 424w, https://substackcdn.com/image/fetch/$s_!yFGQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png 848w, https://substackcdn.com/image/fetch/$s_!yFGQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png 1272w, https://substackcdn.com/image/fetch/$s_!yFGQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c2c123-6ee6-47bb-ad61-74072a116189_703x647.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The possible solution: working around the limit without ignoring it.</figcaption></figure></div><p>Once again, we are facing an extra effort that can hardly be anticipated during the normal assessment phase.</p><p>The Trust was active and was doing exactly what it had been designed to do, but it was not sufficient to support the migration scenario.</p><p>Assuming that the Trust was put in place after 2003, it becomes natural to reflect on the foresight of the decision that led to the use of an <strong>External Trust</strong> and on the constraints it carries forward over time.</p><h2>Lessons learned from the Trust</h2><p>Trust, in computer systems, is one of those concepts that we take for granted until it stops working.</p><p>It is an invisible, silent companion that accustoms us to its presence without ever making itself heard. And yet, when it is designed or inherited without full awareness, it can determine the success or failure of entire architectures.</p><p>The case seen in this chapter clearly shows a point that is often overlooked: <strong>a trust is not just a technical connection, it is a design choice</strong>.</p><p>A choice that is born in a specific context, to solve a specific problem, and that can remain perfectly valid for years&#8230; until <em><strong>the context changes</strong></em>.</p><p>When hybrid identities, federations, additional UPN suffixes and cloud continuity requirements come into play, that same trust can become an invisible constraint.</p><p>Not because it is &#8220;wrong&#8221;, but because it was designed for a different world, with simpler boundaries and less articulated authentication paths.</p><p>The most important lesson is that <strong>trust does not automatically scale with complexity</strong>.</p><p>Adding new components, such as Entra ID, ADFS and multi forest synchronisations, without rethinking the trust model often means building on <em><strong>foundations that were not designed to bear that weight.</strong></em></p><p>There is then a second lesson, even more subtle: <strong>trust related problems rarely manifest themselves explicitly</strong>.</p><p>They do not produce clear errors, they do not point to a precise cause. They present themselves as ambiguous behaviours, authentications that fail &#8220;for no reason&#8221;, configurations that appear correct but do not work. And it is precisely this ambiguity that makes them costly to diagnose and resolve.</p><p>As in the case of the guardian seen in Chapter 1, <em><strong>the problem is not the trusts themselves</strong></em>.</p><p>They continue to do exactly what they were designed to do: define perimeters, establish boundaries, and determine who can trust whom.</p><p>The problem arises when <strong>modern design ignores those boundaries</strong>, assuming that trust is implicit, transitive or adaptable by default.</p><p>In hybrid environments, trust is not an operational detail but a <strong>first level architectural decision</strong>.</p><p>Treating it as an inheritance to be endured, rather than as an element to be understood and redesigned, means pushing problems further into the future, where they will inevitably become more complex and more expensive, especially when &#8220;political&#8221; constraints are added to the equation.</p><p>And it is precisely from here that <em><strong>Legacy Things</strong></em><strong> </strong>continues its path: bringing back to light those silent mechanisms which, although born decades ago, still determine the behaviour of modern infrastructures.</p><p>Because ignoring the past does not make it harmless. It only makes it harder to recognise when it makes itself felt again.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.legacythings.it/subscribe?&quot;,&quot;text&quot;:&quot;Iscriviti&quot;,&quot;language&quot;:&quot;it&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Legacy Things! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digita la tua email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Iscriviti"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Capitolo #1 - AdminSDholder: il guardiano]]></title><description><![CDATA[Quando un meccanismo di Active Directory di 25 anni fa continua a influenzare sicurezza e identity moderne]]></description><link>https://www.legacythings.it/p/capitolo-1-adminsdholder-il-guardiano</link><guid isPermaLink="false">https://www.legacythings.it/p/capitolo-1-adminsdholder-il-guardiano</guid><dc:creator><![CDATA[Marco Lelli]]></dc:creator><pubDate>Mon, 02 Mar 2026 07:15:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!feII!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>English version available here &#8594;<a href="https://www.legacythings.it/p/chapter-1-adminsdholder-the-guardian"> [EN]</a></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!feII!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!feII!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!feII!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!feII!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!feII!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!feII!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2555496,&quot;alt&quot;:&quot;Illustrazione che rappresenta AdminSDHolder come un guardiano dei privilegi in Active Directory.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/189367336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Illustrazione che rappresenta AdminSDHolder come un guardiano dei privilegi in Active Directory." title="Illustrazione che rappresenta AdminSDHolder come un guardiano dei privilegi in Active Directory." srcset="https://substackcdn.com/image/fetch/$s_!feII!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!feII!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!feII!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!feII!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>15 dicembre 1999, il mondo vive una strana tensione.<br>Nelle sale italiane si proietta <strong>Il miglio verde</strong>, negli Stati Uniti il pubblico discute animatamente di <strong>Fight Club</strong> e resta spiazzato dal finale de <strong>The Sixth Sense</strong>.</p><p>Le radio passano &#8220;Move Your Body&#8221; degli <strong>Eiffel 65</strong> e in Europa risuona &#8220;Mambo No. 5&#8221; di <strong>Lou Bega</strong>.</p><p>Ma nei meandri dell&#8217;IT, l&#8217;attenzione &#232; rivolta su tutt&#8217;altro.<br>Mancano sedici giorni al cambio di millennio e il mondo IT trattiene il fiato per il Millennium Bug. Si teme che allo scoccare del 1&#176; gennaio 2000 i sistemi possano bloccarsi, che i software scritti decenni prima non siano pronti al nuovo secolo.</p><p>&#200; in questo clima, tra euforia e inquietudine tecnologica, che Microsoft rilascia Windows 2000 in RTM, un sistema operativo che rompe col passato e sta per far sembrare vecchio tutto quanto c&#8217;era prima con l&#8217;introduzione di <strong>Active Directory</strong>.</p><p>E il guardiano &#232; gi&#224; l&#236;:<strong> AdminSDHolder</strong> &#232; un componente nativo, creato come prima difesa interna dei meccanismi della directory, che non pu&#242; essere sospeso n&#233; fermato, va solamente compreso.</p><h2>Cos&#8217;&#232; e come funziona</h2><p>Con <strong>AdminSDHolder</strong> ci si riferisce ad uno dei meccanismi di protezione pi&#249; importanti e pi&#249; dimenticati di Active Directory.</p><p>L&#8217;obiettivo &#232; semplice: <strong>proteggere gli account e i gruppi pi&#249; privilegiati del dominio</strong>, impedendo che permessi errati o deleghe troppo permissive possano comprometterli, volontariamente o per errore.</p><p>In parole povere: evitare di chiudersi fuori casa con le chiavi dentro o evitare che ci riesca qualche malintenzionato.<br>Per riuscire nel suo intento, Active Directory utilizza un approccio molto rigido e poco negoziabile, descritto in questo <a href="https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory">articolo</a> ufficiale.</p><p>All&#8217;interno di ogni dominio Active Directory esiste un oggetto speciale chiamato <strong>AdminSDHolder</strong>, che si trova nel container <em>System</em> del dominio.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jPOk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jPOk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 424w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 848w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 1272w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jPOk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png" width="317" height="238" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:238,&quot;width&quot;:317,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88946,&quot;alt&quot;:&quot;Schema che mostra l&#8217;oggetto AdminSDHolder nel container System di Active Directory.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/189367336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Schema che mostra l&#8217;oggetto AdminSDHolder nel container System di Active Directory." title="Schema che mostra l&#8217;oggetto AdminSDHolder nel container System di Active Directory." srcset="https://substackcdn.com/image/fetch/$s_!jPOk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 424w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 848w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 1272w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">L&#8217;oggetto AdminSDHolder contiene il template di sicurezza applicato agli account privilegiati del dominio.</figcaption></figure></div><p>Questo oggetto non rappresenta un utente o un gruppo, ma &#232; un ramo di Active Directory che contiene <strong>un modello di sicurezza, </strong>ovvero nel suo &#8220;Security Descriptor&#8221; (o ACL &gt; Access Control List) sono riportati i <strong>permessi standard </strong>che devono avere gli oggetti considerati critici e che devono essere preservati.</p><p>In altre parole:</p><blockquote><p>&#183; AdminSDHolder &#232; il <strong>template</strong></p><p>&#183; gli oggetti da proteggere sono il<strong> target </strong>a cui applicare il <strong>template</strong></p></blockquote><p>Ogni volta che Active Directory rileva una discrepanza tra il template e un oggetto target, interviene per ripristinare la situazione corretta. Ma come?</p><p>Tutto il meccanismo &#232; mosso da un &#8220;motore interno&#8221; chiamato <strong>SDProp</strong> (Security Descriptor Propagator).</p><p><strong>SDProp</strong> viene innescato sul Domain Controller che detiene il ruolo di <strong>PDCE</strong> (Primary Domain Controller Emulator), non agisce in tempo reale, effettua un ciclo di controllo con un intervallo base di 60 minuti, personalizzabile tramite chiave di registro.</p><p>Durante questo ciclo lavora come un guardiano che, se trova qualcosa fuori posto, lo riporta alla condizione attesa. </p><p>S&#236;, ma quali sono gli oggetti da proteggere?</p><p>La discriminante &#232; l&#8217;appartenenza ai gruppi built-in che detengono un minimo di privilegi sull&#8217;ambiente Active Directory, ecco la lista completa:</p><blockquote><p>&#183; Account Operators</p><p>&#183; Administrator</p><p>&#183; Administrators</p><p>&#183; Backup Operators</p><p>&#183; Domain Admins</p><p>&#183; Domain Controllers</p><p>&#183; Enterprise Admins</p><p>&#183; Enterprise Key Admins</p><p>&#183; Key Admins</p><p>&#183; Krbtgt</p><p>&#183; Print Operators</p><p>&#183; Read-only Domain Controllers</p><p>&#183; Replicator</p><p>&#183; Schema Admins</p><p>&#183; Server Operators</p></blockquote><p>Tutti i gruppi in questione e i relativi membri &#8220;subiscono&#8221; il template <strong>AdminSDHolder</strong>.</p><p><strong>NB:</strong> per membri si intendono inseriti direttamente o per via indiretta attraverso group-nesting, rendendo a volte difficile individuare gli oggetti in perimetro.</p><p>Questo spiega uno dei comportamenti pi&#249; frustranti per chi non conosce il meccanismo: &#8220;Imposto i permessi sugli oggetti, tutto funziona&#8230; e dopo un&#8217;ora spariscono.&#8221;</p><p>Ma come avviene l&#8217;applicazione del template? In una maniera intenzionalmente aggressiva: Active Directory assume che <strong>nessuna delega standard debba mai avere controllo su questi oggetti</strong>.</p><p>Ad un oggetto in ambito accadono tre cose fondamentali:</p><p>1. <strong>L&#8217;ereditariet&#224; dei permessi viene disabilitata</strong></p><blockquote><p>&#183; L&#8217;oggetto smette di ereditare le ACL dalla sua OU di appartenenza.</p><p>&#183; Questo significa che le deleghe impostate a livello di OU <strong>non hanno pi&#249; effetto</strong>.</p></blockquote><p>2. <strong>Vengono applicati i permessi di AdminSDHolder</strong></p><blockquote><p>&#183; L&#8217;ACL dell&#8217;oggetto viene resa coerente con quella del template, indipendentemente da dove l&#8217;oggetto si trovi nella struttura.</p></blockquote><p>3. <strong>Viene impostato l&#8217;attributo adminCount</strong></p><blockquote><p>&#183; L&#8217;attributo adminCount viene impostato a 1, segnalando che l&#8217;oggetto &#232; (o &#232; stato) protetto.</p><p>&#183; Questo attributo, per&#242;, <strong>non viene automaticamente ripristinato</strong> se l&#8217;oggetto esce dai gruppi privilegiati, creando spesso confusione e situazioni paradossali</p></blockquote><p>Ultima cosa da ricordare &#232; che questo meccanismo <strong>non pu&#242; essere disattivato</strong>, bisogna quindi avere ben chiare le sue dinamiche per poter progettare in maniera adeguata i processi IT che vanno a toccare Active Directory e soprattutto che fanno leva su specifiche ACL.</p><h2>Quali &#8220;danni&#8221; si possono fare</h2><p>Adesso che abbiamo capito come funzionano le cose, viene la parte a mio avviso pi&#249; interessante: vedere che &#8220;danni&#8221; si possono fare rimanendo all&#8217;oscuro di questi meccanismi.</p><p>Per farlo ho ritenuto efficace portare delle testimonianze prese direttamente sul campo.</p><h3>Caso reale #1 &#8211; Il gruppo che non ti aspetti</h3><p>Siamo nel pieno di un complesso progetto di migrazione in classico ambiente ibrido: <strong>Active Directory + Entra ID</strong>.<br>Un dominio AD sorgente con le utenze source, un dominio AD di destinazione con le utenze target, Entra Connect configurato per lavorare su entrambi e sincronizzare tutto verso Entra ID. Le utenze source sono le uniche in sync.<br>L&#8217;obiettivo &#232; chiaro quanto ambizioso: <strong>sganciare le utenze source e riagganciare quelle target</strong>, senza impatti sul cloud.</p><p>Per chi non si &#232; mai trovato in un progetto del genere, ribadisco il mio punto di vista: migrare risorse in un contesto moderno ed ibrido &#232; un lavoro da &#8220;equilibrista&#8221;.</p><p>Tutti gli aspetti coinvolti devono essere allineati al millimetro, pena il fallimento.</p><p>Quando si inizia a preparare la procedura di migrazione emergono subito i primi problemi: pi&#249; della met&#224; delle utenze presenta attributi incoerenti tra on&#8209;premise e cloud.<br>Da un rapido sguardo, Entra Connect segnala errori ricorrenti: <em><strong>permission-issue</strong></em>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FDPx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FDPx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 424w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 848w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 1272w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FDPx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png" width="356" height="225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:225,&quot;width&quot;:356,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85780,&quot;alt&quot;:&quot;Immagine di Entra Connect con errori di permission-issue&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/189367336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Immagine di Entra Connect con errori di permission-issue" title="Immagine di Entra Connect con errori di permission-issue" srcset="https://substackcdn.com/image/fetch/$s_!FDPx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 424w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 848w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 1272w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Entra Connect fallisce la sync con errori di permission-issue.</figcaption></figure></div><p>Prima verifica: i permessi dell&#8217;account di servizio di Entra Connect, coma suggerisce questo <a href="https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/user-prov-sync/troubleshoot-permission-issue-sync-service-manager">articolo</a> ufficiale.</p><p>Nulla di anomalo in apparenza.</p><p>Andando pi&#249; a fondo, emerge per&#242; un dettaglio curioso, tutte le utenze in errore hanno una cosa in comune: da un certo punto in avanti nel tempo, le nuove utenze vengono create con una membership &#8220;inspiegabile&#8221; &gt; <strong>Print Operators</strong>.</p><p>Quel <strong>dettaglio</strong> cambia tutto: Print Operators &#232; uno dei gruppi protetti di Active Directory.</p><p>Diventare membro significa finire automaticamente nel perimetro di <strong>AdminSDHolder</strong>, con ereditariet&#224; disabilitata, permessi riscritti da <strong>SDProp</strong> e ACL che non seguono pi&#249; la struttura dell&#8217;OU.</p><p><strong>Un meccanismo nato 25 anni fa stava bloccando il corretto flusso di dati verso il cloud</strong>.</p><p>La soluzione da applicare si &#232; rivelata tutt&#8217;altro che immediata:</p><ul><li><p>revisione dei meccanismi di provisioning</p></li><li><p>rimozione delle membership errate</p></li><li><p>ripristino dei permessi corretti su centinaia di utenze</p></li><li><p>riallineamento con il cloud</p></li></ul><p>Insomma, uno sforzo extra su molti fronti che si sarebbe potuto evitare all&#8217;origine con un po&#8217; di consapevolezza in pi&#249; nel disegno dei flussi di provisioning.</p><p>In questo caso il povero <strong>AdminSDHolder</strong> non stava ostacolando la migrazione, stava semplicemente facendo il proprio lavoro, proteggendo account che non avrebbero mai dovuto essere trattati come privilegiati.</p><h3>Caso reale #2 &#8211; Quando la sicurezza incontra l&#8217;eredit&#224;</h3><p>Altro cliente, altro ambiente ibrido: <strong>Active Directory + Entra ID</strong>, con Entra Connect regolarmente configurato.<br>Questa volta per&#242; il contesto &#232; diverso: <strong>ambiente stabile</strong>, nessuna migrazione in corso.</p><p>Viene introdotta una soluzione di <em>Manutenzione Utenti</em>, con due obiettivi ben definiti:</p><ul><li><p>notificare agli utenti la scadenza della password, consentendone il cambio da Entra ID con <em>password writeback </em>su Active Directory</p></li><li><p>disattivare automaticamente le utenze per cui non viene rilevata attivit&#224;, on&#8209;premise o cloud, da un certo periodo di tempo</p></li></ul><p>Il tutto seguendo rigorosamente il principio del<strong> Principle of Least Privilege (POLP)</strong>.<br>Vengono creati un Service Principal per Entra ID ed un GMSA per Active Directory. Agli account di servizio vengono assegnati solo i permessi strettamente necessari (POLP). La soluzione viene configurata, testata ed avviata.<br>Tutto &#232; pensato e realizzato secondo i <strong>moderni standard di sicurezza</strong> e, inizialmente, tutto sembra funzionare correttamente.</p><p>Dopo poco tempo, per&#242;, emergono i primi problemi:</p><ul><li><p>alcuni utenti non riescono a cambiare la password</p></li><li><p>altri non possono essere disattivati automaticamente</p></li></ul><p>A questo punto l&#8217;analisi si concentra dove ormai abbiamo intuito che conviene guardare: <strong>permessi</strong> sugli account impattati, <strong>AdminSDHolder</strong> ed <strong>SDProp</strong>.</p><p>Quello che emerge &#232; una situazione meno rara di quanto si possa pensare.<br>Sono presenti utenti che in passato <strong>hanno fatto parte di gruppi protetti</strong>, ma che successivamente ne sono usciti, lasciando una configurazione incoerente: oggetti che non sono pi&#249; privilegiati, che continuano ad avere <strong>adminCount = 1</strong>, <strong>eredit&#224; </strong>dei permessi<strong> interrotta</strong>, template <strong>AdminSDHolder</strong> applicato.</p><p>In questo caso specifico, la causa principale &#232; stata identificata nell&#8217;uso di <strong>assegnazioni dinamiche di gruppi privilegiati</strong>, basate su <strong>Just&#8209;In&#8209;Time Administration</strong>, sempre nel rispetto del POLP.<br>Una scelta corretta dal punto di vista della sicurezza, ma che non ha tenuto conto degli effetti persistenti di AdminSDHolder sugli oggetti in ambito.</p><p>La soluzione sulla carta sarebbe potuta sembrare semplice: <em>facciamo una bonifica e siamo a posto</em>. In realt&#224; si &#232; rivelata pi&#249; complessa del previsto, per alcune implicazioni supplementari.<br>La prima questione &#232; che, per consentire il corretto funzionamento della <em>Manutenzione Utenti</em>, &#232; stato necessario <strong>assegnare all&#8217;account di servizio i permessi direttamente sul template AdminSDHolder</strong>. Questo per consentire la manipolazione di oggetti rimasti &#8220;incastrati&#8221; nel limbo dei permessi.</p><p>Ancora una volta un <strong>dettaglio</strong> cambia per&#242; completamente lo scenario.</p><p>Questo ha infatti un impatto importante in termini di sicurezza: il sistema su cui gira la soluzione diventa a tutti gli effetti <strong>un asset critico</strong>, che deve essere trattato come <strong>Tier 0</strong> secondo <strong>l&#8217;AD Tier Model</strong>, con tutte le implicazioni del caso in termini di hardening, accessi e segregazione. Per questi aspetti vi rimando all&#8217;ottimo <a href="https://www.ictpower.it/sicurezza/implementare-active-directory-tier-model.htm">articolo</a> dell&#8217;amico <a href="https://www.linkedin.com/in/stefanonieri/">Stefano Nieri</a>.</p><p>Infine, serve prendere coscienza che non &#232; sufficiente fare tutto questo per poter risolvere: gli oggetti rimasti nel limbo vengono comunque <strong>esclusi dai successivi cicli di SDProp</strong>. Questo gli consente di &#8220;schivare&#8221; il nuovo set di permessi che consentirebbe alla soluzione di funzionare.</p><p>Unico modo per risolvere: una <strong>bonifica ad-hoc</strong> per ricondurre l&#8217;ambiente ad una situazione stabile.</p><p>Dopo aver rivisto tutto l&#8217;impianto:</p><p>&#183; una password resettata in cloud riesce ad essere propagata correttamente su Active Directory</p><p>&#183; un utente, che non accede in cloud od on-premise da molto tempo, riesce ad essere correttamente disattivato</p><p>Ancora una volta, non si tratta di una configurazione sbagliata, si tratta dell&#8217;interazione tra meccanismi legacy e requisiti di sicurezza moderni, il cui design se preso con leggerezza porta a risultati ingannevoli.</p><p>Gli ambienti ibridi quindi, con gli standard di sicurezza richiesti oggi, sono intrinsecamente pi&#249; complessi di quelli cloud-only.<br>Anche in questo caso, una maggiore consapevolezza in fase di design avrebbe permesso di impostare il lavoro fin dall&#8217;inizio nella direzione corretta, evitando costose correzioni a posteriori.</p><h2>Cosa ci ha insegnato il guardiano</h2><p>AdminSDHolder &#232; un perfetto esempio di come un &#8220;ingranaggio&#8221; che gira sotto il cofano da pi&#249; di vent&#8217;anni possa venire dimenticato: non richiede manutenzione, non genera alert, non fa rumore.</p><p>Eppure, il risultato del suo lavoro <strong>&#232; sempre presente</strong>, anche &#8211; e soprattutto &#8211; in contesti moderni e orientati al cloud.</p><p>La prima lezione che il guardiano ci lascia &#232; semplice, ma spesso sottovalutata: <strong>ignorare un meccanismo non lo rende innocuo</strong>.<br>AdminSDHolder continua a fare ci&#242; per cui &#232; stato progettato, applicando regole di sicurezza pensate per proteggere le fondamenta di Active Directory, anche quando sopra quelle fondamenta costruiamo automazioni, integrazioni cloud e processi &#8220;moderni&#8221;.</p><p>La seconda lezione &#232; che <strong>fare le cose correttamente non &#232; sempre sufficiente</strong>, se manca la consapevolezza di ci&#242; che accade sotto.<br>Nei casi visti non c&#8217;erano configurazioni improvvisate o ambienti trascurati: c&#8217;erano migrazioni pianificate, principi di least privilege, Just&#8209;In&#8209;Time administration e soluzioni pensate secondo gli standard di sicurezza attuali.<br>Eppure, senza conoscere gli effetti persistenti di AdminSDHolder, anche scelte corrette hanno prodotto risultati inattesi.</p><p>Il guardiano ci insegna anche che <strong>l&#8217;eredit&#224; sui sistemi non &#232; sempre visibile</strong>, ma prima o poi presenta il conto.<br>Utenti transitati da gruppi privilegiati, attributi come <em>adminCount</em> mai ripristinati, ereditariet&#224; dei permessi interrotta: elementi che possono restare latenti per anni, fino a quando un nuovo progetto, una nuova integrazione o un nuovo requisito di sicurezza non li porta improvvisamente alla luce.<br>Quando accade, il problema non si manifesta come un errore chiaro, ma come un comportamento &#8220;strano&#8221; da decifrare, difficile da diagnosticare e spesso pi&#249; costoso da correggere di quanto ci si aspetti.</p><p>C&#8217;&#232; infine una lezione di design pi&#249; ampia: <strong>negli ambienti ibridi la complessit&#224; non &#232; un&#8217;eccezione, &#232; la norma</strong>.<br>Cloud e on&#8209;premise non sono mondi separati, ma parti dello stesso sistema. Le regole del passato continuano a influenzare il presente, e progettare soluzioni moderne senza conoscerle significa semplicemente spostare i problemi pi&#249; avanti nel tempo.</p><p>&#200; proprio da questa consapevolezza che nasce<strong> </strong><em><strong>Legacy Things</strong></em>.<br>AdminSDHolder non &#232; un caso isolato, ma solo il primo di molti &#8220;vecchi ingranaggi&#8221; che continuano a vivere sotto la superficie delle infrastrutture attuali. Nei prossimi capitoli esploreremo altri meccanismi legacy, altre scelte progettuali del passato che ancora oggi condizionano il modo in cui costruiamo, proteggiamo e facciamo evolvere i nostri sistemi.</p><p>E a te che sei arrivato fino in fondo a questo primo capitolo chiedo:<br>quali sono i <strong>meccanismi nascosti</strong> che vorresti vedere portati alla luce nelle prossime puntate?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.legacythings.it/subscribe?&quot;,&quot;text&quot;:&quot;Iscriviti&quot;,&quot;language&quot;:&quot;it&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Grazie per aver letto Legacy Things! Iscriviti gratuitamente per ricevere nuovi post e supportare il mio lavoro.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digita la tua email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Iscriviti"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Chapter #1 - AdminSDholder: the guardian]]></title><description><![CDATA[When a 25&#8209;year&#8209;old Active Directory mechanism still shapes modern security and identity]]></description><link>https://www.legacythings.it/p/chapter-1-adminsdholder-the-guardian</link><guid isPermaLink="false">https://www.legacythings.it/p/chapter-1-adminsdholder-the-guardian</guid><dc:creator><![CDATA[Marco Lelli]]></dc:creator><pubDate>Mon, 02 Mar 2026 07:10:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!feII!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Versione italiana disponibile qui &#8594;</em><a href="https://www.legacythings.it/p/capitolo-1-adminsdholder-il-guardiano"> </a><em><a href="https://www.legacythings.it/p/capitolo-1-adminsdholder-il-guardiano">[IT]</a></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!feII!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!feII!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!feII!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!feII!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!feII!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!feII!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2555496,&quot;alt&quot;:&quot;Illustrazione che rappresenta AdminSDHolder come un guardiano dei privilegi in Active Directory.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/189367336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Illustrazione che rappresenta AdminSDHolder come un guardiano dei privilegi in Active Directory." title="Illustrazione che rappresenta AdminSDHolder come un guardiano dei privilegi in Active Directory." srcset="https://substackcdn.com/image/fetch/$s_!feII!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!feII!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!feII!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!feII!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552ae2d9-a69d-4f2f-b1f7-21bb74e9271f_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>December 15th, 1999.</strong><br>The world is living through a strange mix of excitement and tension.</p><p>In Italian cinemas, <em>The Green Mile</em> is on screen. In the United States, people debate <em>Fight Club</em> and are shocked by the ending of <em>The Sixth Sense</em>.<br>On the radio, <em>&#8220;Move Your Body&#8221;</em> by <strong>Eiffel 65</strong> plays nonstop, while <em>&#8220;Mambo No. 5&#8221;</em> by <strong>Lou Bega</strong> echoes across Europe.</p><p>But deep inside the IT world, attention is focused elsewhere.</p><p>Sixteen days remain before the turn of the millennium. The IT industry is holding its breath for the <strong>Millennium Bug</strong>, fearing that systems written decades earlier may fail when the date flips to January 1st, 2000.</p><p>In this climate of uncertainty, Microsoft releases <strong>Windows 2000 RTM</strong>, an operating system that breaks with the past and makes everything before it feel suddenly outdated, thanks to the introduction of <strong>Active Directory</strong>.</p><p>And the guardian is already there: <strong>AdminSDHolder</strong> is a native component, designed as an internal line of defense for the directory&#8217;s most critical mechanisms. It cannot be stopped or disabled. It can only be understood.</p><h2>What It Is and How It Works</h2><p><strong>AdminSDHolder</strong> refers to one of the most important &#8212; and most forgotten &#8212; protection mechanisms in Active Directory.</p><p>Its goal is simple: <strong>to protect the most privileged accounts and groups in the domain</strong>, preventing incorrect permissions or overly permissive delegations from compromising them, either accidentally or intentionally.</p><p>In simple terms: to avoid locking yourself out of your own house &#8212; or letting someone else do it for you.</p><p>To achieve this, Active Directory adopts a <strong>rigid and intentionally non&#8209;negotiable approach</strong>, documented in Microsoft&#8217;s <a href="https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory">official guidance</a> on protected accounts and groups.</p><p>Within every Active Directory domain, there is a special object called <strong>AdminSDHolder</strong>, located in the <strong>System</strong> container.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jPOk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jPOk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 424w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 848w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 1272w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jPOk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png" width="317" height="238" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:238,&quot;width&quot;:317,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88946,&quot;alt&quot;:&quot;Diagram showing the AdminSDHolder object in the System container of Active Directory.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/189367336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Diagram showing the AdminSDHolder object in the System container of Active Directory." title="Diagram showing the AdminSDHolder object in the System container of Active Directory." srcset="https://substackcdn.com/image/fetch/$s_!jPOk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 424w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 848w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 1272w, https://substackcdn.com/image/fetch/$s_!jPOk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8e5681b-4d21-4660-859a-c95c3c3bf716_317x238.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">The AdminSDHolder object contains the security template applied to domain privileged accounts.</figcaption></figure></div><p>This object is not a user or a group. It is a branch of Active Directory that contains a <strong>security template</strong>.</p><p>More precisely, its <strong>security descriptor (ACL)</strong> defines the <strong>standard permissions</strong> that must be enforced on all objects considered critical.</p><p><strong>In other words:</strong></p><ul><li><p>AdminSDHolder is the<strong> template</strong></p></li><li><p>the objects to be protected are the<strong> targets </strong>to which the<strong> template </strong>is applied</p></li></ul><p>Whenever Active Directory detects a discrepancy between the template and a target object, it intervenes to restore the correct state. But how?</p><p>The entire mechanism is driven by an internal &#8220;engine&#8221; called <strong>SDProp</strong> (Security Descriptor Propagator).</p><p><strong>SDProp</strong> is triggered on the Domain Controller holding the <strong>PDCE</strong> (Primary Domain Controller Emulator) role. It does not act in real time; instead, it performs a control cycle with a default interval of <strong>60 minutes</strong>, which can be customized via a registry key.</p><p>During this cycle, it works like a guardian: if it finds something out of place, it brings it back to the expected state.</p><p>But which objects need to be protected?</p><p>The determining factor is <strong>membership in built&#8209;in groups that hold a minimum level of privilege</strong> within the Active Directory environment. Here is the complete list:</p><ul><li><p>Account Operators</p></li><li><p>Administrator</p></li><li><p>Administrators</p></li><li><p>Backup Operators</p></li><li><p>Domain Admins</p></li><li><p>Domain Controllers</p></li><li><p>Enterprise Admins</p></li><li><p>Enterprise Key Admins</p></li><li><p>Key Admins</p></li><li><p>Krbtgt</p></li><li><p>Print Operators</p></li><li><p>Read&#8209;only Domain Controllers</p></li><li><p>Replicator</p></li><li><p>Schema Admins</p></li><li><p>Server Operators</p></li></ul><p>All of these groups and their respective members are subject to the <strong>AdminSDHolder template</strong>.</p><p><strong>Note:</strong><br>By &#8220;members&#8221; we mean both <strong>direct membership</strong> and <strong>indirect membership through group nesting</strong>, which can sometimes make it difficult to identify which objects fall within scope.</p><p>This explains one of the most frustrating behaviors for those unfamiliar with the mechanism:</p><blockquote><p><em>&#8220;I set permissions on the objects, everything works&#8230; and an hour later they&#8217;re gone.&#8221;</em></p></blockquote><p>But how is the template actually applied?</p><p>In an <strong>intentionally aggressive</strong> way: Active Directory assumes that <strong>no standard delegation should ever have control over these objects</strong>.</p><p>When an object falls within scope, <strong>three fundamental things happen</strong>:</p><p>1. Permission inheritance is disabled</p><ul><li><p>The object stops inheriting ACLs from its parent OU.</p></li><li><p>This means that delegations configured at the OU level <strong>no longer apply</strong>.</p></li></ul><p>2. AdminSDHolder permissions are applied</p><ul><li><p>The object&#8217;s ACL is aligned with the template, regardless of where the object is located in the directory structure.</p></li></ul><p>3. The <code>adminCount</code> attribute is set</p><ul><li><p>The <code>adminCount</code> attribute is set to <strong>1</strong>, indicating that the object <strong>is (or has been) protected</strong>.</p></li><li><p>This attribute, however, <strong>is not automatically reset</strong> when the object is removed from privileged groups, often leading to confusion and paradoxical situations.</p></li></ul><p>The last thing to remember is that <strong>this mechanism cannot be disabled</strong>.<br>Its dynamics must be clearly understood in order to properly design IT processes that interact with Active Directory &#8212; especially those that rely on specific ACLs.</p><h2>What Can Go Wrong</h2><p>Now that we understand how the mechanism works, we get to what I personally find the most interesting part: seeing <strong>what can go wrong</strong> when these mechanisms are not fully understood.</p><p>To do that, I found it effective to bring in <strong>real&#8209;world cases taken directly from the field</strong>.</p><h3>Real Case #1 &#8211; The Group You Don&#8217;t Expect</h3><p>We are in the middle of a complex migration project in a classic <strong>hybrid environment</strong>: <strong>Active Directory + Entra ID</strong>.</p><p>There is:</p><ul><li><p>a <strong>source AD domain</strong> with <em>source</em> users</p></li><li><p>a <strong>target AD domain</strong> with <em>target</em> users</p></li><li><p><strong>Entra Connect</strong> configured to work with both domains and synchronize everything to Entra ID</p></li></ul><p>Only the <em>source</em> users are currently synchronized.</p><p>The goal is as clear as it is ambitious: <strong>detach the source users and attach the target users, without any impact on the cloud</strong>.</p><p>For those who have never been involved in a project like this, I&#8217;ll restate my point of view: <strong>migrating resources in a modern hybrid environment is a balancing act</strong>.</p><p>Every single aspect must be aligned with absolute precision &#8212; otherwise, failure is almost guaranteed.</p><p>As soon as the migration procedure is prepared, the first problems emerge: <strong>more than half of the users show inconsistent attributes between on&#8209;premises and cloud</strong>.</p><p>At a quick glance, Entra Connect reports recurring errors: <em><strong>permission-issue</strong></em>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FDPx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FDPx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 424w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 848w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 1272w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FDPx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png" width="356" height="225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:225,&quot;width&quot;:356,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85780,&quot;alt&quot;:&quot;Entra Connect showing synchronization errors caused by permission issues.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/189367336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Entra Connect showing synchronization errors caused by permission issues." title="Entra Connect showing synchronization errors caused by permission issues." srcset="https://substackcdn.com/image/fetch/$s_!FDPx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 424w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 848w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 1272w, https://substackcdn.com/image/fetch/$s_!FDPx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1582aee-bdd3-4b08-884e-9b1dca0a3166_356x225.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Entra Connect fails synchronization due to permission issues.</figcaption></figure></div><p><strong>First check:</strong> the permissions of the <strong>Entra Connect service account</strong>, as suggested by this <a href="https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/user-prov-sync/troubleshoot-permission-issue-sync-service-manager">official article</a>.</p><p>Nothing unusual at first glance.</p><p>Digging deeper, however, a curious detail emerges: <strong>all the users affected by the issue have one thing in common</strong>: from a certain point onward, new users are being created with an <em>&#8220;unexplained&#8221;</em> membership &gt; <strong>Print Operators</strong>.</p><p>That <strong>detail </strong>changes everything:  <strong>Print Operators</strong> is one of the <strong>protected groups</strong> in Active Directory.</p><p>Becoming a member automatically places the object within the <strong>AdminSDHolder scope</strong>, with inheritance disabled, permissions rewritten by <strong>SDProp</strong>, and ACLs that no longer follow the OU structure.</p><p><strong>A mechanism designed 25 years ago was blocking the correct data flow to the cloud.</strong></p><p>The solution turned out to be anything but straightforward:</p><ul><li><p>review of provisioning mechanisms</p></li><li><p>removal of incorrect group memberships</p></li><li><p>restoration of correct permissions on hundreds of user accounts</p></li><li><p>realignment with the cloud</p></li></ul><p>In short, a significant effort across multiple fronts &#8212; one that could have been avoided from the start with a bit more awareness in the design of provisioning flows.</p><p>In this case, poor <strong>AdminSDHolder</strong> was not blocking the migration at all.<br>It was simply doing its job, <strong>protecting accounts that should never have been treated as privileged in the first place</strong>.</p><h3>Real Case #2 &#8211; When Security Meets Legacy</h3><p>Another customer, another hybrid environment: <strong>Active Directory + Entra ID</strong>, with <strong>Entra Connect</strong> properly configured.<br>This time, however, the context is different: <strong>a stable environment</strong>, with no migration in progress.</p><p>A <strong>User Maintenance</strong> solution is introduced, with two clearly defined goals:</p><ul><li><p>notify users of upcoming password expiration, allowing them to change it from Entra ID using <strong>password writeback</strong> to Active Directory</p></li><li><p>automatically disable user accounts for which no activity is detected, either on&#8209;premises or in the cloud, for a given period of time</p></li></ul><p>All of this is implemented in strict compliance with the <strong>Principle of Least Privilege (POLP)</strong>.</p><p>A <strong>Service Principal</strong> is created for Entra ID and a <strong>GMSA</strong> for Active Directory.<br>Only the strictly necessary permissions are assigned to the service accounts (POLP).<br>The solution is configured, tested, and put into production.</p><p>Everything is designed and implemented according to <strong>modern security standards</strong>, and at first, everything appears to be working correctly.</p><p>After a short time, however, the first problems begin to surface:</p><ul><li><p>some users are unable to change their passwords</p></li><li><p>others cannot be automatically disabled</p></li></ul><p>At this point, the analysis focuses where experience has taught us to look:<br><strong>permissions on the affected accounts, AdminSDHolder, and SDProp</strong>.</p><p>What emerges is a situation that is less rare than one might expect.</p><p>There are users who <strong>previously belonged to protected groups</strong>, but were later removed from them, leaving behind an inconsistent configuration: objects that are no longer privileged, yet still have <strong>adminCount = 1</strong>, <strong>permission inheritance disabled</strong>, and the <strong>AdminSDHolder template applied</strong>.</p><p>In this specific case, the root cause was identified in the use of <strong>dynamic assignments to privileged groups</strong>, based on <strong>Just&#8209;In&#8209;Time Administration</strong>, still fully compliant with POLP.</p><p>A correct choice from a security standpoint &#8212; but one that failed to account for the <strong>persistent effects of AdminSDHolder</strong> on the affected objects.</p><p>On paper, the solution might have seemed simple: <em>clean things up and move on</em>.<br>In reality, it turned out to be more complex than expected due to additional implications.</p><p>The first issue was that, to allow the User Maintenance solution to function correctly, it became necessary to assign permissions <strong>directly on the AdminSDHolder template</strong> to the service account.<br>This was required to enable the manipulation of objects that had become &#8220;stuck&#8221; in a permissions limbo.</p><p>Once again, <strong>a small detail </strong>completely changes the scenario.</p><p>This has a significant impact from a security perspective: the system running the solution effectively becomes a <strong>critical asset</strong>, which must be treated as <strong>Tier 0</strong> according to the <strong>AD Tier Model</strong>, with all the associated implications in terms of hardening, access control, and segregation.</p><p>For these aspects, I refer you to the excellent <a href="https://www.ictpower.it/sicurezza/implementare-active-directory-tier-model.htm">article</a> by my friend <strong><a href="https://www.linkedin.com/in/stefanonieri/">Stefano Nieri</a></strong>.</p><p>Finally, it is important to realize that even all of this is <strong>not sufficient</strong> on its own to fully resolve the issue: objects stuck in this limbo are still <strong>excluded from subsequent SDProp cycles</strong>.<br>This allows them to &#8220;bypass&#8221; the new permission set that would otherwise enable the solution to work correctly.</p><p>The only way to resolve the situation is an <strong>ad&#8209;hoc cleanup</strong>, aimed at bringing the environment back to a stable state.</p><p>After reviewing the entire setup:</p><ul><li><p>a password reset in the cloud is correctly propagated to Active Directory</p></li><li><p>a user who has not accessed either the cloud or on&#8209;premises for a long time can be properly disabled</p></li></ul><p>Once again, this is not a case of incorrect configuration.<br>It is the result of the interaction between <strong>legacy mechanisms and modern security requirements</strong>, whose design &#8212; if treated lightly &#8212; can lead to misleading results.</p><p>Hybrid environments, therefore, with today&#8217;s required security standards, are <strong>intrinsically more complex than cloud&#8209;only environments</strong>.</p><p>In this case as well, greater awareness during the design phase would have made it possible to set things up correctly from the start, <strong>avoiding costly corrective actions later on</strong>.</p><h2>Lessons learned from the Guardian</h2><p><strong>AdminSDHolder</strong> is a perfect example of how a &#8220;gear&#8221; that has been running under the hood for more than twenty years can be forgotten: it requires no maintenance, generates no alerts, and makes no noise.</p><p>And yet, the result of its work is always present &#8212; even, and especially, in modern cloud&#8209;oriented environments.</p><p>The first lesson the guardian teaches us is simple, but often underestimated:<br><strong>ignoring a mechanism does not make it harmless.</strong></p><p>AdminSDHolder continues to do exactly what it was designed to do, enforcing security rules meant to protect the foundations of Active Directory &#8212; even when, on top of those foundations, we build automation, cloud integrations, and &#8220;modern&#8221; processes.</p><p>The second lesson is that <strong>doing things correctly is not always enough</strong> if there is no awareness of what happens underneath.</p><p>In the cases we&#8217;ve seen, there were no improvised configurations or neglected environments.<br>There were planned migrations, least&#8209;privilege principles, Just&#8209;In&#8209;Time administration, and solutions designed according to current security standards.</p><p>And yet, without understanding the persistent effects of AdminSDHolder, even correct choices produced unexpected results.</p><p>The guardian also teaches us that <strong>legacy in systems is not always visible</strong>, but sooner or later, it comes back to collect its due.</p><p>Users who once belonged to privileged groups, attributes like <code>adminCount</code> that were never reset, broken permission inheritance &#8212; these are elements that can remain latent for years, until a new project, a new integration, or a new security requirement suddenly brings them to light.</p><p>When that happens, the problem does not manifest as a clear error, but as a &#8220;strange&#8221; behavior that is difficult to interpret, hard to diagnose, and often far more expensive to fix than expected.</p><p>Finally, there is a broader design lesson: <strong>in hybrid environments, complexity is not an exception &#8212; it is the norm.</strong></p><p>Cloud and on&#8209;premises are not separate worlds, but parts of the same system.<br>Rules from the past continue to influence the present, and designing modern solutions without knowing them simply means pushing problems further down the road.</p><p>It is precisely from this awareness that <em><strong>Legacy Things</strong></em> was born.</p><p>AdminSDHolder is not an isolated case, but only the first of many &#8220;old gears&#8221; that continue to operate beneath the surface of today&#8217;s infrastructures.<br>In the next chapters, we will explore other legacy mechanisms &#8212; other design choices from the past that still shape how we build, protect, and evolve our systems today.</p><p>And to you, who made it all the way to the end of this first chapter, I ask:</p><p><strong>which hidden mechanisms would you like to see brought into the light next?</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.legacythings.it/subscribe?&quot;,&quot;text&quot;:&quot;Iscriviti&quot;,&quot;language&quot;:&quot;it&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Grazie per aver letto Legacy Things! Iscriviti gratuitamente per ricevere nuovi post e supportare il mio lavoro.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digita la tua email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Iscriviti"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Perché Legacy Things]]></title><description><![CDATA[Le radici del progetto]]></description><link>https://www.legacythings.it/p/perche-legacy-things</link><guid isPermaLink="false">https://www.legacythings.it/p/perche-legacy-things</guid><dc:creator><![CDATA[Marco Lelli]]></dc:creator><pubDate>Sun, 01 Mar 2026 09:35:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sO_L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>English version available here &#8594;<a href="https://legacythings.substack.com/publish/post/189152381"> [EN]</a></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sO_L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sO_L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!sO_L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!sO_L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!sO_L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sO_L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1506581,&quot;alt&quot;:&quot;Illustrazione che mostra tecnologie IT moderne in superficie e sistemi legacy come radici sottostanti, simbolo del progetto Legacy Things.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/189150877?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Illustrazione che mostra tecnologie IT moderne in superficie e sistemi legacy come radici sottostanti, simbolo del progetto Legacy Things." title="Illustrazione che mostra tecnologie IT moderne in superficie e sistemi legacy come radici sottostanti, simbolo del progetto Legacy Things." srcset="https://substackcdn.com/image/fetch/$s_!sO_L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!sO_L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!sO_L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!sO_L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc39d4dc6-6d70-4a35-a405-f311f0fbb502_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Osservando ci&#242; che accade nelle moderne infrastrutture IT, mi capita sempre pi&#249; spesso di imbattermi in malfunzionamenti o inefficienze che non nascono da bug di sistema o errori di progettazione, ma da qualcosa di molto pi&#249; semplice: <strong>un gap di conoscenza</strong>.</p><p>I nuovi custodi delle infrastrutture enterprise sono cresciuti in un contesto dinamico, dove il cloud &#232; il minimo sindacale e i sistemi si parlano tramite API o protocolli moderni. Sono estremamente competenti quando si parla di app, federazioni, container, AI.<br>Spesso per&#242; non hanno mai avuto l&#8217;opportunit&#224; di approfondire davvero le fondamenta on-premise che ancora reggono tutto e quando ci devono mettere le mani improvvisano o si affidano alle dubbie risposte dell&#8217;AI.</p><p>Meccanismi che per chi ha iniziato tra Windows 2000 e le prime foreste Active Directory sono familiari, oggi diventano enigmi a volte incomprensibili.<br>Ma non hanno colpe, stanno semplicemente vivendo un&#8217;epoca dove i temi on-premise sono stati &#8220;messi in soffitta&#8221;, perch&#233; nel tempo hanno perso di interesse e quindi di essere divulgati.</p><p>Sono argomenti che non generano pi&#249; nuovo business, non vengono presentati ad un keynote, non fanno marketing. Restano l&#236;, latenti, nell&#8217;ombra di tecnologie pi&#249; interessanti che sono il cuore pulsante degli articoli tecnici e degli eventi IT.</p><p>Eppure, nonostante siano da molti &#8220;dichiarate morte&#8221;, queste tecnologie resistono ai decenni e restano operative, come dei soldati fedeli a cui nessuno ha detto che la guerra &#232; finita.</p><p>Tutto questo porta per&#242; ad effetti domino inevitabili: una configurazione errata nelle fondamenta di Active Directory pu&#242; produrre conseguenze a cascata sui sistemi di autenticazione cloud (Entra ID) o sull&#8217;accesso a piattaforme SaaS.</p><p>La cosa interessante che noto &#232; per&#242; che, quando questi temi vengono spiegati, l&#8217;interesse &#232; altissimo. Il problema non &#232; la mancanza di curiosit&#224;, &#232; la mancanza di esposizione.</p><p>&#200; da questa osservazione che nasce questo piccolo progetto: <strong>Legacy Things</strong>.<br>Una serie di articoli per esplorare quei meccanismi progettati venti e passa anni fa che continuano a influenzare le infrastrutture di oggi, sperando cos&#236; di poter colmare almeno un poco questo gap di conoscenza.</p><p>Nel primo capitolo partiremo da uno di quei meccanismi silenziosi che, di recente, ha dimostrato sul campo quanto il passato sia ancora profondamente intrecciato con il presente.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.legacythings.it/subscribe?&quot;,&quot;text&quot;:&quot;Iscriviti&quot;,&quot;language&quot;:&quot;it&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Grazie per aver letto Legacy Things! Iscriviti gratuitamente per ricevere nuovi post e supportare il mio lavoro.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digita la tua email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Iscriviti"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Why Legacy Things]]></title><description><![CDATA[The roots of the project]]></description><link>https://www.legacythings.it/p/why-legacy-things</link><guid isPermaLink="false">https://www.legacythings.it/p/why-legacy-things</guid><dc:creator><![CDATA[Marco Lelli]]></dc:creator><pubDate>Sun, 01 Mar 2026 09:30:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!X1mS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Versione italiana disponibile qui &#8594;</em> [<a href="https://legacythings.substack.com/publish/post/189150877">IT</a>]</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X1mS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X1mS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!X1mS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!X1mS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!X1mS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X1mS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1506581,&quot;alt&quot;:&quot;Illustration showing modern IT technologies above and legacy systems as roots below, representing the Legacy Things project.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.legacythings.it/i/189152381?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Illustration showing modern IT technologies above and legacy systems as roots below, representing the Legacy Things project." title="Illustration showing modern IT technologies above and legacy systems as roots below, representing the Legacy Things project." srcset="https://substackcdn.com/image/fetch/$s_!X1mS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!X1mS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!X1mS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!X1mS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe504c28b-2207-4a23-bb18-5b5e0449725c_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>While observing what happens in modern IT infrastructures, I increasingly find myself dealing with malfunctions and inefficiencies that are not caused by bugs or design flaws, but by something much simpler: a <strong>knowledge gap</strong>.</p><p>The new custodians of enterprise infrastructures have grown up in a dynamic environment, where the cloud is the baseline and systems communicate through APIs and modern protocols.<br>They are highly skilled when it comes to applications, federations, containers, and AI.</p><p>Yet many of them have never had the opportunity to truly understand the on&#8209;premise foundations that still hold everything together. And when they are forced to interact with them, they often improvise or rely on questionable answers from AI tools.</p><p>Mechanisms that were familiar to those who started their careers with Windows 2000 and the first Active Directory forests have now become puzzling, sometimes incomprehensible.</p><p>This is not their fault.<br>They are simply operating in a time when on&#8209;premise topics have been pushed aside, having lost visibility, interest, and therefore proper documentation and discussion.</p><p>These are not topics that generate new business.<br>They are not showcased in keynotes.<br>They do not drive marketing narratives.</p><p>They remain there, latent, in the shadow of more appealing technologies that dominate technical articles and IT events.</p><p>And yet, despite being declared &#8220;dead&#8221; by many, these technologies have endured for decades and continue to operate &#8212; like loyal soldiers who were never told the war was over.</p><p>This inevitably leads to cascading effects: a misconfiguration in the foundations of a system can ripple through cloud authentication services or access to SaaS platforms.</p><p>What I find most interesting is that, when these topics are properly explained, <strong>interest is always high</strong>.<br>The problem is not a lack of curiosity &#8212; it is a lack of exposure.</p><p>It is from this observation that <strong>Legacy Things</strong> was born:<br>a series of articles aimed at exploring mechanisms designed more than twenty years ago that still influence today&#8217;s infrastructures, with the hope of closing at least part of this knowledge gap.</p><p>In the first chapter, we&#8217;ll start from one of those silent mechanisms that has recently shown, in real&#8209;world scenarios, just how deeply the past is still intertwined with the present.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.legacythings.it/subscribe?&quot;,&quot;text&quot;:&quot;Iscriviti&quot;,&quot;language&quot;:&quot;it&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Grazie per aver letto Legacy Things! Iscriviti gratuitamente per ricevere nuovi post e supportare il mio lavoro.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digita la tua email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Iscriviti"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>