Autorisation de l'appareil

Device Authorization grant type

Le type de subvention Autorisation de l'appareil est conçu spécifiquement pour les applications fonctionnant sur des appareils où il est facile d'afficher des données à l'utilisateur, mais où il est difficile (voire impossible) d'accepter des données de la part de l'utilisateur. Il s'agit par exemple d'une application fonctionnant sur une télévision intelligente ou un autre appareil IoT.

Dans ce cas, l'utilisateur reçoit un code de l'application et utilise un navigateur (ou une application) sur son ordinateur ou son téléphone portable pour compléter l'autorisation de l'appareil.

L'application lance ce flux en appelant le point de terminaison du serveur d'autorisation OAuth. Le serveur d'autorisation renvoie deux codes générés de manière aléatoire : un code utilisateur et un code appareil. Ces deux codes indexent la subvention en cours.

L'application doit maintenant communiquer le code utilisateur à l'utilisateur final. En général, il est affiché sous forme de texte, mais il peut également être affiché dans un code QR, imprimé ou parlé. L'application peut également communiquer l' URL de son point final d'autorisation de l'utilisateur en même temps.

À ce stade, l'application lance un processus en arrière-plan qui interroge le point de terminaison du serveur d'autorisation pour tenter d'échanger le code de l'appareil contre un jeton d'accès. Tant que l'application n'est pas autorisée, le serveur d'autorisation répondra à cette interrogation par une erreur.

L'utilisateur doit maintenant autoriser l'application en s'authentifiant directement auprès du point de terminaison " user authorize " du serveur d'autorisation, puis en soumettant le code utilisateur. Le point de terminaison user_authorize est un point de terminaison du navigateur et la méthode par laquelle l'utilisateur final est authentifié, ainsi que l'expérience de l'utilisateur pour son consentement, sont entièrement sous le contrôle du serveur d'autorisation.

Lorsque l'authentification et le consentement sont terminés, le serveur d'autorisation utilise le code utilisateur pour consulter l'octroi en cours. Il associe l'utilisateur authentifié et marque l'application comme autorisée.

La prochaine fois que l'application interrogera le point de terminaison du jeton avec le code du dispositif, le serveur d'autorisation échangera le code du dispositif contre un jeton d'accès.

1180

💎

Jon Harry, IBM Security