0

Je développe une application Web permettant aux utilisateurs de télécharger leurs fichiers et chaque utilisateur peut définir des autorisations pour le fichier téléchargé afin d'accéder à d'autres utilisateurs. Je souhaite utiliser le stockage Azure Blob d'Azure File Storage pour enregistrer les fichiers téléchargés.Limitation du compte Autorisation SAS pour des fichiers spécifiques dans Azure Storage

Je dois vérifier et valider les fichiers téléchargés avant de les enregistrer. Les utilisateurs doivent télécharger leurs fichiers sur le serveur Web, puis le serveur Web valide les fichiers et les enregistre dans Azure Storage à l'aide de la clé d'accès. Pour accéder aux fichiers en utilisant la méthode expliquée dans SAS - Shared Access Signatures, Part 1: Understanding the SAS model, je souhaite créer un compte SAS et générer une URL sur le serveur Web, puis l'utilisateur peut télécharger ses fichiers accessibles directement à partir d'Azure Storage.

Voici le modèle d'accès (pour la lecture des données): enter image description here

Et voici l'exemple url SAS:

https://myaccount.blob.core.windows.net/sascontainer/sasblob.txt?sv=2015-04-05&st=2015-04-29T22%3A18%3A26Z&se=2015-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D 

Mais, si la part de l'utilisateur l'URL avec les utilisateurs anonymes directement: ils peuvent accéder au fichier avant la date d'expiration, ou peuvent-ils utiliser l'URL pour accéder à d'autres fichiers (ou non?). Le compte SAS peut-il limiter l'accès à des fichiers ou des dossiers spécifiques?

  • Puis-je expirer le côté serveur SAS?
  • Quelle serait la meilleure solution dans ce scénario?

Répondre

3
  1. compte SAS est pour le niveau de compte, Azure Storage File prend en charge le niveau de partage de fichiers SAS ou au niveau des fichiers SAS et, s'il vous plaît les utiliser à la place.
  2. Pour révoquer SAS du côté serveur, vous devez configurer une stratégie d'accès partagé pour ces serveurs. En supprimant la politique d'accès partagé correspondante, le SAS associé peut être révoqué. Cependant, le serveur ne peut stocker que 5 stratégies d'accès partagé au maximum, ce qui peut ne pas répondre à vos besoins. Qui plus est, la stratégie d'accès partagé ne prend pas en charge le compte SAS actuellement. Quoi qu'il en soit, techniquement, il existe toujours un moyen de révoquer les SAS ad hoc, mais je ne pense pas que ce soit une option valide: régénérer la clé de compte de stockage correspondante sur SAS Provider Service qui a été utilisé pour générer les SAS ad hoc. À mon avis, SAS n'est pas la bonne solution pour votre scénario, puisque SAS est conçu pour partager des liens en texte brut entre des utilisateurs anonymes. Afin de répondre à vos besoins, vous devez configurer votre propre authentification et autorisation sur votre site Web. Tous les utilisateurs doivent télécharger/télécharger les fichiers via votre site Web, et Azure Storage est juste le back-end de stockage de votre site Web, qui ne doit pas être exposé directement aux utilisateurs.
+0

Est-ce que SAS est pris en charge pour un dossier spécifique dans Azure File Storage (pas les autres dossiers)? – ddunn801

+0

@ ddunn801 Vous ne pouvez obtenir SAS qu'au niveau du partage de fichiers, obtenir SAS au niveau du répertoire de fichiers est irréalisable. –

1

Nous pouvons utiliser SAS pour définir l'autorisation de fichier, utilisez la stratégie SAS pour définir les données de début et la date d'expiration. Cependant, si vous avez une logique très complexe à propos du fichier. Je suggère que vous utilisiez l'autorisation de rôle pour le faire.