Accueil🇫🇷Chercher

User-Managed Access

User-Managed Access (UMA) est un protocole standard de gestion d'accès basé sur OAuth. La version 1.0 de ce standard a été approuvée par l'initiative Kantara (en) le [1].

Comme cela est décrit par la charte du groupe qui a développé UMA[2], l'objet des spécifications du protocole est de « permettre à un propriétaire de ressources de contrôler l'autorisation en ligne d'accès à ces ressources protégées lorsque la requête est faite par un demandeur autonome ».

Cette initiative a des implications quant à la vie privée, le consentement des applications Web et l'internet des objets (IoT), comme le montre l'ensemble des études de cas décrit par les participants du "standards group" de l'initiative Kantara (en)[3].

Historique et contexte

Le groupe de travail UMA[4] de l'initiative Kantara (en) a tenu sa première réunion le [5].

Les principes à l'origine d'UMA proviennent d'un projet de protocole antérieur commencé en à l'initiative d'employés de Sun Microsystems intitulé ProtectServe. ProtectServe a lui-même été influencé par le mouvement Vendor Relationship Management et un projet associé appelé "feeds-based VRM".

Les premières versions de ProtectServe et de UMA se sont inspirées du protocole OAuth 1.0. Comme OAuth a subi des changements significatifs lors de la publication de la spécification Web Resource Authorization Protocol (WRAP), et par la suite des modifications associées à OAuth 2.0, UMA utilise désormais les spécifications OAuth 2.0 pour plusieurs protocoles clés de flux.

UMA n'utilise pas ou ne dépend pas d'OpenID 2.0 comme moyen d'identification de l'utilisateur. Cependant, UMA utilise de façon optionnelle le protocole OpenID Connect comme moyen de recueillir les requêtes d'identité lorsqu'il s'agit de satisfaire les politiques d'accès des utilisateurs.

UMA n'utilise pas non plus ou ne dépend pas de XACML (eXtensible Access Control Markup Language) comme moyen d'encoder le contrôle d'accès et les décisions associées à la politique de sécurité. UMA ne dicte pas le format du contrôle d'accès puisque l'évaluation de l'accès est effectuée en interne par le serveur d'accès (AS). Toutefois, les flux du protocole UMA pour demander l'autorisation d'accès partagent certaines caractéristiques en commun avec le protocole XACML.

État d'avancement et standardisation

Le groupe de travail UMA fait partie de l'initiative Kantara [6] et a également contribué à une série de spécifications pour IETF (Internet Engineering Task Force) comme un cadre éventuel pour les travaux de normalisation. À cette fin, le groupe de travail a contribué et soumis plusieurs propositions à IETF. L'un d'elles est une spécification pour l'enregistrement dynamique d'un client OAuth[7] qui a servi d'introduction pour un mécanisme plus général finalement développé pour OAuth [8].

Mise en Ĺ“uvre et adoption

Le protocole de base d'UMA a plusieurs implémentations[9] y compris certaines open source. Les sources d'implémentations open-source disponibles comprennent ForgeRock[10], Gluu[11], MITREid Connect[12], Atricore, Node-UMA [13] and Roland Hedberg[14].

Une initiative du groupe Kantara (en) travaille sur le développement de “free and open-source software" (FOSS) dans plusieurs langages de programmation qui permet aux développeurs d'intégrer la protection de UMA et son API d'autorisation dans les applications, les services et les appareils connectés[15].

Des produits logiciels utilisant UMA sont offerts Gluu, Jericho Systems et ForgeRock.

Comparaison avec OAuth 2.0

Le diagramme (voir à droite) met en évidence des ajouts clés qu'UMA apporte à OAuth 2.0.

Dans un flux de OAuth typique, un propriétaire de ressources ou "Resource Owner" (RO) qui opère une application cliente est redirigé vers un serveur d'autorisation ou "Authorization Server"(AS) pour se connecter et consentir à la délivrance d'un jeton d'accès afin que l'application cliente gagne accès au serveur de ressource ou "Resource Server" (RS) au nom du propriétaire de ressources (RO) et ceci d'une façon limitée. Le serveur de ressource (RS) et le serveur d'autorisation opèrent généralement dans le même domaine de sécurité, de plus, aucune des communications entre ces deux serveurs ne sont standardisées par les principales spécifications OAuth.

UMA ajoute trois concepts principaux, structures et flux spécifiques:

  • Premièrement UMA dĂ©finit une API normalisĂ©e associĂ©e au serveur d'autorisation (AS) appelĂ©e l'API de protection avec lequel le serveur de ressource interagit. Cette API permet Ă  plusieurs serveurs de ressources (RS) de communiquer avec un serveur d’autorisation (AS) particulier et vice versa. Et parce que l'API est elle-mĂŞme sĂ©curisĂ©e avec OAuth, ceci permet l'Ă©tablissement de la confiance formelle entre chaque pair. Cela permet Ă©galement Ă  un serveur d’autorisation (AS) de prĂ©senter une interface utilisateur centralisĂ©e Ă  un propriĂ©taire de ressources (RO).
  • Deuxièmement UMA dĂ©finit une notion formelle de demandeur de requĂŞte ou "Requesting party" (RqP) qui est autonome du point de vue du serveur de ressource (RO) ce qui permet le partage de ressources de parti Ă  parti et la dĂ©lĂ©gation de l'autorisation d'accès. Un propriĂ©taire de ressources (RO) n'a pas besoin de consentir Ă  l'Ă©mission de jetons en temps rĂ©el, mais peut dĂ©finir la politique d'accès Ă  l'avance par l’intermĂ©diaire du serveur d’autorisation (AS), ce qui permet Ă  un demandeur de requĂŞte (RqP) de tenter un accès asynchrone.
  • Troisièmement, UMA permet en rĂ©ponse Ă  des tentatives d'accès Ă  des ressources, l'Ă©mission de jetons d'autorisation associĂ©s Ă  des donnĂ©es sur la base d'un processus d'Ă©lĂ©vation de confiance pour le demandeur de requĂŞte, y compris la collecte de revendications d'identitĂ© ou d'autres rĂ©clamations similaires.
Vue d'ensemble de haut niveau des entités et des relations impliquées dans la spécification UMA

Scénarios applicables

L'architecture UMA peut servir une grande variété de scénarios à la fois pour les consommateurs, mais aussi dans le domaine de l'entreprise. Le groupe UMA rassemble de nombreuses études de cas sur son wiki[3].

Un ensemble d'exemples d'utilisation se situe dans le domaine de l'informatique médicale et du bien être des consommateurs. Faisant partie de l'organisation OpenID Foundation, un groupe de travail appelé "Health Relationship Trust" (HEART) [16] travaille à harmoniser et développer un ensemble de spécifications de la vie privée et de sécurité qui permettent à un individu de contrôler l'autorisation d'accès aux données relatives à la santé grâce à des APIs de type RESTful, et qui est construit à partir de plusieurs standards dont UMA.

Un autre ensemble d'exemples de cas d'utilisation, qui ont influencĂ© l'origine du dĂ©veloppement de l'UMA, se situe dans le domaine des « bases de donnĂ©es personnelles Â» du type « vendor relationship management Â» (gestion des relations fournisseurs) qui est capable d'accepter des demandes de connexions Ă  partir d'une variĂ©tĂ© d'hĂ´tes de ressources numĂ©riques et offre un tableau de bord avec des capacitĂ©s de gestion du partage des ressources.

Références

Liens Externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.