{"id":879,"date":"2019-11-23T17:41:45","date_gmt":"2019-11-23T16:41:45","guid":{"rendered":"http:\/\/remivernier.com\/?p=879"},"modified":"2019-12-12T14:14:28","modified_gmt":"2019-12-12T13:14:28","slug":"azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur","status":"publish","type":"post","link":"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/","title":{"rendered":"AZURE AD \/ Office 365: Password Hash Sync et Seamless SSO en profondeur"},"content":{"rendered":"\n<p>L&rsquo;objectif de cet article n&rsquo;est absolument pas d&rsquo;expliquer comment installer et mettre en service ces 2 fonctionnalit\u00e9s d&rsquo;Azure AD.  Philippe Beraud, Daniel Pasquier, Jean-Yves Grasset et Philippe Maurent de Microsoft l&rsquo;ont tr\u00e8s bien fait <a href=\"https:\/\/download.microsoft.com\/download\/F\/C\/A\/FCA7C6E3-7153-4FB1-9825-0B1BB26F14E0\/AAD-Office-365-Seamless-Sign-In-Part-6.docx\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (s\u2019ouvre dans un nouvel onglet)\">dans ce document \u00e0 t\u00e9l\u00e9charger ici<\/a> ou alors en <a rel=\"noreferrer noopener\" aria-label=\"suivant un autre lien ici. (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/docs.microsoft.com\/fr-fr\/azure\/active-directory\/hybrid\/how-to-connect-sso\" target=\"_blank\">suivant un autre lien ici.<\/a><\/p>\n\n\n\n<p>Nous verrons donc plut\u00f4t en d\u00e9tail comment ces technologies fonctionnent et quelles sont les consid\u00e9rations \u00e0 prendre en compte en termes de s\u00e9curit\u00e9 si vous souhaitez d\u00e9ployer ces fonctionnalit\u00e9s.<\/p>\n\n\n\n<div style=\"height:49px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-large-font-size\">Password Hash Sync (PHS)<\/p>\n\n\n\n<p>Microsoft recommande syst\u00e9matiquement d\u2019activer Password Hash Sync dans n\u2019importe quel sc\u00e9nario d\u2019authentification Azure AD \/ O365 (f\u00e9d\u00e9r\u00e9 ou manag\u00e9). <br>Ce m\u00e9canisme consiste \u00e0 synchroniser, toujours via l&rsquo;outil <strong>Azure AD Connect<\/strong>, les hashs des mots de passe (hashs de hashs exactement, on le verra plus tard) de l\u2019Active Directory local vers Azure AD. Au-del\u00e0 de permettre une authentification directe aux services Azure pour un utilisateur dans le cadre d\u2019une authentification manag\u00e9e, ceci permet de b\u00e9n\u00e9ficier de fonctionnalit\u00e9s avanc\u00e9es en termes de s\u00e9curit\u00e9 : Par exemple la possibilit\u00e9 pour un administrateur de recevoir par mail une alerte quand un compte et un mot de passe de son organisation ont \u00e9t\u00e9 compromis et sont pr\u00e9sents sur le Dark Net. \u00c9galement en cas d\u2019un probl\u00e8me bien plus grave de cyber attaque sur le r\u00e9seau ou les services O365 pourraient toujours etre accessible alors que le syst\u00e8me d\u2019information est d\u00e9grad\u00e9. <\/p>\n\n\n\n<p>A l\u2019installation d\u2019<strong>Azure AD Connec<\/strong>t PHS est maintenant syst\u00e9matiquement activ\u00e9 par d\u00e9faut. Lors de IGNITE 2019, (Nov 2019) Microsoft a annonc\u00e9 que 91% des tenants AZURE AD ont la fonctionnalit\u00e9 PHS activ\u00e9e !<br>Pour v\u00e9rifier si c&rsquo;est le cas sur votre tenant, vous pouvez controler l&rsquo;activation sur le portail Azure AD:<br><img loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"119\" class=\"wp-image-1057\" style=\"width: 350px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img22.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img22.jpg 350w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img22-300x102.jpg 300w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><br><br>Il est pourtant l\u00e9gitime de se poser la question en termes de s\u00e9curit\u00e9, de l\u2019impl\u00e9mentation dans notre Syst\u00e8me d\u2019information de la synchronisation des secrets d&rsquo;Active Directory vers Azure Active Directory :<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Comment Azure AD Connect r\u00e9cup\u00e8re les mots de passe de AD ?<\/h4>\n\n\n\n<p>Dans son fonctionnement habituel, Active Directory ne stocke pas directement le mot de passe de l\u2019utilisateur en clair mais le hash MD4 correspondant au mot de passe d\u2019un compte. Cette valeur est stock\u00e9e de mani\u00e8re s\u00e9curis\u00e9e dans l\u2019attributs unicodePwd sur 16 octets et est appel\u00e9e empreinte NTLM (NTLM Hash).<br><br>Toutes les deux minutes, l\u2019agent password hash synchronization pr\u00e9sent sur le serveur Azure AD Connect demande \u00e0 un contr\u00f4leur de domaine les hashs nouvellement stock\u00e9s (dans l\u2019attribut unicodePwd). Cette action est effectu\u00e9e gr\u00e2ce \u00e0 compte de service dont le nom par d\u00e9faut commence par MSOL_ (Ce compte est cr\u00e9\u00e9 automatiquement au cours du processus d&rsquo;installation d\u2019Azure AD Connect mais un autre compte de service d\u00e9di\u00e9 peut etre utilis\u00e9) Ce dernier doit disposer des autorisations ci-dessous (\u00e0 positionner sur la racine du domaine):<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> Replicate Directory Changes<\/li><li> Replicate Directory Changes All <\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"822\" height=\"60\" src=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img1.jpg\" alt=\"\" class=\"wp-image-888\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img1.jpg 822w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img1-300x22.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img1-768x56.jpg 768w\" sizes=\"auto, (max-width: 822px) 100vw, 822px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Description d\u00e9taill\u00e9e du fonctionnement de la synchronisation de hachage de mot de passe<\/h4>\n\n\n\n<p>La section suivante explique en d\u00e9tail comment fonctionne la synchronisation du hachage de mot de passe entre Active Directory et Azure AD&nbsp;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img2-3-1024x537.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"537\" src=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img2-3-1024x537.jpg\" alt=\"\" class=\"wp-image-940\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img2-3-1024x537.jpg 1024w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img2-3-300x157.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img2-3-768x403.jpg 768w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img2-3.jpg 1043w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Nous prendrons en exemple le mot de passe bien connu <strong>Azerty123 <\/strong>dont le hash stock\u00e9 dans l&rsquo;attribut unicodePwd de l&rsquo;Active Directory est toujours <br><strong>9A-B1-47-88-AF-C1-3C-83-57-6D-FB-13-AC-61-91-52<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>L\u2019agent de synchronisation qui se trouve sur le serveur Azure AD Connect demande les hachages de mots de passe stock\u00e9s (dans l\u2019attribut unicodePwd) \u00e0 un contr\u00f4leur de domaine.<br><img loading=\"lazy\" decoding=\"async\" width=\"636\" height=\"55\" class=\"wp-image-898\" style=\"width: 636px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img3.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img3.jpg 636w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img3-300x26.jpg 300w\" sizes=\"auto, (max-width: 636px) 100vw, 636px\" \/><br><\/li><li>Avant l\u2019envoi, le contr\u00f4leur de domaine chiffre le hash du mot de passe MD4 \u00e0 l\u2019aide d\u2019une cl\u00e9 qui est un hash MD5 de la cl\u00e9 de session RPC et un salt. Le hash du mot de passe est donc encapsul\u00e9 dans une enveloppe de chiffrement MD5. <br><\/li><li>Le contr\u00f4leur de domaine envoie ensuite le r\u00e9sultat \u00e0 l\u2019agent de synchronisation via RPC. Le contr\u00f4leur de domaine passe \u00e9galement le sel \u00e0 l\u2019agent de synchronisation \u00e0 l\u2019aide du protocole de r\u00e9plication du contr\u00f4leur de domaine (MS-DRSR), pour que l\u2019agent puisse d\u00e9chiffrer l\u2019enveloppe.<br><img loading=\"lazy\" decoding=\"async\" width=\"777\" height=\"311\" class=\"wp-image-938\" style=\"width: 777px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img6.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img6.jpg 770w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img6-300x120.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img6-768x307.jpg 768w\" sizes=\"auto, (max-width: 777px) 100vw, 777px\" \/><br><\/li><li>Une fois que l\u2019agent de synchronisation de hachage de mot de passe dispose de l\u2019enveloppe chiffr\u00e9e, il utilise MD5CryptoServiceProvider et le sel pour g\u00e9n\u00e9rer une cl\u00e9 afin de d\u00e9chiffrer les donn\u00e9es re\u00e7ues dans leur format MD4 d\u2019origine. L\u2019agent de synchronisation n\u2019a jamais acc\u00e8s au mot de passe en clair. <br>-&gt; <em>L\u2019utilisation de MD5 par l\u2019agent de synchronisation est strictement destin\u00e9e \u00e0 assurer la compatibilit\u00e9 du protocole de r\u00e9plication avec le contr\u00f4leur de domaine<\/em>.<br><\/li><li>L\u2019agent de synchronisation \u00e9tend le hash de mot de passe binaire de 16 octets \u00e0 64 octets en convertissant d\u2019abord le hash en cha\u00eene hexad\u00e9cimale de 32 octets, puis en reconvertissant cette cha\u00eene au format binaire avec l\u2019encodage UTF-16.<br><\/li><li>L\u2019agent de synchronisation ajoute pour chaque utilisateur un sel de 10 octets de long au fichier binaire de 64 octets pour renforcer la protection du hachage d\u2019origine.<br><strong>Sel g\u00e9n\u00e9r\u00e9 al\u00e9atoirement: <\/strong>3830918974b34b5011a4 <br><\/li><li>L\u2019agent de synchronisation combine alors le hash MD4 et le sel par utilisateur, puis place le tout dans la fonction de d\u00e9rivation de cl\u00e9 PBKDF2. 1 000 it\u00e9rations de l\u2019algorithme de hachage \u00e0 cl\u00e9 HMAC-SHA256 sont utilis\u00e9es.<br><strong>Hash MD4: <\/strong>9ab14788afc13c83576dfb13ac619152 <br><strong>Sel g\u00e9n\u00e9r\u00e9 al\u00e9atoirement:<\/strong> 3830918974b34b5011a4<br><img loading=\"lazy\" decoding=\"async\" width=\"721\" height=\"56\" class=\"wp-image-900\" style=\"width: 721px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img4.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img4.jpg 721w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img4-300x23.jpg 300w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><br><strong>v1<\/strong>;PPH1_MD4,<strong>3830918974b34b5011a4<\/strong>,1000,<strong>820a2e32db5ce3b46c2b<br>75f770fc17e454ade9f436e328ca8ce96998f09ce888<\/strong>;<br><\/li><li>L\u2019agent de synchronisation prend le hash de 32 octets g\u00e9n\u00e9r\u00e9 au point 7, concat\u00e8ne le sel par utilisateur et le nombre d\u2019it\u00e9rations SHA256, puis transmet la cha\u00eene d\u2019Azure AD Connect \u00e0 Azure AD via TLS.<br><img loading=\"lazy\" decoding=\"async\" width=\"747\" height=\"181\" class=\"wp-image-906\" style=\"width: 747px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img5-2.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img5-2.jpg 747w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img5-2-300x73.jpg 300w\" sizes=\"auto, (max-width: 747px) 100vw, 747px\" \/><br><em>-&gt; Le hash est concat\u00e9n\u00e9 avec le sel et le nombre d&rsquo;it\u00e9rations dans cette cha\u00eene finale qui est envoy\u00e9e \u00e0 Azure AD sous cette forme exacte.<br>Est pr\u00e9sent aussi dans cet extrait de trame la valeur SourceAnchor. Cette derni\u00e8re est d\u00e9finie en tant qu\u2019attribut immuable pendant la dur\u00e9e de vie d\u2019un objet. Elle identifie de fa\u00e7on unique un objet comme \u00e9tant le m\u00eame objet local et dans Azure AD. L\u2019attribut est \u00e9galement appel\u00e9 immutableId et les deux noms sont interchangeables. <\/em><br><\/li><li>Lorsqu\u2019un utilisateur tente de se connecter \u00e0 Azure AD et entre son mot de passe, le mot de passe est trait\u00e9 par le m\u00eame processus MD4+sel+PBKDF2+HMAC-SHA256. Si le hachage r\u00e9sultant correspond au hachage stock\u00e9 dans Azure AD, l\u2019utilisateur a entr\u00e9 le bon mot de passe et est authentifi\u00e9.<\/li><\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Consid\u00e9rations en mati\u00e8re de s\u00e9curit\u00e9<\/h4>\n\n\n\n<p>On l&rsquo;a vu plus haut, les autorisations donn\u00e9es au compte de service sont extr\u00eamement critiques. D\u00e8s que la fonction PHS est activ\u00e9e et que ces droits sont donn\u00e9s, vous devez prendre en compte les points ci dessous :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Le compte de service doit etre consid\u00e9r\u00e9 avec le m\u00eame niveau de criticit\u00e9 qu\u2019un compte administrateur de domaine. <\/li><li>Le serveur Azure AD Connect sur lequel le compte de service s\u2019ex\u00e9cute doit etre consid\u00e9r\u00e9 au m\u00eame niveau de s\u00e9curit\u00e9 que les contr\u00f4leurs de domaines (<a rel=\"noreferrer noopener\" aria-label=\"Tier 0 (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/docs.microsoft.com\/fr-fr\/windows-server\/identity\/securing-privileged-access\/securing-privileged-access-reference-material\" target=\"_blank\">Tier 0<\/a>)\u2026<\/li><li>Le mot de passe du compte de service est \u00e9galement stock\u00e9 en \u00ab&nbsp;clair&nbsp;\u00bb dans la base de donn\u00e9es SQL Server ou Windows Internal Database utilis\u00e9e par l&rsquo;agent de synchronisation. Il est donc crucial de s\u2019assurer que seuls les administrateurs de domaine ont acc\u00e8s \u00e0 cette base de donn\u00e9es.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Dois-je donc utiliser PHS?<\/h4>\n\n\n\n<p>Je pense qu&rsquo;en effet il est tr\u00e9s b\u00e9n\u00e9fique d&rsquo;utiliser cette fonctionnalit\u00e9 si les consid\u00e9rations en mati\u00e8re de s\u00e9curit\u00e9 ont \u00e9t\u00e9 respect\u00e9.<br>Techniquement, les m\u00e9canismes et protocoles sont robustes. <a rel=\"noreferrer noopener\" aria-label=\"PBKDF2 est largement utilis\u00e9 (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_PBKDF2_implementations\" target=\"_blank\">PBKDF2 est largement utilis\u00e9<\/a>, la fonction de d\u00e9rivation de cl\u00e9 est d\u00e9j\u00e0 \u00e9prouv\u00e9e. Aupravant le nombre d&rsquo;it\u00e9ration etait \u00e0 100, aujourdhui Microsoft l&rsquo;a augment\u00e9 \u00e0 1000 et il pourra etre \u00e0 nouveau augment\u00e9 dans le futur si besoin. Le sel est sur 10 octets, la <a rel=\"noreferrer noopener\" aria-label=\"RFC2898 recommande au minimum 8 octets (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/tools.ietf.org\/html\/rfc2898#section-4.1\" target=\"_blank\">RFC2898 recommande au minimum 8 octets<\/a>. Ainsi ajout\u00e9 il permet d&rsquo;\u00e9viter l&rsquo;utilisation de rainbow tables et donc limite les attaques sur plusieurs mots de passe en simultan\u00e9.<br>Bien sur impossible d&rsquo;utiliser ce hash pour effectuer des attaques Password Hash Sync sur le domaine local. Le NT Hash ne peut etre calcul\u00e9 \u00e0 partir du hash pr\u00e9sent dans AZURE AD.<\/p>\n\n\n\n<div style=\"height:54px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-large-font-size\">Seamless Single Sign-On (SSSO) <\/p>\n\n\n\n<p><strong>Seamless SSO<\/strong> (SSSO) permet aux utilisateurs finaux connect\u00e9s \u00e0 l&rsquo;Active Directory de ne pas avoir \u00e0 saisir leur mot de passe pour se connecter aux services Azure AD \/ Office 365 ou \u00e0 d&rsquo;autres applications AZURE.<br>Cette fonctionnalit\u00e9 s&rsquo;active facilement dans AZURE AD Connect \u00e0 partir de la version  1.1.644.0 et ne fonctionne que lorsque PHS (ou PTA) est aussi activ\u00e9. Nous le verrons, <strong>Kerberos <\/strong>est le protocole d&rsquo;authentification utilis\u00e9. C&rsquo;est pour cette raison que cela ne fonctionne qu&rsquo;avec les utilisateurs connect\u00e9s au r\u00e9seau local et leurs ordinateurs int\u00e9gr\u00e9s au domaine Active Directory. SSSO est prise en charge via par les principaux navigateur Web et les clients lourds Office ou Teams qui prennent en charge l&rsquo;authentification moderne.<\/p>\n\n\n\n<p>Vous pouvez controler l&rsquo;\u00e9tat d&rsquo;activation de Seamless SSO sur le portail Azure AD: <br><img loading=\"lazy\" decoding=\"async\" width=\"414\" height=\"127\" class=\"wp-image-1059\" style=\"width: 414px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img23.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img23.jpg 414w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img23-300x92.jpg 300w\" sizes=\"auto, (max-width: 414px) 100vw, 414px\" \/><\/p>\n\n\n\n<p><strong>Seamless SSO peut avantageusement remplacer ADFS<\/strong> pour l&rsquo;authentification aux services AZURE \/ Office 365. Seamless SSO est une fonctionnalit\u00e9 native d&rsquo;Active Directory adapt\u00e9e pour un service cloud. Elle ne n\u00e9cessite pas d&rsquo;infrastructure complexe comme ce qu&rsquo;il faut mettre en place pour les services de f\u00e9d\u00e9ration ADFS.<\/p>\n\n\n\n<p><em><strong>Attention:<\/strong> Il y a souvent des incompr\u00e9hentions sur l&rsquo;utilit\u00e9 de SSSO pour un ordinateur Windows 10 enregistr\u00e9 \u00e0 Azure AD et donc b\u00e9n\u00e9fi\u00e7iant de l&rsquo;exp\u00e9rience optimale du <strong>primary refresh tokens (PRT)<\/strong>. <br>Il est bien \u00e9videment possible d&rsquo;utiliser \u00e0 la fois Azure AD Join et Seamless SSO. Ces deux fonctions sont compl\u00e9mentaires. Si les deux fonctionnalit\u00e9s sont activ\u00e9es, <strong>la jonction Azure AD a priorit\u00e9 sur SSSO<\/strong>, mais l&rsquo;utilisation de SSSO garantie que l&rsquo;utilisateur ne verra presque jamais un formulaire d&rsquo;authentification, m\u00eame en cas de changement de mot de passe.<br>Pour les ordinateurs connect\u00e9s au domaine, ant\u00e9rieurs \u00e0 Windows 10 ou non-joint\/inscrit sur AZURE AD, SSSO sera utilis\u00e9 syst\u00e9matiquement. <\/em><strong>Idem, sans l&rsquo;extention <a rel=\"noreferrer noopener\" aria-label=\"Windows 10 Account (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/chrome.google.com\/webstore\/detail\/windows-10-accounts\/ppnbnpeolgkicgegkbkbjmhlideopiji\" target=\"_blank\">Windows 10 Account<\/a>, Chrome, n&rsquo;ayant pas acc\u00e8s au composant WAM de Windows 10, utilisera uniquement Seamless SSO et pas le m\u00e9canisme bas\u00e9 sur PRT.<\/strong>  <em>Pour les autres cas, le formulaire d&rsquo;authentification HTML AZURE s&rsquo;affichera.<\/em>  <\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Description d\u00e9taill\u00e9e du fonctionnement de Seamless SSO<\/h4>\n\n\n\n<p>Vous en conviendrez, \u00e0 premi\u00e8re vue, il est \u00e9trange techniquement d&rsquo;utiliser Kerberos pour s&rsquo;authentifier sur un service cloud!?<br><br>Le protocole a \u00e9t\u00e9 pens\u00e9 pour les sc\u00e9narios d&rsquo;authentification locaux, et fonctionne classiquement avec 3 acteurs: Un utilisateur identifi\u00e9 par un UPN (User Principal Name), un service \/ serveur identifi\u00e9 par un SPN (Service Principal Name), un tiers de confiance, le KDC (Key Distribution Center). Chaque acteur dispose d\u2019un secret (on parle de cl\u00e9 Kerberos) connu de lui et du Kdc : Kc (client) et Ks (service). Le KDC dispose de sa propre cl\u00e9 : Kkdc. <br><br>Pour que ce type de sc\u00e9nario fonctionne, il faut donc obligatoirement que le service\/serveur cloud AZURE partage un secret commun avec le contr\u00f4leur de domaine. C&rsquo;est quelque chose de classique dans un domaine Active Directory local, mais dans le cas d&rsquo;un service cloud, il faut que le compte machine sur lequel le Service Principal Name a \u00e9t\u00e9 enregistr\u00e9, puisse partager sa cl\u00e9 Ks avec AZURE AD. C&rsquo;est un module powershell int\u00e9gr\u00e9 \u00e0 AZURE AD Connect qui va effectuer cette op\u00e9ration lors de la premi\u00e8re configuration de SSSO.<br><br>Voici ce qu\u2019il se passe pendant l\u2019activation de la fonctionnalit\u00e9 SSSO dans Azure AD Connect : <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>L&rsquo;administrateur qui proc\u00e8de \u00e0 l&rsquo;activation de SSSO doit fournir un compte Domain Admin de l&rsquo;Active Directory et un compte Global Admin Azure AD.<\/li><li>Un compte d\u2019ordinateur nomm\u00e9 AZUREADSSOACC$ est cr\u00e9\u00e9 dans l&rsquo;Active Directory local.  Par ailleurs, deux noms de principal du service (SPN) Kerberos sont cr\u00e9\u00e9s pour repr\u00e9senter les deux URL utilis\u00e9es pendant la connexion \u00e0 Azure AD.   <br><img loading=\"lazy\" decoding=\"async\" width=\"730\" height=\"295\" class=\"wp-image-964\" style=\"width: 730px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img8.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img8.jpg 730w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img8-300x121.jpg 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/li><li>La cl\u00e9 de d\u00e9chiffrement Kerberos du compte d\u2019ordinateur (Ks) est alors transmise \u00e0 Azure AD de mani\u00e8re chiffr\u00e9e (S\u2019il existe plusieurs for\u00eats AD, chacun a sa propre cl\u00e9 de d\u00e9chiffrement Kerberos) :<br><img loading=\"lazy\" decoding=\"async\" width=\"724\" height=\"245\" class=\"wp-image-961\" style=\"width: 724px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img7-1.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img7-1.jpg 724w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img7-1-300x102.jpg 300w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><\/li><\/ul>\n\n\n\n<p>A cet instant, et puisque Azure AD connait la Cl\u00e9 Ks, il pourra d\u00e9chiffer le TGS (obtenu du KDC) qui sera transmis par le client au service AZURE AD. <br><br>Par d\u00e9faut, les navigateurs n&rsquo;envoient pas les informations d&rsquo;identification aux serveurs Web en r\u00e9ponse \u00e0 un  code HTTP 401 \u00e0 moins que l&rsquo;URL ne soit d\u00e9finie dans la <strong>zone Intranet<\/strong> d&rsquo;Internet Explorer.<br><br><img loading=\"lazy\" decoding=\"async\" width=\"383\" height=\"95\" class=\"wp-image-980\" style=\"width: 383px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img9.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img9.jpg 383w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img9-300x74.jpg 300w\" sizes=\"auto, (max-width: 383px) 100vw, 383px\" \/><br>Microsoft impose donc de d\u00e9clarer les 2 URLs publiques suivantes dans la zone Intranet:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> https:\/\/autologon.microsoftazuread-sso.com<\/li><li> https:\/\/aadg.windows.net.nsatc.net<\/li><\/ul>\n\n\n\n<p>Une fois effectu\u00e9, Seamless SSO fonctionne de la m\u00eame fa\u00e7on que n\u2019importe quelle autre connexion utilisant l\u2019authentification Windows int\u00e9gr\u00e9e (IWA): Le navigateur r\u00e9pond positivement au code HTTP 401 (Unauthorized) envoy\u00e9 par AZURE AD et fournit automatiquement les informations d\u2019identification de l\u2019utilisateur actuellement connect\u00e9 sous forme de ticket Kerberos (TGS encapsul\u00e9 dans les ent\u00eates WWW-Authorization) pour Azure AD.<br><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"87\" class=\"wp-image-981\" style=\"width: 606px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img10.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img10.jpg 606w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img10-300x43.jpg 300w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><br><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"224\" class=\"wp-image-982\" style=\"width: 606px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img11.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img11.jpg 546w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img11-300x111.jpg 300w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><\/p>\n\n\n\n<p>-&gt; <em>Pour un peu plus de d\u00e9tails sur ces m\u00e9canismes HTTP vous pouvez consulter l&rsquo;article sur ce site en <a href=\"https:\/\/remivernier.com\/index.php\/2018\/09\/16\/exploration-des-entetes-http-www-authenticate\/\">suivant le lien<\/a>.<\/em><\/p>\n\n\n\n<p>Je vous propose de voir \u00e0 pr\u00e9sent de mani\u00e8re plus pr\u00e9cise le m\u00e9canisme d&rsquo;un utilisateur se connectant avec un navigateur WEB (l&rsquo;authentification pour un client natif varie l\u00e9g\u00e8rement et fera l&rsquo;objet d&rsquo;un article \u00e0 part): <\/p>\n\n\n\n<p><a href=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img12.jpg\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"\ufffc (s\u2019ouvre dans un nouvel onglet)\"><img loading=\"lazy\" decoding=\"async\" width=\"1099\" height=\"612\" class=\"wp-image-989\" style=\"width: 1099px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img12.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img12.jpg 1099w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img12-300x167.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img12-1024x570.jpg 1024w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img12-768x428.jpg 768w\" sizes=\"auto, (max-width: 1099px) 100vw, 1099px\" \/><\/a><a href=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img12.jpg\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"\n (s\u2019ouvre dans un nouvel onglet)\"><br><\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li> L&rsquo;utilisateur tente d&rsquo;acc\u00e9der \u00e0 une application web ou ressource qui approuve les jetons de s\u00e9curit\u00e9 issus d&rsquo;Azure AD, telle que SharePoint Online pour Office 365 ou Outlook Web App \u00e0 partir d\u2019un appareil d\u2019entreprise joint au domaine. <br><\/li><li>Dans le cas ou l&rsquo;utilisateur ne s&rsquo;est pas d\u00e9j\u00e0 connect\u00e9, SharePoint Online ou OWA le redirige pour s&rsquo;authentifier aupr\u00e8s d&rsquo;Azure AD. <br><\/li><li>L&rsquo;utilisateur est ensuite invit\u00e9 \u00e0 fournir son nom d&rsquo;utilisateur afin qu&rsquo;Azure AD puisse d\u00e9terminer si la fonctionnalit\u00e9 SSSO est activ\u00e9e pour le tenant. En supposant que SSSO est activ\u00e9e sur le tenant, les \u00e9v\u00e9nements suivants se produisent: <br><\/li><li>Azure AD met le client au d\u00e9fi, via une r\u00e9ponse HTTP 401  (Unauthorized), de fournir un ticket Kerberos.<br><img loading=\"lazy\" decoding=\"async\" width=\"647\" height=\"251\" class=\"wp-image-1033\" style=\"width: 647px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img19.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img19.jpg 647w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img19-300x116.jpg 300w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><\/li><li>Le client demande alors un TGS \u00e0 Active Directory pour le SPN HTTP\/autologon.microsoftazuread-sso.com.<br><\/li><li>Active Directory localise le compte d&rsquo;ordinateur cr\u00e9\u00e9 par Azure AD Connect (<strong>AZUREADSSOACC<\/strong>$) grace au SPN, et retourne un TGS au client, chiffr\u00e9 avec le secret du compte d&rsquo;ordinateur Ks. Le ticket comprend l&rsquo;identit\u00e9 de l&rsquo;utilisateur actuellement connect\u00e9 \u00e0 l&rsquo;ordinateur.<br><img loading=\"lazy\" decoding=\"async\" width=\"572\" height=\"96\" class=\"wp-image-1023\" style=\"width: 572px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img13.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img13.jpg 572w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img13-300x50.jpg 300w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><br><\/li><li>Le client envoie dans l&rsquo;ent\u00eate Autorization le ticket TGS obtenu aupr\u00e8s d&rsquo;Active Directory \u00e0 Azure AD.<br><img loading=\"lazy\" decoding=\"async\" width=\"546\" height=\"49\" class=\"wp-image-1024\" style=\"width: 546px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img14.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img14.jpg 546w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img14-300x27.jpg 300w\" sizes=\"auto, (max-width: 546px) 100vw, 546px\" \/><br><\/li><li>Azure AD d\u00e9chiffre le ticket Kerberos \u00e0 l&rsquo;aide de la cl\u00e9 Ks pr\u00e9c\u00e9demment partag\u00e9e, r\u00e9cup\u00e8re l&rsquo;<strong>UserSid<\/strong> du domaine local et ainsi identifie l&rsquo;utilisateur connect\u00e9 de mani\u00e8re unique.<br><a rel=\"noreferrer noopener\" aria-label=\"\ufffc (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img18.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" width=\"979\" height=\"510\" class=\"wp-image-1030\" style=\"width: 979px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img18.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img18.jpg 979w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img18-300x156.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img18-768x400.jpg 768w\" sizes=\"auto, (max-width: 979px) 100vw, 979px\" \/><\/a><br><\/li><li>Azure&nbsp;AD termine le processus d&rsquo;authentification et informe l&rsquo;utilisateur s&rsquo;il est bien authentifi\u00e9.  <br>Dans certains cas, il peut demander \u00e0 l\u2019utilisateur de fournir des preuves suppl\u00e9mentaires, telles qu\u2019une authentification multifacteur.<br>Le client obtient alors un token d&rsquo;acc\u00e8s JWT de la part d&rsquo;Azure AD.<br><\/li><li>Pour finir, l\u2019utilisateur est redirig\u00e9 vers l&rsquo;application et fournit le token JWT d&rsquo;acc\u00e8s \u00e0 l&rsquo;application. <br><img loading=\"lazy\" decoding=\"async\" width=\"748\" height=\"572\" class=\"wp-image-1027\" style=\"width: 748px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img16.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img16.jpg 748w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img16-300x229.jpg 300w\" sizes=\"auto, (max-width: 748px) 100vw, 748px\" \/><br><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"866\" class=\"wp-image-1028\" style=\"width: 765px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img17.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img17.jpg 765w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img17-265x300.jpg 265w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><br><em>-&gt; En compl\u00e9ment d&rsquo;information, si l&rsquo;authentification au travers Seamless SSO aboutit, l\u2019utilisateur n\u2019a pas la possibilit\u00e9 de choisir l\u2019option <strong>Keep me signed in<\/strong>. <\/em><br><\/li><\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Consid\u00e9rations en mati\u00e8re de s\u00e9curit\u00e9 <\/h4>\n\n\n\n<p><strong>Emplacement du compte ordinateur AZUREADSSOACC$<\/strong><br>Le compte machine est cr\u00e9\u00e9 dans l&rsquo;OU par d\u00e9faut \/Computers\/. Il est pourtant extr\u00e8mement <strong>critique<\/strong>:<br>&#8211; Supprimer ce compte d\u00e9sactive compl\u00e8tement SSSO. <br>&#8211; Changer le mot de passe du compte ordinateur sans ex\u00e9cuter les commandes powershell ad\u00e9quates revient \u00e0 \u00ab\u00a0casser\u00a0\u00bb le m\u00e9cansime (Hash de AZUREADSSOACC$ dans AD  \u2260 Hash dans Azure AD = SSSO KO). <br>&#8211; D\u00e9couvrir le hash du compte machine reviendrait \u00e0 pouvoir disposer de l&rsquo;\u00e9quivalent du compte KRBTGT pour AZURE AD. <br><br>Pour pallier \u00e0 tous ces probl\u00e8mes il est donc conseill\u00e9 de d\u00e9placer le compte ordinateur AZUREADSSOACC$ dans une OU d\u00e9di\u00e9e sur laquelle l&rsquo;h\u00e9ritage des droits aura \u00e9t\u00e9 supprim\u00e9. Les ACL positionn\u00e9es sur cette nouvelle OU doivent \u00eatre tr\u00e8s restreintes. Seuls des administrateurs de domaine doivent \u00eatre en mesure de g\u00e9rer le compte d\u2019ordinateur. V\u00e9rifiez aussi que la d\u00e9l\u00e9gation Kerberos sur le compte d\u2019ordinateur est d\u00e9sactiv\u00e9e et qu\u2019aucun autre compte dans Active Directory ne dispose d\u2019autorisations de d\u00e9l\u00e9gation sur le compte d\u2019ordinateur AZUREADSSOACC$.<br>Concernant le dernier point sur la d\u00e9l\u00e9gation, des am\u00e9liorations ont \u00e9t\u00e9 effectu\u00e9es dans la version d&rsquo;Azure AD Connect v1.4.18.0. Cela n&#8217;emp\u00e8che pas un controle \ud83d\ude42<br><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"215\" class=\"wp-image-1089\" style=\"width: 1000px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img26.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img26.jpg 1000w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img26-300x65.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img26-768x165.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n\n\n\n<p><strong>Renouvellement de la cl\u00e9 Kerberos<\/strong><br>La cl\u00e9 de chiffrement Kerberos du compte d\u2019ordinateur (Ks) doit \u00e9galement \u00eatre trait\u00e9e comme sensible. Pour des raisons de s\u00e9curit\u00e9 ce m\u00e9canisme n&rsquo;est pas automatique: en l&rsquo;\u00e9tat cela reviendrait \u00e0 stocker quelque part un compte \u00ab\u00a0\u00e0 privil\u00e8ge\u00a0\u00bb du domaine local dans un script ou une tache planifi\u00e9e. C&rsquo;est pourtant un point important pour lequel Microsoft devrait proposer quelque chose. En effet, tout comme le cel\u00e8bre compte KRBTGT sur un Active Directory, il est fortement recommand\u00e9 de renouveller la cl\u00e9 de chiffrement Kerberos du compte d\u2019ordinateur AZUREADSSOACC$ au moins tous les <strong>30&nbsp;jours<\/strong> via le process ci  dessous:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"838\" height=\"132\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img21.jpg\" alt=\"\" class=\"wp-image-1049\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img21.jpg 838w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img21-300x47.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img21-768x121.jpg 768w\" sizes=\"auto, (max-width: 838px) 100vw, 838px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Ex\u00e9cutez <strong>$creds = Get-Credential<\/strong>. Quand vous y \u00eates invit\u00e9, entrez les informations d\u2019identification d\u2019administrateur de domaine pour la for\u00eat AD souhait\u00e9e. Microsoft pr\u00e9cise que le compte ne doit pas \u00eatre membre du groupe Utilisateurs prot\u00e9g\u00e9s.<\/li><li>Ex\u00e9cutez <strong>Update-AzureADSSOForest -OnPremCredentials $creds<\/strong>. Cette commande met \u00e0 jour la cl\u00e9 de d\u00e9chiffrement de Kerberos pour le compte de l\u2019ordinateur AZUREADSSOACC$ et la for\u00eat AD sp\u00e9cifique et dans Azure AD.<\/li><li>R\u00e9p\u00e9tez les \u00e9tapes pr\u00e9c\u00e9dentes pour chaque for\u00eat AD dans laquelle vous avez configur\u00e9 la fonctionnalit\u00e9.<\/li><\/ul>\n\n\n\n<p>Depuis quelque temps, le portail Azure indique s&rsquo;il est recommand\u00e9 de renouveller les cl\u00e9s de chiffrement Kerberos du compte AZUREADSSOACC$: <br><img loading=\"lazy\" decoding=\"async\" width=\"607\" height=\"105\" class=\"wp-image-1061\" style=\"width: 607px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img24.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img24.jpg 607w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img24-300x52.jpg 300w\" sizes=\"auto, (max-width: 607px) 100vw, 607px\" \/><\/p>\n\n\n\n<p><strong>Algorithme de chiffrement<\/strong> <br>Vous l&rsquo;avez certainement remarqu\u00e9 dans la capture klist plus haut, la cl\u00e9 Ks du compte ordinateur AZUREADSSOACC$ qui a permis de chiffrer les informations dans notre TGS est issue d\u2019une m\u00e9thode tr\u00e8s ancienne: <strong>RSADSI RC4-HMAC<\/strong>. <br><img loading=\"lazy\" decoding=\"async\" width=\"572\" height=\"96\" class=\"wp-image-1023\" style=\"width: 572px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img13.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img13.jpg 572w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img13-300x50.jpg 300w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><br>D\u2019autres types d\u2019empreintes, li\u00e9es \u00e0 Kerberos sont \u00e9galement calcul\u00e9es et ne demandent qu\u2019\u00e0 \u00eatre utilis\u00e9es. Seamless SSO prend aussi en charge les types de chiffrement AES256_HMAC_SHA1 et AES128_HMAC_SHA1. Il est donc recommand\u00e9 de ne plus utiliser RC4_HMAC_MD5 mais plutot <strong>AES256_HMAC_SHA1<\/strong>. Le type d&rsquo;algorithme de chiffrement est stock\u00e9 dans l&rsquo;attribut msDS-SupportedEncryptionTypes du compte dans l&rsquo;Active Directory.  Il suffira d\u2019indiquer au compte de service que nous supportons le chiffrement bas\u00e9 sur AES-256 via la console ADUC: <br><img loading=\"lazy\" decoding=\"async\" width=\"417\" height=\"291\" class=\"wp-image-1044\" style=\"width: 417px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img20.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img20.jpg 417w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img20-300x209.jpg 300w\" sizes=\"auto, (max-width: 417px) 100vw, 417px\" \/><br><em>-&gt; Si le type de chiffrement est d\u00e9fini sur RC4_HMAC_MD5 et que vous souhaitez le remplacer par l&rsquo;un des types de cryptage AES, veillez \u00e0 bien ex\u00e9cuter \u00e0 nouveau les commandes powershell de substitution de la cl\u00e9 de d\u00e9chiffrement Kerberos pour qu&rsquo;Azure AD puisse aussi les utiliser.<\/em> Dans le cas contraire, \u00e0 la suite du code code 401 (Unauthorized), Azure AD r\u00e9pondra 403 (Forbidden):<br><img loading=\"lazy\" decoding=\"async\" width=\"437\" height=\"72\" class=\"wp-image-1076\" style=\"width: 437px;\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img25.jpg\" alt=\"\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img25.jpg 437w, https:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img25-300x49.jpg 300w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;objectif de cet article n&rsquo;est absolument pas d&rsquo;expliquer comment installer et mettre en service ces 2 fonctionnalit\u00e9s d&rsquo;Azure AD. Philippe Beraud, Daniel Pasquier, Jean-Yves Grasset et Philippe Maurent de Microsoft l&rsquo;ont tr\u00e8s bien fait dans ce document \u00e0 t\u00e9l\u00e9charger ici ou alors en suivant un autre lien ici. Nous verrons donc plut\u00f4t en d\u00e9tail comment<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,14,43,4],"tags":[],"class_list":["post-879","post","type-post","status-publish","format-standard","hentry","category-azure-ad","category-directory-services","category-http","category-kerberos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.8.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AZURE AD \/ Office 365: Password Hash Sync et Seamless SSO en profondeur - R\u00e9mi VERNIER<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AZURE AD \/ Office 365: Password Hash Sync et Seamless SSO en profondeur - R\u00e9mi VERNIER\" \/>\n<meta property=\"og:description\" content=\"L&rsquo;objectif de cet article n&rsquo;est absolument pas d&rsquo;expliquer comment installer et mettre en service ces 2 fonctionnalit\u00e9s d&rsquo;Azure AD. Philippe Beraud, Daniel Pasquier, Jean-Yves Grasset et Philippe Maurent de Microsoft l&rsquo;ont tr\u00e8s bien fait dans ce document \u00e0 t\u00e9l\u00e9charger ici ou alors en suivant un autre lien ici. Nous verrons donc plut\u00f4t en d\u00e9tail comment\" \/>\n<meta property=\"og:url\" content=\"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/\" \/>\n<meta property=\"og:site_name\" content=\"R\u00e9mi VERNIER\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-23T16:41:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-12-12T13:14:28+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img22.jpg\" \/>\n<meta name=\"author\" content=\"R\u00e9mi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"R\u00e9mi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/\",\"url\":\"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/\",\"name\":\"AZURE AD \/ Office 365: Password Hash Sync et Seamless SSO en profondeur - R\u00e9mi VERNIER\",\"isPartOf\":{\"@id\":\"https:\/\/remivernier.com\/#website\"},\"datePublished\":\"2019-11-23T16:41:45+00:00\",\"dateModified\":\"2019-12-12T13:14:28+00:00\",\"author\":{\"@id\":\"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906\"},\"breadcrumb\":{\"@id\":\"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/remivernier.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AZURE AD \/ Office 365: Password Hash Sync et Seamless SSO en profondeur\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/remivernier.com\/#website\",\"url\":\"https:\/\/remivernier.com\/\",\"name\":\"R\u00e9mi VERNIER\",\"description\":\"Active Directory Services, Azure &amp; co...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/remivernier.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906\",\"name\":\"R\u00e9mi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/remivernier.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g\",\"caption\":\"R\u00e9mi\"},\"sameAs\":[\"http:\/\/www.linkedin.com\/in\/remi-vernier\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AZURE AD \/ Office 365: Password Hash Sync et Seamless SSO en profondeur - R\u00e9mi VERNIER","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/","og_locale":"fr_FR","og_type":"article","og_title":"AZURE AD \/ Office 365: Password Hash Sync et Seamless SSO en profondeur - R\u00e9mi VERNIER","og_description":"L&rsquo;objectif de cet article n&rsquo;est absolument pas d&rsquo;expliquer comment installer et mettre en service ces 2 fonctionnalit\u00e9s d&rsquo;Azure AD. Philippe Beraud, Daniel Pasquier, Jean-Yves Grasset et Philippe Maurent de Microsoft l&rsquo;ont tr\u00e8s bien fait dans ce document \u00e0 t\u00e9l\u00e9charger ici ou alors en suivant un autre lien ici. Nous verrons donc plut\u00f4t en d\u00e9tail comment","og_url":"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/","og_site_name":"R\u00e9mi VERNIER","article_published_time":"2019-11-23T16:41:45+00:00","article_modified_time":"2019-12-12T13:14:28+00:00","og_image":[{"url":"http:\/\/remivernier.com\/wp-content\/uploads\/2019\/11\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur-img22.jpg"}],"author":"R\u00e9mi","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"R\u00e9mi","Dur\u00e9e de lecture estim\u00e9e":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/","url":"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/","name":"AZURE AD \/ Office 365: Password Hash Sync et Seamless SSO en profondeur - R\u00e9mi VERNIER","isPartOf":{"@id":"https:\/\/remivernier.com\/#website"},"datePublished":"2019-11-23T16:41:45+00:00","dateModified":"2019-12-12T13:14:28+00:00","author":{"@id":"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906"},"breadcrumb":{"@id":"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/remivernier.com\/index.php\/2019\/11\/23\/azure-ad-office-365-password-hash-sync-et-seamless-sso-en-profondeur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/remivernier.com\/"},{"@type":"ListItem","position":2,"name":"AZURE AD \/ Office 365: Password Hash Sync et Seamless SSO en profondeur"}]},{"@type":"WebSite","@id":"https:\/\/remivernier.com\/#website","url":"https:\/\/remivernier.com\/","name":"R\u00e9mi VERNIER","description":"Active Directory Services, Azure &amp; co...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/remivernier.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906","name":"R\u00e9mi","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/remivernier.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f750448bc07f5d1d9c1189344283777ec0d33275c184599b199fb6b305bc6fba?s=96&d=mm&r=g","caption":"R\u00e9mi"},"sameAs":["http:\/\/www.linkedin.com\/in\/remi-vernier"]}]}},"_links":{"self":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/comments?post=879"}],"version-history":[{"count":173,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/879\/revisions"}],"predecessor-version":[{"id":1092,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/879\/revisions\/1092"}],"wp:attachment":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/media?parent=879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/categories?post=879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/tags?post=879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}