Microsoft et sa modern authentication

Si vous réfléchissez à l’utilisation et au passage à Office 365 cet article pourrait vous intéresser ! Effectivement, le passage à Office 365 pose un certain nombre de problématiques dont celle qui nous intéressera ici : l’authentification.

Qu’est-ce que Microsoft entend par modern authentication?

Commençons simplement avec la définition donnée par Microsoft :

La Modern authentication est liée à l’utilisation d’ADAL (Active Directory Authentication Library) pour l’authentification sur les clients Office. ADAL permet l’ouverture à des moyens d’authentification diverses tels que l’authentification multi-facteurs (MFA), l’utilisation d’un fournisseur d’identité basé sur le protocole SAML, l’authentification via smart card ou certificats. De plus, l’utilisation d’ADAL au niveau d’Outlook permet de ne plus utiliser l’authentification basique.

En résumé, la modern authentication de Microsoft est la possibilité d’utiliser des protocoles standards qui ne sont plus “propres” à Microsoft (tel que WS-Federation).

ADAL_1

En pratique, qu’est-ce que donne ?

Tout d’abord, il faut savoir que certains prérequis sont essentiels pour l’utilisation d’ADAL. Effectivement, l’utilisation d’ADAL n’est possible qu’avec Office 2013 (release de mars 2015) et les versions suivantes. Ensuite, encore aujourd’hui, pour certains clients comme Skype for Business, il est nécessaire de faire une requête à Microsoft pour qu’il soit activé au niveau du tenant O365 pour que cela puisse être utilisé (Les fonctionnalités autour d’ADAL sont considéré par Microsoft comme étant toujours en preview).

ADAL_2

Une nouvelle expérience utilisateur ?

D’un point de vue utilisateur, l’utilisation d’ADAL revient à la présentation de Web View à l’utilisateur dans les phases d’authentification.

De façon simple, lorsque l’on active ADAL, une Web View est utilisée lors de la phase d’authentification pour pouvoir rediriger l’utilisateur (après le remplissage de son login) vers l’authentification configurée au niveau du tenante O365.

Par exemple, dans le cas de l’utilisation d’un fournisseur d’identité SAML, l’utilisateur sera redirigé vers son fournisseur d’identité au sein de la Web View et effectuera son authentification comme habituellement pour accéder à une application Saas ou selon la politique appliquée à Office.

Une fois authentifié, dans le cas de Word par exemple, l’utilisateur a accès à ses documents stockés dans son OneDrive et d’autres contenus liés. L’accès à d’autres services nous montre que Microsoft a implémenté du SSO au niveau de sa suite Office (Attention, il y a des bémols à ce paysage idyllique. Outlook et Skype for business, par exemple, ne profitent pas du SSO implémenté au sein des clients Office. A minima, l’utilisateur sera obligé de remplir à nouveau son login).

Comment se passe le SSO entre les clients Offices et les services Office?

L’article aurait pu s’arrêter sur l’ouverture de Microsoft à d’autres moyens d’authentification via l’utilisation de Web View. Cependant, il est intéressant d’aller un peu plus loin pour voir ce qu’a fait Microsoft pour les interactions entre ses clients lourds et ses services Online.

Oauth, qui a dit Oauth?

Effectivement, Microsoft utilise Oauth pour les interactions entre les clients lourds et les services Online. Pour faire simple, voici en 4 étapes ce qui se passent lors de l’authentification et l’accès aux services Online:

1-L’utilisateur, via Word, souhaite avoir à son OneDrive alors qu’il n’est pas authentifié. Une Web View s’ouvre et redirige l’utilisateur vers le endpoint d’authentification d’Azure AD. (Si nous sommes dans le cas de l’utilisation d’un fournisseur d’identité tierce pour l’authentification (exemple précédent), une fois que l’utilisateur a rempli son login, il est redirigé vers son fournisseur d’identité pour s’authentifier)

ADAL_Oauth_1

2-L’utilisateur effectue son authentification. Une fois cette dernière validée par Azure AD, Azure AD fournit un authorization code à l’application (dans notre cas, Word)

ADAL_Oauth_2

3-Word fait appel à Azure AD pour faire l’échange de l’autorization code contre un access token

ADAL_Oauth_3

4-Word utilise cet access token pour faire des appels aux services Online

ADAL_Oauth_4

Une précision supplémentaire, le client Office (dans notre cas Word) obtient à la fois un access token ayant comme durée de vie 1h et un refresh token ayant comme durée de vie 14 jours pouvant aller jusqu’à 90 jours dans le cas d’une utilisation continue. Après 90 jours, l’utilisateur devra nécessairement ce re-authentifier.

En conclusion, les efforts faits par Microsoft pour permettre une plus grande flexibilité au niveau de l’authentification commencent à aboutir même si Microsoft parle encore de preview.

Quelques liens sur le sujets:

https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks

https://support.office.com/en-us/article/Session-timeouts-for-Office-365-37a5c116-5b07-4f70-8333-5b86fd2c3c40

https://support.office.com/en-us/article/Plan-for-multi-factor-authentication-for-Office-365-Deployments-043807b2-21db-4d5c-b430-c8a6dee0e6ba

AuréliConsultant Sécurité