SlideShare une entreprise Scribd logo
Open Id Connect, Azure AD,
Angular 5 et Web API Core
Anthony Giretti
Tech Lead chez Nexus Innovations
http://anthonygiretti.com
Introduction
 Introduction d’Open ID Connect avec Azure AD
 Interfaçage avec un SPA (Angular 5)
 Validation d’un JWT dans une Web API (ASP.NET Core 2)
 Défis rencontrés
 Solutions aux limitations rencontrées
Open ID Connect
 OpenID Connect 1.0 est une couche d'identité au-dessus du protocole OAuth
2.0. Il permet aux clients de vérifier l'identité de l'utilisateur final en fonction de
l'authentification effectuée par un serveur d'autorisation, ainsi que d'obtenir des
informations de profil de base sur l'utilisateur final.
 OpenID Connect permet aux clients de tous types, y compris les clients Web,
mobiles et JavaScript, de demander et de recevoir des informations sur les
sessions authentifiées et les utilisateurs finaux.
 OpenID Connect effectue de nombreuses tâches identiques à celles d'OpenID
2.0, mais le fait d'une manière qui soit conviviale pour les API et utilisable par les
applications natives et mobiles.
Azure AD – Implicit workflow
Azure AD – Création d’une application
Azure AD – Création d’une application
Azure AD – Création d’une application
Azure AD – Autoriser les utilisateurs dans l’application
Azure AD – Activer l’Implicit flow
Azure AD – Ajouter les groupes dans les claims
Azure AD – Ajouter les rôles dans les claims
Azure AD – Déclarer le(s) Urls de réponse
Azure AD – Modifier la durée de vie d’un token
 Obligatoirement en Powershell, aucun UI de disponible pour ça
