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 (l'identité de l'utilisateur) et l'autorisation (ce que l'utilisateur peut faire). L'authentification et l'autorisation sont difficiles à configurer, encore plus difficiles à mettre en place correctement et essentielles à la réussite de votre produit.
Tout comme Firebase Authentication vous permet d'authentifier facilement vos utilisateurs, Firebase Security Rules pour Cloud Storage vous permet d'autoriser facilement les utilisateurs et de valider les requêtes. Cloud Storage Security Rules gère la complexité pour vous en vous permettant de spécifier des autorisations basées sur des chemins 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'une importation.
Firebase Realtime Database dispose d'une fonctionnalité similaire, appelée Firebase Realtime Database Security Rules.
Authentification
Connaître vos utilisateurs est un élément important de la création d'une application. Firebase Authentication fournit une solution d'authentification côté client simple à utiliser et sécurisée. Firebase Security Rules pour Cloud Storage est associé à 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 contenant l'ID unique de l'utilisateur (request.auth.uid
) et toutes les autres informations utilisateur dans le jeton (request.auth.token
). Lorsque l'utilisateur n'est pas authentifié, request.auth
est null
. Vous pouvez ainsi 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 l'utilisateur n'est qu'une partie de la sécurité. Une fois que vous savez qui ils sont, vous devez trouver un moyen de contrôler leur 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 se trouvent sur nos serveurs et déterminent l'accès aux fichiers de votre application. Par exemple, le Cloud Storage Security Rules par défaut nécessite Firebase Authentication pour effectuer des opérations read
ou write
sur tous les fichiers:
service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if request.auth != null; } } }
Vous pouvez modifier ces règles en sélectionnant une application Firebase dans la console Firebase et en affichant l'onglet Rules
de la section "Stockage".
Validation des données
Firebase Security Rules pour Cloud Storage peut également être utilisé pour la validation des données, y compris pour valider le nom et le chemin d'accès du fichier, ainsi que les propriétés des métadonnées de 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 buckets Cloud Storage.
Découvrez comment sécuriser vos données à l'aide de règles de sécurité.