Intégration pour votre organisation
Il existe deux façons d'intégrer une carte Icon Map, adaptées à des publics différents.
Intégrer des cartes décrit la première : une carte publiée, figée et servie à des lecteurs qui n'ont aucun accès à Fabric. Cette page décrit la seconde : une carte en direct dans votre propre application interne, où chaque lecteur se connecte sous sa propre identité.
Si vous connaissez l'incorporation Power BI, ce sont les deux mêmes modèles : « incorporer pour vos clients » et « incorporer pour votre organisation ».
De quoi s'agit-il
La carte est intégrée dans votre application, et l'identité Microsoft Entra propre à chaque lecteur est utilisée pour lire les données. Cela signifie que :
- Les lecteurs ne voient que les données autorisées par leurs propres autorisations Fabric, et la sécurité au niveau des lignes s'applique automatiquement : la même RLS que vos modèles Fabric et Power BI appliquent déjà. Il n'y a rien à configurer dans Icon Map.
- Les données sont en direct, lues au moment où le lecteur ouvre la carte, et non un instantané.
- Il n'y a pas de principal de service lecteur et pas de copie publiée. Icon Map ne peut jamais atteindre quoi que ce soit que le lecteur ne pourrait pas déjà ouvrir lui-même.
La carte est en lecture seule : les lecteurs peuvent explorer, filtrer, utiliser les signets et remplir des formulaires de réécriture, mais il n'y a aucune fonction de création et aucun accès à l'éditeur.
Quel mode choisir
| Intégrer des cartes | Intégration pour votre organisation | |
|---|---|---|
| Les lecteurs se connectent ? | Non | Oui, avec leur propre compte professionnel |
| Qui lit les données | Une identité de lecture | Le lecteur |
| Sécurité au niveau des lignes | Pas par lecteur | RLS native de Fabric / Power BI, par lecteur |
| Données | Instantané, ou requêtes en direct épinglées | En direct, en tant que lecteur |
| Public | Tout le monde : clients, grand public | Les personnes de votre organisation qui ont accès aux données |
| Usage type | Un site public, un portail client | Un portail d'exploitation, un intranet, une application métier |
Aucune licence par utilisateur n'est à prévoir : Fabric est facturé au niveau de la capacité, le public est donc simplement constitué des personnes de votre annuaire autorisées à voir les données sous-jacentes.
Ce mode ne peut pas servir au partage public. Chaque lecteur se connecte, il n'y a donc pas de lien anonyme.
Ce dont vous avez besoin
- Une carte Icon Map créée avec la charge de travail Icon Map dans un espace de travail Fabric, sur une capacité Fabric (F ou d'évaluation).
- Des lecteurs disposant d'une autorisation Fabric sur l'élément de carte et sur les données sous-jacentes, accordée de la manière habituelle, en partageant l'élément ou l'espace de travail.
- Une application Entra capable d'émettre les jetons avec lesquels la carte lit les données. L'application
dépend de la façon dont vous gérez la connexion :
- Votre application fournit le jeton (le choix habituel) : votre propre application Entra
est utilisée, et l'application de visionneuse d'Icon Map n'intervient pas du tout. Votre
application a besoin de ces autorisations déléguées, avec consentement dans votre locataire : Azure
Storage
user_impersonation, Fabric/Power BIWorkspace.Read.All,Item.Read.AlletDataset.Read.All, et Azure Data Exploreruser_impersonationsi la carte lit un Eventhouse. - La carte connecte le lecteur : un consentement administrateur unique pour l'application Icon Map Embed Viewer dans votre locataire.
- Votre application fournit le jeton (le choix habituel) : votre propre application Entra
est utilisée, et l'application de visionneuse d'Icon Map n'intervient pas du tout. Votre
application a besoin de ces autorisations déléguées, avec consentement dans votre locataire : Azure
Storage
L'ajouter à votre application
Intégrez la carte avec le SDK JavaScript d'Icon Map. Indiquez-lui l'élément de carte et la manière d'obtenir un jeton :
<div id="map" style="height: 600px"></div>
<script type="module">
import { embedForOrganization } from "@iconmap/embed";
embedForOrganization(document.getElementById("map"), {
mapItem: {
workspaceId: "00000000-0000-0000-0000-000000000000",
itemId: "00000000-0000-0000-0000-000000000000",
},
// Your application already signed this user in - hand over a token for
// the scopes the map asks for.
getToken: (scopes) =>
msalInstance
.acquireTokenSilent({ scopes, account })
.then((result) => result.accessToken),
onError: (error) => console.error(error),
});
</script>
Vous trouverez les ID de l'espace de travail et de l'élément dans l'URL Fabric de la carte.
Deux façons de gérer la connexion
Votre application fournit le jeton (l'exemple ci-dessus, et le choix habituel). Vos utilisateurs se connectent une seule fois, à votre application, et la carte réutilise cette session. Rien de plus ne s'affiche devant eux.
La carte demande un jeton pour la ressource qu'elle s'apprête à lire (votre stockage
OneLake, l'API Fabric, un cluster Eventhouse) : renvoyez donc un jeton pour les
scopes qui vous sont transmis plutôt qu'un jeton fixe unique.
Comme les jetons proviennent de votre application Entra, l'application de visionneuse propre à Icon Map n'est jamais utilisée dans cette configuration et ne nécessite aucun consentement.
La carte connecte le lecteur. Omettez getToken et la carte gère elle-même
la connexion, en affichant un bouton de connexion la première fois. C'est le plus simple à mettre en place,
mais vos utilisateurs se connecteront deux fois : une fois à votre application et une fois à la
carte.
Contrôler la session
const handle = embedForOrganization(element, options);
handle.signOut(); // drop the viewer's session and cached tokens
handle.reload(); // re-read the map as the viewer
handle.destroy(); // remove the map from the page
Sécurité
- Moindre privilège par conception. Aucune identité de fournisseur ne figure dans le chemin des données. Un lecteur ne peut jamais voir que ce qu'il est déjà autorisé à voir, et un lecteur qui perd l'accès aux données cesse de les voir, immédiatement, sans nouvelle publication.
- La sécurité au niveau des lignes est celle de Fabric, pas la nôtre. Rien de votre RLS n'est à redéfinir dans Icon Map : il n'y a donc rien qui puisse se désynchroniser.
- Rien n'est copié. Aucun instantané figé de vos données n'existe nulle part.
- Le seul risque résiduel est celui, ordinaire, de ce modèle : un jeton d'accès volé reste valide jusqu'à son expiration. Les jetons ont une durée de vie courte, exactement comme dans le mode équivalent de Power BI.
Plus de détails dans le livre blanc sur la sécurité.
À savoir
- Les lecteurs invités (B2B) fonctionnent dans la mesure où Fabric leur accorde l'accès aux données. Icon Map ne peut pas élargir les scénarios d'invités entre locataires.
- Les cartes créées avec une build de développement de la charge de travail ne peuvent pas être intégrées de cette façon. Utilisez des cartes créées avec la charge de travail Icon Map publiée.
- La capacité de l'espace de travail de la carte doit être en cours d'exécution : une capacité suspendue signifie aucune donnée pour personne.
Étapes suivantes
- Embed API : pilotez la carte intégrée depuis votre propre application en JavaScript. La même API sert les deux modes d'intégration.
- Intégrer des cartes : le mode publié, sans connexion.
- Accorder le consentement administrateur : la configuration unique.
- Réécriture et modification par les lecteurs : permettre aux lecteurs d'ajouter des données.