Azure AD – Modifier la durée de vie d’un token
Angular 5 - SetUp
 Installer une version « Angular » d’ADAL.JS (Microsoft)
 Adal-Angular5 (https://github.com/grumar/adal-angular5)
 Ne pas utiliser la fameuse librairie OIDC-CLIENT qui n’est pas totalement
compatible avec Azure AD
 Open ID Connect dans Azure AD n’est pas 100 % compliant avec Open ID Connect
 Impossible de rafraichir un Id_Token (Microsoft n’envoit pas d’access_token qui lui peut etre
rafraichit)
 D’autre issues comme la déconnection qui ne marche pas par example….
Angular 5 – Création d’un service d’authentification
 Configuration
Angular 5 – Création d’un service d’authentification
 Signin, SignOut, completeAuthentication et consommation du token
Angular 5 – Mécanisme d’authentification
 Créer une route de réponse pour réceptionner le token
Angular 5 – Mécanisme d’authentification
 Protéger ses routes avec un service garde Angular
Angular 5 – Interfaçage avec les API REST
 Comment utiliser le token lors des calls d’API REST
Angular 5 – Contournement à l’impossibilité de
rafraichir le token
 Attendre que le service de garde empêche d’accéder à une route et vous invite à
se réauthentifier
 Attendre d’attraper une 401 lors d’un call d’API
 Utiliser un compteur quand le token expire invitant à se réauthentifier
Angular 5 – Incompatibilité avec Angular 5.2.8
 Le token est devenu illisible depuis Angular 5.2.8 car les caractères spéciaux dans
l’url sont encodés
 Rester à Angular 5.2.7 ou inférieur
 Ou attendre un fix de la librairie Adal-angular5
 Ou le fixer vous-même 
Angular 5 – Incompatibilité avec Angular 5.2.8
 Avant:
Angular 5 – Incompatibilité avec Angular 5.2.8
 Après:
Angular 5 – Incompatibilité avec Angular 5.2.8
 Utilisation du hash par la librairie Adal-angular5
 Fix
WebAPI Core– SetUp
 Installation des packages requis
WebAPI Core– SetUp
 Configuration
WebAPI Core– Utilisation
Démo!
Conclusion
 OpenID Connect :
 Simple de consommer un JWT
 Simplicité d’intégration
 Basé sur le protocole OAuth 2.0
 Azure AD:
 Une solution Microsoft pour Open ID Connect avec AD
 Pas 100% compliant avec le protocole Open ID Connect (limitations)
Conclusion
 Angular 5
 Intégration facile
 ADAL.JS (et/ou autre version telle que Adal-Angular5)
 Récente incompatibilité avec Angular 5.2.8
 Web API
 Facile à configurer
 Facile de consommer et valider un JWT
Références et code source
 Blog
 http://anthonygiretti.com/2018/02/28/using-openidconnect-with-azure-ad-angular5-and-webapi-core-
introduction/
 GitHub
 https://github.com/AnthonyGiretti/Angular5-WebAPICore-OpenIdConnect-AzureAD
 Open ID Connect
 http://openid.net/connect/
 https://connect2id.com/learn/openid-connect
 Microsoft
 https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-
scenarios
 https://docs.microsoft.com/fr-fr/azure/active-directory/active-directory-configurable-token-lifetimes

Contenu connexe

Similaire à Open id connect, azure ad, angular 5, web api core

Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
Microsoft Décideurs IT
 
Windows Azure Camp du mardi 10 décembre 2013
Windows Azure Camp du mardi 10 décembre 2013Windows Azure Camp du mardi 10 décembre 2013
Windows Azure Camp du mardi 10 décembre 2013
Microsoft Technet France
 
.Net et nouvelles opportunités dans Visual Studio 2013
.Net et nouvelles opportunités dans Visual Studio 2013.Net et nouvelles opportunités dans Visual Studio 2013
.Net et nouvelles opportunités dans Visual Studio 2013
Microsoft
 

Similaire à Open id connect, azure ad, angular 5, web api core (20)

APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?
 
Azure devops
Azure devopsAzure devops
Azure devops
 
TechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows AzureTechDays 2010 (CLO202) : Introduction à Windows Azure
TechDays 2010 (CLO202) : Introduction à Windows Azure
 
A la découverte d'Azure Logic App
A la découverte d'Azure Logic AppA la découverte d'Azure Logic App
A la découverte d'Azure Logic App
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
AngularJS
AngularJSAngularJS
AngularJS
 
GAB 2017 PARIS - Le management simplifié avec Azure Server Management Tools p...
GAB 2017 PARIS - Le management simplifié avec Azure Server Management Tools p...GAB 2017 PARIS - Le management simplifié avec Azure Server Management Tools p...
GAB 2017 PARIS - Le management simplifié avec Azure Server Management Tools p...
 
Delegation d'authentification
Delegation d'authentificationDelegation d'authentification
Delegation d'authentification
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
 
Techdays azure pour les développeurs
Techdays azure pour les développeursTechdays azure pour les développeurs
Techdays azure pour les développeurs
 
Windows Azure: le cloud pour les développeurs
Windows Azure: le cloud pour les développeursWindows Azure: le cloud pour les développeurs
Windows Azure: le cloud pour les développeurs
 
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexesSayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
Sayeh hiba-karaa-eya-ferjani-maroua-hamzaoui-balkiss-sys-complexes
 
LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5
 
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
 
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en ODataDe A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
 
Integration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid IntegrationIntegration Summit 16 - Hybrid Integration
Integration Summit 16 - Hybrid Integration
 
Windows Azure Camp du mardi 10 décembre 2013
Windows Azure Camp du mardi 10 décembre 2013Windows Azure Camp du mardi 10 décembre 2013
Windows Azure Camp du mardi 10 décembre 2013
 
.Net et nouvelles opportunités dans Visual Studio 2013
.Net et nouvelles opportunités dans Visual Studio 2013.Net et nouvelles opportunités dans Visual Studio 2013
.Net et nouvelles opportunités dans Visual Studio 2013
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
 

Plus de MSDEVMTL

Plus de MSDEVMTL (20)

Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.net
 
Grpc and asp.net partie 2
Grpc and asp.net partie 2Grpc and asp.net partie 2
Grpc and asp.net partie 2
 
Property based testing
Property based testingProperty based testing
Property based testing
 
Improve cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft AzureImprove cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft Azure
 
Return on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & DataReturn on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & Data
 
C sharp 8.0 new features
C sharp 8.0 new featuresC sharp 8.0 new features
C sharp 8.0 new features
 
Asp.net core 3
Asp.net core 3Asp.net core 3
Asp.net core 3
 
MSDEVMTL Informations 2019
MSDEVMTL Informations 2019MSDEVMTL Informations 2019
MSDEVMTL Informations 2019
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcore
 
Groupe Excel et Power BI - Rencontre du 25 septembre 2018
Groupe Excel et Power BI  - Rencontre du 25 septembre 2018Groupe Excel et Power BI  - Rencontre du 25 septembre 2018
Groupe Excel et Power BI - Rencontre du 25 septembre 2018
 
Api gateway
Api gatewayApi gateway
Api gateway
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcore
 
Stephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsStephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environments
 
Eric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts AzureEric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts Azure
 
Data science presentation
Data science presentationData science presentation
Data science presentation
 
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
 
Yoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analyticsYoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analytics
 
CAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling AverageCAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling Average
 
CAE: etude de cas
CAE: etude de casCAE: etude de cas
CAE: etude de cas
 
Dan Edwards : Data visualization best practices with Power BI
Dan Edwards : Data visualization best practices with Power BIDan Edwards : Data visualization best practices with Power BI
Dan Edwards : Data visualization best practices with Power BI
 

Open id connect, azure ad, angular 5, web api core

  • 1. Open Id Connect, Azure AD, Angular 5 et Web API Core Anthony Giretti Tech Lead chez Nexus Innovations http://anthonygiretti.com
  • 2. Introduction  Introduction d’Open ID Connect avec Azure AD  Interfaçage avec un SPA (Angular 5)  Validation d’un JWT dans une Web API (ASP.NET Core 2)  Défis rencontrés  Solutions aux limitations rencontrées
  • 3. Open ID Connect  OpenID Connect 1.0 est une couche d'identité au-dessus du protocole OAuth 2.0. Il permet aux clients de vérifier l'identité de l'utilisateur final en fonction de l'authentification effectuée par un serveur d'autorisation, ainsi que d'obtenir des informations de profil de base sur l'utilisateur final.  OpenID Connect permet aux clients de tous types, y compris les clients Web, mobiles et JavaScript, de demander et de recevoir des informations sur les sessions authentifiées et les utilisateurs finaux.  OpenID Connect effectue de nombreuses tâches identiques à celles d'OpenID 2.0, mais le fait d'une manière qui soit conviviale pour les API et utilisable par les applications natives et mobiles.
  • 4. Azure AD – Implicit workflow
  • 5. Azure AD – Création d’une application
  • 6. Azure AD – Création d’une application
  • 7. Azure AD – Création d’une application
  • 8. Azure AD – Autoriser les utilisateurs dans l’application
  • 9. Azure AD – Activer l’Implicit flow
  • 10. Azure AD – Ajouter les groupes dans les claims
  • 11. Azure AD – Ajouter les rôles dans les claims
  • 12. Azure AD – Déclarer le(s) Urls de réponse
  • 13. Azure AD – Modifier la durée de vie d’un token  Obligatoirement en Powershell, aucun UI de disponible pour ça
  • 14. Azure AD – Modifier la durée de vie d’un token
  • 15. Angular 5 - SetUp  Installer une version « Angular » d’ADAL.JS (Microsoft)  Adal-Angular5 (https://github.com/grumar/adal-angular5)  Ne pas utiliser la fameuse librairie OIDC-CLIENT qui n’est pas totalement compatible avec Azure AD  Open ID Connect dans Azure AD n’est pas 100 % compliant avec Open ID Connect  Impossible de rafraichir un Id_Token (Microsoft n’envoit pas d’access_token qui lui peut etre rafraichit)  D’autre issues comme la déconnection qui ne marche pas par example….
  • 16. Angular 5 – Création d’un service d’authentification  Configuration
  • 17. Angular 5 – Création d’un service d’authentification  Signin, SignOut, completeAuthentication et consommation du token
  • 18. Angular 5 – Mécanisme d’authentification  Créer une route de réponse pour réceptionner le token
  • 19. Angular 5 – Mécanisme d’authentification  Protéger ses routes avec un service garde Angular
  • 20. Angular 5 – Interfaçage avec les API REST  Comment utiliser le token lors des calls d’API REST
  • 21. Angular 5 – Contournement à l’impossibilité de rafraichir le token  Attendre que le service de garde empêche d’accéder à une route et vous invite à se réauthentifier  Attendre d’attraper une 401 lors d’un call d’API  Utiliser un compteur quand le token expire invitant à se réauthentifier
  • 22. Angular 5 – Incompatibilité avec Angular 5.2.8  Le token est devenu illisible depuis Angular 5.2.8 car les caractères spéciaux dans l’url sont encodés  Rester à Angular 5.2.7 ou inférieur  Ou attendre un fix de la librairie Adal-angular5  Ou le fixer vous-même 
  • 23. Angular 5 – Incompatibilité avec Angular 5.2.8  Avant:
  • 24. Angular 5 – Incompatibilité avec Angular 5.2.8  Après:
  • 25. Angular 5 – Incompatibilité avec Angular 5.2.8  Utilisation du hash par la librairie Adal-angular5  Fix
  • 26. WebAPI Core– SetUp  Installation des packages requis
  • 27. WebAPI Core– SetUp  Configuration
  • 30. Conclusion  OpenID Connect :  Simple de consommer un JWT  Simplicité d’intégration  Basé sur le protocole OAuth 2.0  Azure AD:  Une solution Microsoft pour Open ID Connect avec AD  Pas 100% compliant avec le protocole Open ID Connect (limitations)
  • 31. Conclusion  Angular 5  Intégration facile  ADAL.JS (et/ou autre version telle que Adal-Angular5)  Récente incompatibilité avec Angular 5.2.8  Web API  Facile à configurer  Facile de consommer et valider un JWT
  • 32. Références et code source  Blog  http://anthonygiretti.com/2018/02/28/using-openidconnect-with-azure-ad-angular5-and-webapi-core- introduction/  GitHub  https://github.com/AnthonyGiretti/Angular5-WebAPICore-OpenIdConnect-AzureAD  Open ID Connect  http://openid.net/connect/  https://connect2id.com/learn/openid-connect  Microsoft  https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication- scenarios  https://docs.microsoft.com/fr-fr/azure/active-directory/active-directory-configurable-token-lifetimes