Comment gérer les autorisations
Comment gérer les autorisations
Vue d’ensemble
Ce guide décrit les procédures de gestion des jetons d’autorisation d’appareil dans Frame.io, notamment l’actualisation, la révocation et les pratiques de stockage sécurisé des jetons.
Conditions préalables
Consultez le guide Implémentation C2C : configuration pour garantir la bonne configuration.
Composants essentiels requis :
- un paramètre
client_secretvalide émis par Frame.io ; - la valeur
client_idqui vous a été attribuée comme détaillé dans le guide d’authentification et d’autorisation ; - des informations d’identification
access_tokenetrefresh_tokenvalides.
Comprendre les jetons d’autorisation
Notre guide précédent sur l’authentification d’appareil décrivait le processus d’obtention des jetons d’autorisation de départ via l’authentification utilisateur. Les jetons d’accès conservent leur fonctionnalité pendant environ 8 heures. Pour éliminer la nécessité d’un couplage fréquent d’appareil, nous implémentons la portée hors ligne pour obtenir un jeton d’actualisation avec l’autorisation. Ce jeton d’actualisation permet la génération de nouveaux jetons d’accès à l’expiration.
Les jetons d’actualisation restent valides pendant 14 jours. Cette limite délibérée sur la durée du jeton d’accès améliore la sécurité en minimisant les vulnérabilités potentielles des jetons compromis. Notez que si l’autorisation n’est pas renouvelée avant l’expiration du jeton d’actualisation, une nouvelle authentification utilisateur sera nécessaire.
Processus de reconduction du jeton d’accès
À l’expiration du jeton d’accès, les requêtes API recevront cette réponse :
Exécutez la commande suivante pour obtenir un nouveau jeton :
Spécification de point d’entrée de l’API
La documentation détaillée pour /v2/auth/token est disponible ici.
Cette implémentation nécessite plusieurs facteurs d’authentification pour améliorer la sécurité. Une partie non autorisée doit obtenir à la fois les paramètres refresh_token et client_secret pour effectuer votre intégration avec succès.
Une reconduction réussie génère cette réponse :
Lors de l’actualisation réussie du jeton, les informations d’identification précédentes deviennent non valides. Assurez-vous de stocker correctement les nouveaux jetons d’autorisation.
Tenter de réutiliser un jeton d’actualisation expiré entraîne la réponse suivante :
Cela indique que le jeton a été traité précédemment et n’est plus valide.
Obtention d’une erreur 401 lors d’une actualisation
La réception d’une réponse 401 Not Authorized lors de l’actualisation du jeton indique l’invalidation des informations d’identification, nécessitant un nouveau processus d’autorisation.
Gestion des réponses d’actualisation échouées
En raison de la nature à usage unique des valeurs refresh_token, l’échec de capture de la réponse d’actualisation, que ce soit en raison d’une interruption du réseau ou d’un arrêt du système, nécessite de relancer la séquence complète d’authentification/autorisation.
Ce protocole de sécurité, bien que potentiellement gênant, est essentiel pour maintenir l’intégrité du système.
Processus de révocation de jeton
Les circonstances peuvent nécessiter la résiliation de l’accès Frame.io, comme l’achèvement du projet ou la réinitialisation de l’application. Implémentez des procédures de révocation appropriées lors de l’arrêt de l’autorisation actuelle.
Exécutez la commande suivante pour révoquer l’autorisation :
Nouvelle autorisation
Après révocation, vous devez relancer le processus d’authentification et d’autorisation comme décrit dans le guide d’authentification et d’autorisation.
Spécification de point d’entrée de l’API
La documentation complète pour /v2/auth/revoke est disponible ici.
Le système renvoie des en-têtes sans payload. Le succès est indiqué par un code d’état 200 :
Après révocation, les opérations Frame.io nécessitant une authentification access_token renverront la réponse Not Authorized. La restauration de l’accès nécessite un nouveau couplage de l’appareil au projet.
Implémentation du stockage de jetons
Conserver une autorisation persistante lors des redémarrages système nécessite un stockage sécurisé des jetons. Respectez les consignes suivantes :
Implémenter les contrôles d’accès utilisateur : limitez la visibilité et l’accès des jetons exclusivement aux processus d’application. Activer le chiffrement du stockage : implémentez un chiffrement pour les jetons stockés, y compris client_secret et les informations d’identification d’autorisation. Ne conservez jamais les clés d’autorisation au format texte brut. Maintenir la séparation des informations d’identification : bien que notre application Python de démonstration consolide le stockage, les environnements de production doivent séparer les jetons d’autorisation de client_secret. Tenez compte de ces facteurs :
client_secretetclient_idreprésentent les informations d’identification permanentes de l’appareil. Leur perte entraîne une défaillance permanente de l’appareil.- Les jetons d’autorisation subissent des mises à jour régulières tout au long du fonctionnement de l’appareil.
- Le stockage séparé garantit que la corruption du stockage des jetons nécessite uniquement un recouplage de l’appareil, plutôt qu’une réinitialisation complète de l’authentification.
Bien que SQLite offre des capacités de stockage de jetons optimales, implémentez au minimum un stockage séparé pour les données d’autorisation et les informations d’identification principales.
Étapes suivantes
Nous vous félicitons pour votre progression et vous invitons à passer au guide du statut de connexion et des pulsations. Veuillez contacter notre équipe pour toute question ou préoccupation.