Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L'accès anonyme aux données permet à une application Fabric d'exposer certaines opérations de données à des utilisateurs non connectés. Vous contrôlez cet accès au niveau du locataire Fabric et dans chaque modèle de données. L’accès anonyme est une option d’autorisation, pas un remplacement de l’authentification. La même application peut fournir un accès public à certaines entités tout en exigeant que les utilisateurs se connectent à d’autres entités ou opérations.
Important
Toute personne pouvant accéder à l’URL de l’application peut utiliser les opérations attribuées au anonymous rôle. Ne divulguez pas de données personnelles, confidentielles, financières ou internes à travers ce poste.
Cas d’utilisation
Envisagez l’accès anonyme aux données lorsqu’une application doit fournir des fonctionnalités limitées sans obligation de connexion.
| Scénario | Exemples d’accès | Étendue recommandée |
|---|---|---|
| Données de référence publiques | Consultez les catalogues de produits, les plannings ou les ensembles de données publics | read |
| Collecte de commentaires | Soumettez des commentaires ou des réponses à un sondage | create |
L’accès anonyme n’est pas approprié lorsqu’une application doit identifier l’utilisateur, faire respecter la propriété ou fournir un accès sur la base de revendications d’identité. Utilisez des rôles authentifiés pour ces scénarios.
Comment fonctionne l’accès anonyme
L’accès anonyme aux données utilise des contrôles indépendants :
- Lieu de location : Un administrateur locataire Fabric accorde un accès anonyme aux données à l’organisation ou à certains groupes de sécurité.
-
Rôle dans le modèle de données : Une entité utilise ce
anonymousrôle pour définir les opérations que les utilisateurs non authentifiés peuvent effectuer.
Le cadre locataire constitue la frontière à l’échelle de l’organisation. Le paramètre de l’application permet aux requêtes anonymes d’atteindre le service de données de l’application. Le rôle d’entité détermine quelles données et opérations ces requêtes peuvent accéder. N’activer qu’un ou deux de ces contrôles n’accorde pas un accès anonyme.
Activez le paramètre du locataire
Un administrateur de locataire Fabric doit activer un accès anonyme aux données avant que les développeurs d’applications puissent l’utiliser. Le paramètre est désactivé par défaut.
Connectez-vous au portail d’administration Fabric.
Sélectionnez Paramètres du client.
Dans les applications Fabric (aperçu), trouvez Accès anonyme aux données.
Définissez l'interrupteur sur Activé.
Appliquez ce paramètre à l’ensemble de l’organisation ou à des groupes de sécurité spécifiques.
Cliquez sur Appliquer.
Les changements peuvent prendre quelques minutes avant de faire effet. Lorsque vous limitez ce paramètre aux groupes de sécurité, vérifiez que le développeur ou le propriétaire de l’application est inclus dans un groupe autorisé.
Définir l’accès anonyme dans un modèle de données
Utilisez le @role décorateur sur une entité et spécifiez anonymous comme nom du rôle. Le second argument définit les opérations de données autorisées : create, read, update, ou delete.
Parameters
| Paramètre | Type | Description |
|---|---|---|
roleName |
string |
Le nom du rôle, tel que authenticated ou un rôle d’application personnalisé |
actions |
string \| string[] |
Action ou tableau unique : create, , readupdate, deleteou * pour tous |
options |
object |
Objet facultatif avec check, includeet exclude propriétés |
L’exemple suivant permet aux utilisateurs non authentifiés de lire les annonces publiques :
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
export class Announcement {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
}
Le anonymous rôle n’utilise pas les revendications d’identité car aucune identité connectée n’est disponible. Définissez l’ensemble d’opérations le plus restreint qui soutient votre scénario.
Permettre aux utilisateurs de soumettre des données
Pour un formulaire de retour, accordez create l’accès sans accorder read, update, ou delete l’accès :
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'create')
export class Feedback {
@uuid() id!: string;
@text() comment!: string;
}
Ce modèle permet aux utilisateurs de soumettre des retours, mais ne leur permet pas de consulter ou de modifier les entrées soumises.
Autoriser plusieurs opérations
Passer un tableau lorsqu’un scénario nécessite plus d’une opération :
import { boolean, entity, role, text, uuid } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', ['create', 'read', 'update'])
export class SharedTodo {
@uuid() id!: string;
@text() title!: string;
@boolean({ default: false }) completed!: boolean;
}
Toute personne ayant accès à cette application peut créer, consulter et mettre à jour chaque tâche partagée. Ils ne peuvent pas supprimer les tâches car delete ce n’est pas inclus. Utilisez des permissions larges comme celles-ci uniquement pour les données publiques ou temporaires où les utilisateurs sont censés partager l’accès.
Combinez des rôles anonymes et authentifiés
Appliquer les deux rôles à une entité lorsque les utilisateurs publics et connectés nécessitent des permissions différentes. Par exemple, n’importe qui peut lire un article de blog, mais seul son propriétaire connecté peut le modifier :
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
@role('authenticated', ['create', 'update', 'delete'], {
policy: (claims, item) => claims.sub.eq(item.createdBy),
})
export class BlogPost {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
@text() createdBy!: string;
}
Le rôle anonyme permet des lectures publiques sans évaluer les revendications d’identité. Le rôle authentifié utilise les revendications de l’utilisateur connecté pour restreindre les modifications apportées au contenu que l’utilisateur possède.
Conseils de sécurité
- Accordez l’accès minimum requis. Plutôt
readoucreateseul. Subventionnezupdateoudeleteseulement lorsque le flux de travail public l’exige. - Limitez les champs exposés. Utilisez
includedesexcludeoptions pour empêcher l’accès à des champs dont les utilisateurs anonymes n’ont pas besoin. Pour plus d’informations, voir Définir les permissions de données. - Ne comptez pas sur l’interface de l’application pour la protection. Les permissions doivent être définies sur le modèle de données car les appelants peuvent envoyer des requêtes sans utiliser votre frontend.
- Prévoyez les entrées non fiables. Valider les données soumises et concevoir des opérations d’écriture publiques pour le spam, l’automatisation et le trafic inattendu.
- Test refusé des opérations. Confirmez que les opérations omises du rôle sont rejetées pour les utilisateurs sans session.
Désactiver l’accès anonyme
Pour supprimer l’accès public d’une application :
- Supprimez ce
anonymousrôle de chaque modèle de données. - Redéployez l’application en lançant
npx rayfin up.
Un administrateur locataire peut également désactiver le paramètre locataire pour bloquer l’accès anonyme aux données de toutes les applications au sein d’un locataire et limiter l’accès à certains groupes de sécurité.