Vložení webového uživatelského rozhraní Azure Data Exploreru do prvku iframe
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer
Webové uživatelské rozhraní Azure Data Exploreru je možné vložit do prvku iframe a hostovat ho na webech třetích stran. Tento článek popisuje, jak vložit webové uživatelské rozhraní Azure Data Exploreru do prvku iframe.
Všechny funkce jsou testovány pro přístupnost a podporují tmavé a světlé motivy na obrazovce.
Jak vložit webové uživatelské rozhraní do prvku iframe
Na svůj web přidejte následující kód:
<iframe
src="https://dataexplorer.azure.com/?f-IFrameAuth=true&f-UseMeControl=false&workspace=<guid>"
></iframe>
Parametr f-IFrameAuth
dotazu říká webovému uživatelskému rozhraní , aby nepřesměrovál , aby získal ověřovací token, a f-UseMeControl=false
parametr říká webovému uživatelskému rozhraní , aby nezobsadl automaticky otevírané okno s informacemi o uživatelském účtu. Tyto akce jsou nezbytné, protože hostující web zodpovídá za ověřování.
Parametr workspace=<guid>
dotazu vytvoří pro vložený prvek iframe samostatný pracovní prostor. Pracovní prostor je jednotka logiky, která obsahuje karty, dotazy, nastavení a připojení. Nastavením na jedinečnou hodnotu zabrání sdílení dat mezi vloženou a neintegrovanou verzí https://dataexplorer.azure.com
.
Zpracování ověřování
Při vkládání webového uživatelského rozhraní zodpovídá za ověřování hostitelská stránka. Následující diagramy popisují tok ověřování.
K zpracování ověřování použijte následující postup:
V aplikaci si poslechněte zprávu getToken .
window.addEventListener('message', (event) => { if (event.data.signature === "queryExplorer" && event.data.type === "getToken") { // CODE-1: Replace this placeholder with code to get the access token from Microsoft Entra ID and // then post a "postToken" message with an access token and an event.data.scope } })
Definujte funkci, která mapuje
event.data.scope
obor Microsoft Entra. V následující tabulce se můžete rozhodnout, jak se mapovatevent.data.scope
na obory Microsoft Entra:Prostředek event.data.scope Rozsah Microsoft Entra Cluster query
https://{your_cluster}.{your_region}.kusto.windows.net/.default
Graf People.Read
People.Read
, ,User.ReadBasic.All
Group.Read.All
Řídicí panely https://rtd-metadata.azurewebsites.net/user_impersonation
https://rtd-metadata.azurewebsites.net/user_impersonation
Například následující funkce mapuje obory na základě informací v tabulce.
function mapScope(scope) { switch(scope) { case "query": return ["https://your_cluster.your_region.kusto.windows.net/.default"]; case "People.Read": return ["People.Read", "User.ReadBasic.All", "Group.Read.All"]; default: return [scope] } }
Získejte přístupový token JWT z ověřování Provést jednostránkové aplikace (SPA) pro obor. Tento kód nahrazuje zástupný kód CODE-1.
Můžete například použít @azure/MSAL-react k získání přístupového tokenu. V příkladu se používá funkce mapScope , kterou jste definovali dříve.
import { useMsal } from "@azure/msal-react"; const { instance, accounts } = useMsal(); instance.acquireTokenSilent({ scopes: mapScope(event.data.scope), account: accounts[0], }) .then((response) => var accessToken = response.accessToken // - CODE-2: Replace this placeholder with code to post a "postToken" message with an access token and an event.data.scope )
Důležité
K ověřování můžete použít pouze hlavní název uživatele (UPN), instanční objekty se nepodporují.
Publikujte zprávu postToken s přístupovým tokenem. Tento kód nahrazuje zástupný kód CODE-2:
iframeWindow.postMessage({ "type": "postToken", "message": // the access token your obtained earlier "scope": // event.data.scope as passed to the "getToken" message }, '*'); }
Důležité
Hostitelské okno musí token před vypršením platnosti aktualizovat odesláním nové zprávy postToken s aktualizovanými tokeny. Jinak po vypršení platnosti tokenů se volání služby nezdaří.
Tip
V našem ukázkovém projektu můžete zobrazit aplikaci , která používá ověřování.
Vložení řídicích panelů
Pokud chcete vložit řídicí panel, musí být mezi aplikací Microsoft Entra hostitele a službou řídicího panelu Azure Data Exploreru (RTD Metadata Service) vytvořen vztah důvěryhodnosti.
Postupujte podle kroků v ověřování jednostránkové aplikace (SPA).
Otevřete Azure Portal a ujistěte se, že jste přihlášeni ke správnému tenantovi. V pravém horním rohu ověřte identitu použitou k přihlášení k portálu.
V podokně prostředků vyberte ID> Microsoft Entra Registrace aplikací.
Vyhledejte aplikaci, která používá tok on-behalf-of , a otevřete ji.
Vyberte manifest.
Vyberte requiredResourceAccess.
Do manifestu přidejte následující položku:
{ "resourceAppId": "00001111-aaaa-2222-bbbb-3333cccc4444", "resourceAccess": [ { "id": "388e2b3a-fdb8-4f0b-ae3e-0692ca9efc1c", "type": "Scope" } ] }
00001111-aaaa-2222-bbbb-3333cccc4444
je ID aplikace služby řídicího panelu Azure Data Exploreru.388e2b3a-fdb8-4f0b-ae3e-0692ca9efc1c
je oprávnění user_impersonation.
V manifestu uložte změny.
Vyberte oprávnění rozhraní API a ověřte, že máte novou položku: Služba metadat RTD.
V části Microsoft Graph přidejte oprávnění pro
People.Read
,User.ReadBasic.All
aGroup.Read.All
.V Azure PowerShellu přidejte pro aplikaci následující nový instanční objekt:
New-MgServicePrincipal -AppId 00001111-aaaa-2222-bbbb-3333cccc4444
Pokud narazíte na
Request_MultipleObjectsWithSameKeyValue
chybu, znamená to, že aplikace už je v tenantovi, což znamená, že se úspěšně přidala.Na stránce oprávnění rozhraní API vyberte Udělit správci souhlas se souhlasem pro všechny uživatele.
Poznámka:
Pokud chcete vložit řídicí panel bez oblasti dotazu, použijte následující nastavení:
<iframe src="https://dataexplorer.azure.com/dashboards?[feature-flags]" />
kde [feature-flags]
je:
"f-IFrameAuth": true,
"f-PersistAfterEachRun": true,
"f-Homepage": false,
"f-ShowPageHeader": false,
"f-ShowNavigation": false,
"f-DisableExploreQuery": false,
Hlavní příznaky
Důležité
Příznak f-IFrameAuth=true
se vyžaduje, aby prvek iframe fungoval. Ostatní příznaky jsou volitelné.
Hostitelská aplikace může chtít řídit určité aspekty uživatelského prostředí. Skryjte například podokno připojení nebo zakažte připojení k jiným clusterům. V tomto scénáři webový průzkumník podporuje příznaky funkcí.
Příznak funkce lze použít v adrese URL jako parametr dotazu. Pokud chcete zakázat přidávání dalších clusterů, použijte https://dataexplorer.azure.com/?f-ShowConnectionButtons=false v hostitelské aplikaci.
nastavení | Popis | Výchozí hodnota |
---|---|---|
f-ShowShareMenu | Zobrazit položku nabídky Sdílet | true |
f-ShowConnectionButtons | Zobrazení tlačítka pro přidání připojení pro přidání nového clusteru | true |
f-ShowOpenNewWindowButton | Zobrazí tlačítko otevřít ve webovém uživatelském rozhraní, které otevře nové okno prohlížeče a přejde na https://dataexplorer.azure.com správný cluster a databázi v oboru. | false (nepravda) |
f-ShowFileMenu | Zobrazení nabídky souboru (stažení, karta, obsah atd.) | true |
f-ShowToS | Zobrazení odkazu na podmínky služby pro Azure Data Explorer z dialogového okna nastavení | true |
f-ShowPersona | V pravém horním rohu zobrazte uživatelské jméno z nabídky nastavení. | true |
f-UseMeControl | Zobrazení informací o účtu uživatele | true |
f-IFrameAuth | Pokud je pravda, webový průzkumník očekává, že element iframe zpracuje ověřování a poskytne token prostřednictvím zprávy. Tento parametr se vyžaduje pro scénáře iframe. | false (nepravda) |
f-PersistAfterEachRun | Prohlížeče se obvykle uchovávají v události uvolnění. Událost uvolnění se ale neaktivuje vždy při hostování v prvku iframe. Tento příznak aktivuje trvalou místní stav událost po každém spuštění dotazu. Tím se omezí jakákoli ztráta dat, ke které může dojít, aby ovlivnila pouze nový text dotazu, který se nikdy nespustí. | false (nepravda) |
f-ShowSmoothIngestion | Pokud je hodnota true, při kliknutí pravým tlačítkem myši na databázi zobrazte prostředí průvodce příjmem dat. | true |
f-RefreshConnection | Pokud je hodnota true, při načítání stránky vždy aktualizuje schéma a nikdy nezávisí na místním úložišti. | false (nepravda) |
f-ShowPageHeader | Pokud je hodnota true, zobrazí se záhlaví stránky, které obsahuje název a nastavení Azure Data Exploreru. | true |
f-HideConnectionPane | Pokud je hodnota true, levé podokno připojení se nezobrazí. | false (nepravda) |
f-SkipMonacoFocusOnInit | Řeší problém s fokusem při hostování prvku iframe. | false (nepravda) |
f-Homepage | Povolení domovské stránky a přesměrování nových uživatelů na ni | true |
f-ShowNavigation | POKUD je true, zobrazuje navigační podokno vlevo. | true |
f-DisableDashboardTopBar | POKUD je true, skryje horní panel na řídicím panelu. | false (nepravda) |
f-DisableNewDashboard | POKUD je true, skryje možnost pro přidání nového řídicího panelu. | false (nepravda) |
f-DisableNewDashboard | POKUD je true, skryje možnost hledání v seznamu řídicích panelů. | false (nepravda) |
f-DisableDashboardEditMenu | POKUD je true, skryje možnost pro úpravu řídicího panelu. | false (nepravda) |
f-DisableDashboardFileMenu | POKUD je true, skryje tlačítko nabídky soubor na řídicím panelu. | false (nepravda) |
f-DisableDashboardShareMenu | POKUD je true, skryje tlačítko nabídky Sdílet na řídicím panelu. | false (nepravda) |
f-DisableDashboardDelete | POKUD je true, skryje tlačítko pro odstranění řídicího panelu. | false (nepravda) |
f-DisableTileRefresh | POKUD je true, zakáže tlačítko aktualizovat dlaždice na řídicím panelu. | false (nepravda) |
f-DisableDashboardAutoRefresh | POKUD je true, zakáže automatické aktualizace dlaždic na řídicím panelu. | false (nepravda) |
f-DisableExploreQuery | POKUD je true, zakáže tlačítko prozkoumat dotaz na dlaždicích. | false (nepravda) |
f-DisableCrossFiltering | POKUD je true, zakáže funkci křížového filtrování na řídicích panelech. | false (nepravda) |
f-HideDashboardParametersBar | POKUD je true, skryje panel parametrů na řídicím panelu. | false (nepravda) |