Lorsque les développeurs créent des logiciels, ils incluent généralement des modules qui s'exécutent sur un serveur Web, d'autres qui s'exécutent dans le navigateur et d'autres encore qui s'exécutent en tant qu'applications mobiles Android ou iOS. Les développeurs et les utilisateurs de leurs logiciels considèrent généralement tous ces modules comme faisant partie d'une même application.
L'implémentation OAuth 2.0 de Google est compatible avec cette vision du monde. Pour utiliser l'un des services basés sur OAuth2.0, vous devez configurer votre logiciel dans Google API Console. L'unité d'organisation dans API Console est un "projet", qui peut correspondre à une application multicomposants. Pour chaque projet, vous pouvez fournir des informations sur la marque et vous devez spécifier les API auxquelles l'application accédera. Chaque composant d'une application à plusieurs composants est identifié par un ID client, une chaîne unique générée dans API Console.
Objectifs d'autorisation multi-clients
Lorsqu'une application utilise OAuth 2.0 pour l'autorisation, elle agit au nom d'un utilisateur pour demander un jeton d'accès OAuth 2.0 afin d'accéder à une ressource, que l'application identifie par une ou plusieurs chaînes de champ d'application. Normalement, l'utilisateur est invité à approuver l'accès.
Lorsqu'un utilisateur accorde l'accès à votre application pour un champ d'application particulier, il voit l'écran d'autorisation de l'utilisateur, qui inclut le branding du produit au niveau du projet que vous avez configuré dans Google API Console. Par conséquent, Google considère que lorsqu'un utilisateur a accordé l'accès à un champ d'application particulier à un ID client dans un projet, l'autorisation indique que l'utilisateur fait confiance à l'ensemble de l'application pour ce champ d'application.
L'effet est que l'utilisateur ne doit pas être invité à approuver l'accès à une ressource plus d'une fois pour la même application logique, chaque fois que les composants de l'application peuvent être authentifiés de manière fiable par l'infrastructure d'autorisation de Google, qui inclut aujourd'hui les applications Web, les applications Android, les applications Chrome, les applications iOS, les applications de bureau et les appareils à saisie limitée.
Jetons d'accès multi-clients
Les logiciels peuvent obtenir des jetons d'accès OAuth 2.0 de différentes manières, en fonction de la plate-forme sur laquelle le code est exécuté. Pour en savoir plus, consultez Utiliser OAuth 2.0 pour accéder aux API Google. Normalement, l'approbation de l'utilisateur est requise lors de l'attribution d'un jeton d'accès.
Heureusement, l'infrastructure d'autorisation Google peut utiliser des informations sur les autorisations accordées par les utilisateurs pour un ID client dans un projet donné lorsqu'elle évalue s'il faut autoriser d'autres utilisateurs dans le même projet.
L'effet est que si une application Android demande un jeton d'accès pour une portée spécifique et que l'utilisateur demandeur a déjà accordé son approbation à une application Web dans le même projet pour cette même portée, l'utilisateur ne sera pas invité à approuver de nouveau. Cela fonctionne dans les deux sens : si l'accès à un champ d'application a été accordé dans votre application Android, il ne sera plus demandé par un autre client du même projet, comme une application Web.