La parole est aux speakers : Karim Pinchon
Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !
La conférence
Introduction à OpenID Connect"T'as besoin d'une application pour authentifier tes utilisateurs ? Un serveur OAuth2 c'est ce qu'il te faut !" C'est faux. Trop souvent le protocole OAuth2 est utilisé à tord pour authentifier des utilisateurs. Ce n'est pas fait pour ça. En revanche, un protocole relativement semblable existe dans ce but : OpenID Connect. Je vous propose de vous expliquer comment fonctionne le protocole OpenID Connect et en quoi il est différent d'OAuth2, pour ne plus se tromper d'usage. |
Katherine Johnson 22/10/2020 12:10-12:30 |
Tu as l’habitude de donner des cours de niveau Master. À ce niveau-là, comment prépare-t-on ses cours ? Quelles sont les différences avec la préparation d’un conférence ?
En effet, depuis quelques années je dispense un cours sur les Web Services d’une dizaine d’heures en M1. À ce niveau-là, j’essaie de proposer un cours en étant très précis sur certains concepts, mais je ne cherche pas à être exhaustif et à aborder tous les sujets. Il y a quelques années je donnais des cours en L1/L2 sur les bases du web, HTML, CSS, JS, PHP et là mon approche était différente : j’essayais d’aborder beaucoup de sujets sans forcément les « creuser » au maximum. L’idée étant qu’en L1/L2 on est sur de la découverte alors qu’en Master je considère qu’on doit commencer à avoir une certaine maîtrise des sujets. Un exemple : REST est encore en 2020 un style d’architecture très mal compris, et je pense que c’est en partie dû à des enseignements qui ne sont pas assez précis, qui ne vont pas au bout des choses.
Concernant les différences entre la préparation d’un cours et d’une conférence je dirais que ça dépend :). J’ai déjà fait des présentations assez proches d’un cours magistral lorsque je voulais faire découvrir un nouvel outil par exemple. Dans ce cas, on essaie de passer en revue les fonctionnalités de l’outil, et on a quelque chose d’assez linéaire. Pas forcément très fun mais ça peut être très bien quand même. Sur d’autres types de sujets, on sait qu’on ne pourra pas parler de tout alors on n’aborde qu’une petite partie du sujet mais en choisissant un axe particulier. Et puis, pour un talk il y a des contraintes bien différentes. L’une d’elles est que l’on a très peu de temps. Réussir à proposer quelque chose d’intéressant en 10, 20 ou 40 minutes ce n’est pas simple, lors d’un cours, on a plusieurs heures, on peut se permettre des digressions ou des anecdotes pour essayer d’accrocher les étudiants.
Les devs confondent souvent authentification et autorisation. À ton avis, à quoi cela est dû ?
Tout à fait d’accord ! Je pense qu’il y a plusieurs facteurs qui expliquent ça. Un des éléments de réponse est que la sécurité n’est pas souvent abordée dans les cursus de développeurs·euses (en tout cas pas à mon époque et pas dans les filières où je suis passé). Généralement, la « sécurité » dans un cursus de dev c’est un formulaire username/password, une session et terminé… Du coup, puisque la sécurité n’est pas un sujet à part entière, des concepts tels que l’identification, l’authentification, l’autorisation ne sont jamais réellement expliqués.
Je serais tenté de dire qu’en entreprise c’est parfois un peu la même chose :(. Ce n’est pas le cas partout bien évidemment, mais pour certaines personnes l’authentification des utilisateurs n’est pas une fonctionnalité au même titre qu’une fonctionnalité « métier ». On y accorde moins d’attention, moins de temps, etc … « C’est bon, c’est pas compliqué ! » Bien sûr que si ! Ce n’est pas simple du tout et c’est surtout un enjeu crucial. Surtout aujourd’hui où nos architectures logicielles sont tellement complexes avec des micro-services dans tous les sens, des interconnexions entre partenaires, des SPA, des apps natives, etc.
Peut-on dire que les devs qui confondent authentification et autorisation sont des amateurs ? Je n’irai pas jusque là ! 😉
Y a-t-il des différences significatives dans la façon de traiter les problématiques d’authentification en Java ? Quel que soit le langage, cela a-t-il évolué depuis 10 ans ?
Je ne crois pas qu’il y ait beaucoup de différences. Les concepts restent les mêmes. Évidemment l’outillage diffère. Je pense que les frameworks Java avaient de l’avance il y a quelques années sur la façon de gérer ça, mais avec les progrès des framework PHP, je suis moins sûr que ce soit le cas aujourd’hui (bon je n’ai plus fait de Java depuis Java 8…).
Clairement depuis 10 ans les évolutions autour de ces problématiques ont été énormes, en grande partie parce que, comme je l’ai dit plus haut, les archi ont évolué : les SPA, les apps mobiles, des design « api first » entre autres. Il y a 10 ans on avait le choix entre des solutions home made pas toujours très heureuses, et des solutions éprouvées, solides, mais hyper lourdes. Aujourd’hui on a pléthore de solutions qui permettent d’adresser tous les besoins, des serveurs SSO type Keycloak, de l’authentification « as a service » type Auth0, des standards ont émergé comme JWT et… OpenId Connect 😉
Une conférence présentée par
Karim PINCHON |
Développeur PHP (mais aussi Java), Karim est spécialisé en développement d'API. Le partage de connaissance est pour lui fondamental dans l'approche de son métier : il participe en tant que spectateur à des conférences de développeurs autant que possible, et il est speaker dans des meetings locaux. Il donne depuis quelques années des cours de Web services (SOAP et REST) à des étudiants de Master. Il a une sensibilité particulière sur les sujets de sécurité, d'authentification (OAuth2, OpenIdConnect) et de signature électronique (PKI), puisque ce sont des sujets sur lesquels il travaille depuis près de 10 ans. |
Autres interviews
- La parole est aux speakers : Samuel Rozé
- La parole est aux speakers : Kévin Dunglas
- La parole est aux speakers : Sarah Haïm-Lubczanski
- La parole est aux speakers : Gilles Dowek
- La parole est aux speakers : Hélène Maître-Marchois
- La parole est aux speakers : Estelle Landry
- La parole est aux speakers : Pascal Martin et Martin Supiot
- La parole est aux speakers : Lucas Legname & Maxime Richard
- La parole est aux speakers : Maxime Veber
- La parole est aux speakers : Agnès Haasser
- La parole est aux speakers : Mikael Randy
- La parole est aux speakers : Mathieu Girard
- La parole est aux speakers : Antti Rössi
- La parole est aux speakers : Frédéric Bouchery
- La parole est aux speakers : Jean-Pierre Vincent
- La parole est aux speakers : Benoit Jacquemont
- La parole est aux speakers : Ben Smith
- La parole est aux speakers : Antoine Bluchet
- La parole est aux speakers : Jonathan Van Belle
- La parole est aux speakers : Olivier Dolbeau
- La parole est aux speakers : Damien Alexandre
- La parole est aux speakers : Gabriel Caruso