Traditionnellement, la sécurité est l'une des parties les plus complexes du développement d'applications. Dans la plupart des applications, les développeurs doivent créer et exécuter un serveur qui gère l'authentification (qui est un utilisateur) et l'autorisation (ce qu'un utilisateur peut faire). L'authentification et l'autorisation sont difficiles à configurer, encore plus à mettre en place correctement et essentielles au succès de votre produit.
Comme Firebase Authentication vous permet d'authentifier facilement vos utilisateurs, Firebase Security Rules pour Cloud Storage vous permet d'autoriser les utilisateurs et de valider les requêtes. Cloud Storage Security Rules gèrent la complexité pour vous en vous permettant de spécifier des autorisations basées sur le chemin d'accès. En quelques lignes de code, vous pouvez écrire des règles d'autorisation qui limitent les requêtes Cloud Storage à un utilisateur spécifique ou limitent la taille d'un import.
Le Firebase Realtime Database dispose d'une fonctionnalité similaire, appelée Firebase Realtime Database Security Rules
Authentification
Savoir qui sont vos utilisateurs est un élément important de la création d'une application.
Firebase Authentication fournit une solution d'authentification facile à utiliser, sécurisée et côté client uniquement
Firebase Security Rules pour Cloud Storage sont liées à Firebase Authentication
pour la sécurité basée sur l'utilisateur. Lorsqu'un utilisateur est authentifié avec Firebase Authentication,
la variable request.auth dans Cloud Storage Security Rules devient un objet qui
contient l'ID unique de l'utilisateur (request.auth.uid) et toutes les autres informations de l'utilisateur
dans le jeton (request.auth.token). Lorsque l'utilisateur n'est pas
authentifié, request.auth est null. Cela vous permet de contrôler de manière sécurisée l'accès aux données par utilisateur. Pour en savoir plus, consultez la section
Authentification.
Autorisation
L'identification de votre utilisateur n'est qu'une partie de la sécurité. Une fois que vous savez qui il est, vous devez contrôler son accès aux fichiers dans Cloud Storage.
Cloud Storage vous permet de spécifier des règles d'autorisation par fichier et par chemin d'accès qui résident sur nos serveurs et déterminent l'accès aux fichiers de votre application.
Par exemple, les règles de sécurité Cloud Storage par défaut nécessitent Firebase Authentication pour effectuer des opérations read ou write sur tous les fichiers :Cloud Storage Security RulesFirebase Authentication
service firebase.storage { match /b/{bucket}/o { match /someFolder/{fileName} { allow read, write: if request.auth != null; } } }
Vous pouvez modifier ces Security Rules dans la console Firebase en accédant à l'onglet Bases de données et stockage > Stockage > Règles.
Validation des données
Firebase Security Rules pour Cloud Storage peuvent également être utilisées pour la validation des données, y compris
la validation du nom et du chemin d'accès du fichier, ainsi que des propriétés de métadonnées du fichier telles que
contentType et size.
service firebase.storage { match /b/{bucket}/o { match /images/{imageId} { // Only allow uploads of any image file that's less than 5MB allow write: if request.resource.size < 5 * 1024 * 1024 && request.resource.contentType.matches('image/.*'); } } }
Étapes suivantes
Commencez à planifier le développement de règles pour vos Cloud Storage buckets.
Découvrez comment sécuriser vos données à l'aide de règles de sécurité.