{"id":467,"date":"2018-09-02T17:26:48","date_gmt":"2018-09-02T15:26:48","guid":{"rendered":"http:\/\/remivernier.com\/?p=467"},"modified":"2018-09-25T16:09:10","modified_gmt":"2018-09-25T14:09:10","slug":"integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect","status":"publish","type":"post","link":"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/","title":{"rendered":"Int\u00e9grer une application \u00e0 Azure AD (MSAL) et authentification avec OpenID Connect"},"content":{"rendered":"<h2>Petit rappel sur le protocole OAuth 2.0 et la couche OpenID Connect (dans le contexte AZURE AD)<\/h2>\n<p><strong>OpenID Connect<\/strong> (OIDC) est une simple couche d&rsquo;identification bas\u00e9e sur le protocole OAuth 2.0 (Protocole d&rsquo;autorisation)<strong>.<\/strong> Avec OpenID Connect, outre un jeton d\u2019acc\u00e8s, les applications peuvent \u00e9galement obtenir un jeton d\u2019identification aupr\u00e8s d\u2019Azure AD. Les jetons d\u2019identification OpenID Connect contiennent des revendications sur l\u2019identit\u00e9 de l\u2019utilisateur et des informations sur la m\u00e9thode et le lieu d\u2019authentification. Des flux OpenID Connect sont g\u00e9n\u00e9ralement utilis\u00e9s par les applications web. Ces applications peuvent utiliser le jeton d\u2019identification pour personnaliser leur comportement avec l\u2019utilisateur pour lequel elles ont demand\u00e9 un jeton d\u2019acc\u00e8s. Et, dans de nombreux cas vont externaliser la connexion de leurs utilisateurs \u00e0 Azure AD et activer des exp\u00e9riences comme l\u2019authentification unique (SSO).<\/p>\n<p class=\"\"><strong>OAuth 2.0<\/strong> est un protocole d\u2019autorisation. Il d\u00e9finit la fa\u00e7on dont les applications peuvent acc\u00e9der aux jetons d\u2019acc\u00e8s par une authentification directe \u00e0 Azure Active Directory ou par la redirection d\u2019un utilisateur pour une authentification aupr\u00e8s d\u2019Azure AD et l\u2019acceptation des autorisations requises par votre application.<\/p>\n<ul>\n<li>Dans le premier cas, votre application obtient un jeton d\u2019acc\u00e8s qu\u2019elle peut utiliser pour appeler une API.<\/li>\n<li>Dans le deuxi\u00e8me cas, les applications obtiennent un jeton d\u2019acc\u00e8s qu\u2019elle peuvent utiliser pour appeler une API au nom d\u2019un utilisateur.<\/li>\n<\/ul>\n<p>Cependant, avec OAuth 2.0, l&rsquo;application ne re\u00e7oit pas d\u2019informations sur l\u2019utilisateur ou sur l\u2019authentification par Azure AD. Des flux OAuth 2.0 sont g\u00e9n\u00e9ralement utilis\u00e9s par des applications mobiles ou natives qui connaissent d\u00e9j\u00e0 l\u2019identit\u00e9 de l\u2019utilisateur, ou par des applications comme les services d\u2019arri\u00e8re-plan ou les d\u00e9mons, qui appellent des API sous leur propre identit\u00e9 et non au nom d\u2019un utilisateur.<\/p>\n<p>&nbsp;<\/p>\n<p>Le sc\u00e9nario se base \u00e0 partir des sources pr\u00e9sentes sur le <a href=\"https:\/\/github.com\/Azure-Samples\/active-directory-dotnet-webapp-openidconnect-v2\" target=\"_blank\" rel=\"noopener\">Github Microsoft<\/a>. Comme indiqu\u00e9 dans le titre de cet article nous allons utiliser la libraire MSAL (Endpoint V2). Pour un sc\u00e9nario avec la librairie ADAL, vous pouvez suivre le lien pr\u00e9sent plutot sur ce <a href=\"https:\/\/github.com\/Azure-Samples\/active-directory-dotnet-webapp-openidconnect\" target=\"_blank\" rel=\"noopener\">Github Microsoft<\/a>. Pour connaitre les diff\u00e9rences entres ces deux librairies vous pouvez consulter l&rsquo;article ci apr\u00e8s:\u00a0<a href=\"https:\/\/remivernier.com\/index.php\/2018\/09\/03\/azure-ad-adal-msal\/\">https:\/\/remivernier.com\/index.php\/2018\/09\/03\/azure-ad-adal-msal\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-522\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img1.jpg\" alt=\"\" width=\"663\" height=\"359\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img1.jpg 663w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img1-300x162.jpg 300w\" sizes=\"auto, (max-width: 663px) 100vw, 663px\" \/><\/p>\n<h2>Inscription de l&rsquo;application<\/h2>\n<p>Dans notre sc\u00e9nario, nous allons nous authentifier dans un premier temps avec un compte MSA (Pour rappel, MSAL permet par d\u00e9faut \u00e0 n&rsquo;importe quel compte MSA de s&rsquo;authentifier une application utilisant cette librairie). Dans un second temps nous verrons une authentification plus classique avec un compte pr\u00e9sent dans un tenant Azure AD.<\/p>\n<p>L&rsquo;inscription de l&rsquo;application ne s&rsquo;effectue pas classiquement sur le portail Azure. Nous allons utiliser la nouvelle librairie MSAL et l\u2019inscription s&rsquo;effectue donc sur le portail d&rsquo;enregistrement des applications: <a href=\"https:\/\/apps.dev.microsoft.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/apps.dev.microsoft.com\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-492\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/azure-ad-adal-msal-img1.jpg\" alt=\"\" width=\"644\" height=\"519\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/azure-ad-adal-msal-img1.jpg 644w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/azure-ad-adal-msal-img1-300x242.jpg 300w\" sizes=\"auto, (max-width: 644px) 100vw, 644px\" \/><\/p>\n<p>Le nom de l&rsquo;application est \u00ab\u00a0remiapp\u00a0\u00bb. Une fois l&rsquo;application cr\u00e9e, un ID de l&rsquo;application est alors affect\u00e9 (il faudra noter cette valeur car nous en auront besoin plus tard pour la configuration de l&rsquo;application).<\/p>\n<p>Un certain nombres d&rsquo;options s&rsquo;affichent alors.<br \/>\nVous noterez que les autorisation d\u00e9l\u00e9gu\u00e9es pour Microsoft Graph sont pr\u00e9-enregistr\u00e9e: \u00ab\u00a0User.Read\u00a0\u00bb. Pour notre application se sera suffisant.<br \/>\nNotez que nous n\u2019ajoutons pas d\u2019autorisations suppl\u00e9mentaires, comme nous le ferions avec ADAL (Endpoint V1). La fonction de consentement incr\u00e9mentiel et dynamique de MSAL (Endpoint V2) a rendu cette \u00e9tape facultative.<\/p>\n<p>Il existe deux types d\u2019autorisations\u00a0:<\/p>\n<ul>\n<li><strong>Les autorisations d\u00e9l\u00e9gu\u00e9es<\/strong> sont utilis\u00e9es par les applications qui s\u2019ex\u00e9cutent avec les droits de l&rsquo;utilisateur connect\u00e9. Ces droits\u00a0 sont d\u00e9l\u00e9gu\u00e9s \u00e0 l\u2019application qui appelle une API au nom de l\u2019utilisateur. De nombreuses autorisations peuvent \u00eatre consenties par l&rsquo;utilisateur, mais d\u2019autres n\u00e9cessitent le consentement de l\u2019administrateur.<\/li>\n<li><strong>Les autorisations de l\u2019application<\/strong> sont utilis\u00e9es par les applications qui s\u2019ex\u00e9cutent sans utilisateur (daemon, service, etc&#8230;). Ces autorisations accordent g\u00e9n\u00e9ralement \u00e0 l\u2019application de nombreux droits qui peuvent \u00eatres particuli\u00e8rement dangereux. Elles n\u00e9cessitent toujours l\u2019autorisation d\u2019un administrateur.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-526\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img2.jpg\" alt=\"\" width=\"892\" height=\"815\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img2.jpg 892w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img2-300x274.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img2-768x702.jpg 768w\" sizes=\"auto, (max-width: 892px) 100vw, 892px\" \/><\/p>\n<p>Nous allons ensuite g\u00e9n\u00e9rer un nouveau mot de passe pour l&rsquo;application via le bouton \u00ab\u00a0G\u00e9n\u00e9rer un nouveau mot de passe\u00a0\u00bb afin de g\u00e9n\u00e9rer et de stocker un secret partag\u00e9 dans le magasin de donn\u00e9es respectif, que vous pouvez utiliser dans votre application. il faudra aussi le noter car il ne s&rsquo;affiche qu&rsquo;une fois et ensuite seuls les 3 premiers caract\u00e8res sont pr\u00e9sents.<\/p>\n<p>Toute application doit utiliser un secret d\u2019application pour s\u2019identifier aupr\u00e8s d\u2019Azure AD lors de l\u2019\u00e9change du jeton de s\u00e9curit\u00e9. Chaque application peut contenir \u00e0 tout moment deux mots de passe valide, cela permet de renouveler le mot de passe sans interruption de service.<br \/>\nLe bouton \u00ab\u00a0G\u00e9n\u00e9rer une nouvelle paire de cl\u00e9s\u00a0\u00bb permet de cr\u00e9er une paire de cl\u00e9s publique\/priv\u00e9e qui peut \u00eatre t\u00e9l\u00e9charg\u00e9e et utilis\u00e9e pour l\u2019authentification du client aupr\u00e8s d\u2019Azure AD. Le bouton \u00ab\u00a0T\u00e9l\u00e9charger la cl\u00e9 publique\u00a0\u00bb permet d\u2019utiliser notre propre paire de cl\u00e9s publique\/priv\u00e9e.<\/p>\n<p><a href=\"http:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img5\/\" rel=\"attachment wp-att-529\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-529\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img5.jpg\" alt=\"\" width=\"678\" height=\"112\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img5.jpg 678w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img5-300x50.jpg 300w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a>\u00a0<a href=\"http:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img6\/\" rel=\"attachment wp-att-530\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-530\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img6.jpg\" alt=\"\" width=\"869\" height=\"404\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img6.jpg 869w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img6-300x139.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img6-768x357.jpg 768w\" sizes=\"auto, (max-width: 869px) 100vw, 869px\" \/><\/a><\/p>\n<p>Grace \u00e0 MSAL, et c&rsquo;est une grande nouveaut\u00e9,\u00a0 l\u2019application peut utiliser\u00a0<strong>un seul ID d\u2019application<\/strong>\u00a0pour plusieurs plateformes. Nous pourrions donc ajouter une plateforme WEB et Native dans la m\u00eame application. Dans notre cas nous avons besoin uniquement d&rsquo;une application Web:<\/p>\n<p><a href=\"http:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img3\/\" rel=\"attachment wp-att-527\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-527\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img3.jpg\" alt=\"\" width=\"1002\" height=\"421\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img3.jpg 1002w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img3-300x126.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img3-768x323.jpg 768w\" sizes=\"auto, (max-width: 1002px) 100vw, 1002px\" \/><\/a><\/p>\n<p>L&rsquo;URL de redirection correspond \u00e0 l&rsquo;URL vers lequel le navigateur doit \u00eatre redirig\u00e9 apr\u00e8s la phase d&rsquo;authentification. L&rsquo;URL saisie est https:\/\/localhost:44326\/ celle ci est l&rsquo;URL par d\u00e9faut sur laquelle l&rsquo;application va s\u2019ex\u00e9cuter avec Visual Studio.<\/p>\n<p>La case \u00e0 cocher \u00ab\u00a0Autoriser le flux implicite\u00a0\u00bb est coch\u00e9 par d\u00e9faut. Dans un flux implicite, l\u2019application re\u00e7oit des jetons directement d&rsquo;Azure AD, sans aucun \u00e9change de serveur \u00e0 serveur. Tout le traitement de l&rsquo;authentification et de la gestion des sessions est enti\u00e8rement ex\u00e9cut\u00e9 dans le client par un code JavaScript, sans redirections de pages suppl\u00e9mentaires.<\/p>\n<p><a href=\"http:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img4\/\" rel=\"attachment wp-att-528\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-528\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img4.jpg\" alt=\"\" width=\"1121\" height=\"396\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img4.jpg 1121w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img4-300x106.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img4-768x271.jpg 768w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img4-1024x362.jpg 1024w\" sizes=\"auto, (max-width: 1121px) 100vw, 1121px\" \/><\/a><\/p>\n<p>Des options suppl\u00e9mentaires nous permettent de d\u00e9finir un profil pour l&rsquo;application. Nous allons ajouter l&rsquo;URL de la page d\u2019accueil afin de voir l&rsquo;application sur le portail: <a href=\"https:\/\/www.microsoft.com\/consent\" target=\"_blank\" rel=\"noopener\">https:\/\/www.microsoft.com\/consent<\/a><\/p>\n<p><a href=\"http:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img7\/\" rel=\"attachment wp-att-531\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-531\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img7.jpg\" alt=\"\" width=\"818\" height=\"300\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img7.jpg 818w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img7-300x110.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img7-768x282.jpg 768w\" sizes=\"auto, (max-width: 818px) 100vw, 818px\" \/><\/a><\/p>\n<p>L\u2019application est \u00e0 pr\u00e9sent enregistr\u00e9e, nous allons passer \u00e0 la configuration de celle ci.<\/p>\n<p>&nbsp;<\/p>\n<h2>Cr\u00e9ation de l&rsquo;application dans visual studio<\/h2>\n<p>Ouvrir le projet sous Visual Studio:\u00a0active-directory-dotnet-webapp-openidconnect-v2.sln<\/p>\n<p>La seule configuration a effectuer dans notre projet se trouve dans le\u00a0Web.config. Les \u00e9l\u00e9ments \u00e0 renseigner sont le ClientID et ClientSecret pr\u00e9c\u00e9demment g\u00e9n\u00e9r\u00e9s:<\/p>\n<p><a href=\"http:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img8\/\" rel=\"attachment wp-att-532\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-532\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img8.jpg\" alt=\"\" width=\"591\" height=\"190\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img8.jpg 591w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img8-300x96.jpg 300w\" sizes=\"auto, (max-width: 591px) 100vw, 591px\" \/><\/a><\/p>\n<p>Ex\u00e9cuter ensuite le projet. Comme vous pouvez le constater au lancement de l&rsquo;application le bouton nous indique que nous pouvons nous authentifier avec un compte Microsoft. Une des force de MSAL est que nous pouvons ici nous authentifier avec un compte Microsoft MSA <strong>OU<\/strong> un compte issu d&rsquo;un annuaire Azure.<a href=\"http:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img9\/\" rel=\"attachment wp-att-690\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-690\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img9.jpg\" alt=\"\" width=\"805\" height=\"377\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img9.jpg 805w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img9-300x140.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img9-768x360.jpg 768w\" sizes=\"auto, (max-width: 805px) 100vw, 805px\" \/><\/a><\/p>\n<p><strong>Compte MSA:<\/strong><br \/>\n<a href=\"http:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img11\/\" rel=\"attachment wp-att-692\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-692\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img11.jpg\" alt=\"\" width=\"800\" height=\"424\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img11.jpg 800w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img11-300x159.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img11-768x407.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p><strong>Compte Azure:<br \/>\n<a href=\"http:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img10\/\" rel=\"attachment wp-att-691\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-691\" src=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img10.jpg\" alt=\"\" width=\"802\" height=\"424\" srcset=\"https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img10.jpg 802w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img10-300x159.jpg 300w, https:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img10-768x406.jpg 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a><\/strong><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Petit rappel sur le protocole OAuth 2.0 et la couche OpenID Connect (dans le contexte AZURE AD) OpenID Connect (OIDC) est une simple couche d&rsquo;identification bas\u00e9e sur le protocole OAuth 2.0 (Protocole d&rsquo;autorisation). Avec OpenID Connect, outre un jeton d\u2019acc\u00e8s, les applications peuvent \u00e9galement obtenir un jeton d\u2019identification aupr\u00e8s d\u2019Azure AD. Les jetons d\u2019identification OpenID<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,20,43],"tags":[],"class_list":["post-467","post","type-post","status-publish","format-standard","hentry","category-azure","category-azure-ad","category-http"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.8.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Int\u00e9grer une application \u00e0 Azure AD (MSAL) et authentification avec OpenID Connect - 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\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Int\u00e9grer une application \u00e0 Azure AD (MSAL) et authentification avec OpenID Connect - R\u00e9mi VERNIER\" \/>\n<meta property=\"og:description\" content=\"Petit rappel sur le protocole OAuth 2.0 et la couche OpenID Connect (dans le contexte AZURE AD) OpenID Connect (OIDC) est une simple couche d&rsquo;identification bas\u00e9e sur le protocole OAuth 2.0 (Protocole d&rsquo;autorisation). Avec OpenID Connect, outre un jeton d\u2019acc\u00e8s, les applications peuvent \u00e9galement obtenir un jeton d\u2019identification aupr\u00e8s d\u2019Azure AD. Les jetons d\u2019identification OpenID\" \/>\n<meta property=\"og:url\" content=\"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/\" \/>\n<meta property=\"og:site_name\" content=\"R\u00e9mi VERNIER\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-02T15:26:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-09-25T14:09:10+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img1.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=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/\",\"url\":\"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/\",\"name\":\"Int\u00e9grer une application \u00e0 Azure AD (MSAL) et authentification avec OpenID Connect - R\u00e9mi VERNIER\",\"isPartOf\":{\"@id\":\"https:\/\/remivernier.com\/#website\"},\"datePublished\":\"2018-09-02T15:26:48+00:00\",\"dateModified\":\"2018-09-25T14:09:10+00:00\",\"author\":{\"@id\":\"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906\"},\"breadcrumb\":{\"@id\":\"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/remivernier.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Int\u00e9grer une application \u00e0 Azure AD (MSAL) et authentification avec OpenID Connect\"}]},{\"@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":"Int\u00e9grer une application \u00e0 Azure AD (MSAL) et authentification avec OpenID Connect - 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\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/","og_locale":"fr_FR","og_type":"article","og_title":"Int\u00e9grer une application \u00e0 Azure AD (MSAL) et authentification avec OpenID Connect - R\u00e9mi VERNIER","og_description":"Petit rappel sur le protocole OAuth 2.0 et la couche OpenID Connect (dans le contexte AZURE AD) OpenID Connect (OIDC) est une simple couche d&rsquo;identification bas\u00e9e sur le protocole OAuth 2.0 (Protocole d&rsquo;autorisation). Avec OpenID Connect, outre un jeton d\u2019acc\u00e8s, les applications peuvent \u00e9galement obtenir un jeton d\u2019identification aupr\u00e8s d\u2019Azure AD. Les jetons d\u2019identification OpenID","og_url":"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/","og_site_name":"R\u00e9mi VERNIER","article_published_time":"2018-09-02T15:26:48+00:00","article_modified_time":"2018-09-25T14:09:10+00:00","og_image":[{"url":"http:\/\/remivernier.com\/wp-content\/uploads\/2018\/09\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect-img1.jpg"}],"author":"R\u00e9mi","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"R\u00e9mi","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/","url":"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/","name":"Int\u00e9grer une application \u00e0 Azure AD (MSAL) et authentification avec OpenID Connect - R\u00e9mi VERNIER","isPartOf":{"@id":"https:\/\/remivernier.com\/#website"},"datePublished":"2018-09-02T15:26:48+00:00","dateModified":"2018-09-25T14:09:10+00:00","author":{"@id":"https:\/\/remivernier.com\/#\/schema\/person\/a4c76c63a5a3d94454484845e42fc906"},"breadcrumb":{"@id":"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/remivernier.com\/index.php\/2018\/09\/02\/integrer-une-application-a-azure-ad-msal-et-authentification-avec-openid-connect\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/remivernier.com\/"},{"@type":"ListItem","position":2,"name":"Int\u00e9grer une application \u00e0 Azure AD (MSAL) et authentification avec OpenID Connect"}]},{"@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\/467","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=467"}],"version-history":[{"count":23,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/467\/revisions"}],"predecessor-version":[{"id":694,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/posts\/467\/revisions\/694"}],"wp:attachment":[{"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/media?parent=467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/categories?post=467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/remivernier.com\/index.php\/wp-json\/wp\/v2\/tags?post=467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}