Connecter l'application Guichet Unique à SwissID et AGOV

← Retour au blog

L'une de mes livraisons récentes sur la plateforme Guichet Unique a consisté à intégrer deux identités numériques suisses reconnues — SwissID et AGOV — comme options de connexion dans l'application mobile. Dans cet article, je présente à grands traits ce que sont ces fournisseurs d'identité et ce qu'il faut pour les amener dans une application .NET MAUI.

Pourquoi les identités numériques reconnues comptent

Les services publics ont une contrainte forte que les applications grand public ne partagent pas toujours : ils doivent savoir avec certitude qui se trouve à l'autre bout. Développer ses propres comptes et mots de passe pour une plateforme étatique est une mauvaise réponse — un risque de sécurité autant qu'une mauvaise expérience.

La bonne approche consiste à déléguer l'authentification à des fournisseurs d'identité de confiance, reconnus au niveau national. C'est exactement ce qu'offrent SwissID et AGOV :

Prendre en charge les deux permet aux citoyens de se connecter avec une identité qu'ils possèdent déjà et à laquelle ils font confiance, plutôt que de créer encore un compte.

Les intégrer dans une application MAUI

L'application mobile du Guichet Unique (GuMobile) est développée en .NET MAUI, mais ce n'est pas une réécriture native de la plateforme : c'est une coque MAUI qui héberge les prestations web du canton dans une WebView, la couche native prenant en charge ce que le web ne peut pas faire — la connexion comprise. L'intégration devait donc fonctionner proprement sur iOS comme sur Android, à partir d'une seule base de code.

L'application ne dialogue pas directement avec SwissID et AGOV. Les deux se trouvent derrière un serveur de fédération d'identité OpenID Connect exploité par le service informatique du canton, et l'application s'intègre à ce seul interlocuteur. Les relations avec les fournisseurs d'identité appartiennent au canton ; l'application, elle, n'a qu'à parler OIDC à un seul endpoint. C'est ce qui rend le troisième point ci-dessous vrai plutôt que simplement souhaitable : ajouter un fournisseur, ou modifier le comportement de l'un d'eux, est un travail pour la couche de fédération et non pour l'application.

L'authentification, elle, ne passe volontairement pas par cette WebView. Se connecter avec une INR — une identité numérique reconnue, comme SwissID ou AGOV — bascule vers le navigateur du système : un Auth Tab sur Android, une ASWebAuthenticationSession sur iOS. C'est le schéma que demande la RFC 8252 pour les applications natives, et la raison tient exactement dans le deuxième point ci-dessous : une WebView embarquée est pilotée par l'application, qui pourrait donc lire ce que l'utilisateur y saisit, alors que ces sessions lui sont opaques. Elles partagent en outre les cookies du système : un citoyen déjà connecté sur son téléphone n'a souvent rien à saisir du tout.

Sans entrer dans des détails sensibles, le travail s'est appuyé sur quelques piliers classiques de l'authentification moderne :

Une bonne partie de l'effort, dans ce type d'intégration, se joue dans des détails que l'utilisateur ne voit jamais : gérer de façon fiable le retour dans l'application, traiter proprement les sessions annulées ou expirées, et tester les parcours en profondeur sur de vrais appareils.

Du point de vue de l'utilisateur

Quand tout s'assemble, le résultat est presque invisible — et c'est justement le but. Le citoyen appuie sur « Se connecter avec AGOV » ou « Se connecter avec SwissID », s'authentifie avec une identité qu'il gère déjà, et revient dans l'application, prêt à utiliser les services de l'administration. Pas de nouveau mot de passe, pas de compte supplémentaire, et une authentification prise en charge par des acteurs dont c'est le métier.

Conclusion

Intégrer SwissID et AGOV n'est qu'une pièce d'un ensemble plus vaste : rendre les services publics suisses réellement utilisables sur mobile, sans jamais abaisser le niveau d'exigence en matière de sécurité. S'appuyer sur des identités numériques reconnues en est la bonne fondation — meilleure pour la sécurité, et meilleure pour les personnes qui utilisent l'application.

Vous trouverez l'application Guichet Unique sur l' App Store et sur Google Play, et vous pouvez en lire davantage sur mon travail dans la fiche projet Guichet Unique.