OpenID Connect : Authentifier l’application cliente

Il faut bien comprendre que l’authentification ouvre la porte non seulement à un utilisateur, mais également à une application.

Si OpenID Connect permet bien d’identifier l’utilisateur, qu’en-est-il réellement de l’application ?

OpenID Connect (OIDC) offre un excellent moyen de sécuriser l’accès aux données protégées.

A condition toutefois de bien en comprendre les limitations et les risques en fonction de la configuration des parties (applications, serveur, ressources, réseau ...). Une mauvaise application des principes d’OIDC permettra à un malware d’accéder à des informations protégées !

Il ne s’agirait pas d’un défaut de sécurité d’OIDC, mais d’un défaut de mise en œuvre d’OpenID Connect. Le flux d’autorisation avec code (Authorization Code Grant) n’est pas une solution universelle à appliquer aveuglément.

Identifier l’utilisateur, c’est bien. Mais encore faut-il vérifier que l’on ne fournit pas des données protégées à un malware. La question est : comment authentifier l’application qui s’adresse à une ressource protégée ? Cette question est explicitement hors du champ des spécifications d’OpenID Connect (qui s’en remet à une notion d’ "espace de confiance"). Ce n’est pas pour autant qu’elle doit être éludée, bien au contraire.

Toutes les configurations d’applications, de serveurs et de ressources n’offrent pas le même niveau de sécurité, notamment pour authentifier l’application.

Pour une meilleure sécurité, l’application devra être de type "web" - les Progressive Web App (PWA) en sont - et mettre en œuvre le flux d’autorisation avec code ( Authorization Code Grant ).

Cependant, OpenID Connect permet de répondre à différents besoins avec différents flux d’autorisation (Grant Types). Beaucoup se sont écartés du droit chemin en appliquant les flux hybrides aux applications mobiles. Les PWA, permettent d’utiliser le flux d’autorisation avec code, offrent tellement d’avantages qu’elles devraient remplacer toutes les applications natives, qu’elles soient installées sur mobile ou sur desktop.

Nous présentons ici une analyse et les solutions offertes par OAuthSD.

Une idée, un projet?