Power BI ダッシュボードの埋め込み: 安全でシンプルなソリューション
Power BI ダッシュボードを Web アプリケーションに埋め込むことは、ユーザーと安全に洞察を共有する強力な方法です。このチュートリアルでは、Azure の基本的な構成をカバーしながら、バックエンドに Express を使用し、フロントエンドに React を使用して基本的なソリューションをセットアップする手順を説明します。 および Power BI。
1. Azure での構成
Power BI レポートを埋め込むには、Azure Active Directory にアプリを登録する必要があります。
-
アプリケーションを登録する:
- Azure portal → Azure Active Directory → アプリの登録 → 新規登録に移動します。
- 名前 (「PowerBIEmbedApp」など) を入力し、リダイレクト URI をフロントエンドのベース URL に設定します。
-
API 権限:
- Power BI サービス (委任およびアプリケーション) のアクセス許可を追加します。
- 権限に対して管理者の同意を与えます。
-
クライアントシークレット:
- 証明書とシークレット で新しいクライアント シークレットを作成します。
- アプリケーション (クライアント) ID、ディレクトリ (テナント) ID、および クライアント シークレットをメモします。
2.Power BI の構成
-
埋め込みトークンの生成を有効にする:
- Power BI サービス → 管理ポータル → テナント設定にログインします。
- 「サービス プリンシパルに Power BI API の使用を許可する」を有効にします。
-
ワークスペースへのアクセスの割り当て:
- サービス プリンシパル (登録済みアプリ) を管理者またはメンバーとして Power BI ワークスペースに追加します。
-
ダッシュボード/レポート ID の取得:
- 埋め込むコンテンツのワークスペース、ダッシュボード、レポート ID をメモします。
3. バックエンド: 高速セットアップ
バックエンドは、ダッシュボードの埋め込みトークンを生成する役割を果たします。
依存関係をインストールします:
npm install express axios dotenv
バックエンド コード:
const express = require('express'); const axios = require('axios'); const dotenv = require('dotenv'); dotenv.config(); const app = express(); app.use(express.json()); // Environment variables from .env const { TENANT_ID, CLIENT_ID, CLIENT_SECRET, WORKSPACE_ID, REPORT_ID, } = process.env; const POWER_BI_AUTH_URL = `https://login.microsoftonline.com/${TENANT_ID}/oauth2/v2.0/token`; app.get('/api/getEmbedToken', async (req, res) => { try { // Get Access Token const authResponse = await axios.post(POWER_BI_AUTH_URL, new URLSearchParams({ grant_type: 'client_credentials', client_id: CLIENT_ID, client_secret: CLIENT_SECRET, scope: 'https://analysis.windows.net/powerbi/api/.default', })); const accessToken = authResponse.data.access_token; // Get Embed Token const embedResponse = await axios.post( `https://api.powerbi.com/v1.0/myorg/groups/${WORKSPACE_ID}/reports/${REPORT_ID}/GenerateToken`, { accessLevel: 'View' }, { headers: { Authorization: `Bearer ${accessToken}` } } ); res.json(embedResponse.data); } catch (error) { console.error(error.message); res.status(500).send('Error generating embed token'); } }); const PORT = 5000; app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
4. フロントエンド: React のセットアップ
依存関係をインストールします:
npm install react powerbi-client axios
フロントエンド コード:
import React, { useEffect, useState } from 'react'; import axios from 'axios'; import { PowerBIEmbed } from 'powerbi-client-react'; const Dashboard = () => { const [embedConfig, setEmbedConfig] = useState(null); useEffect(() => { const fetchEmbedToken = async () => { try { const response = await axios.get('http://localhost:5000/api/getEmbedToken'); setEmbedConfig({ type: 'report', tokenType: 1, accessToken: response.data.token, embedUrl: response.data.embedUrl, settings: { panes: { filters: { visible: false } } }, }); } catch (error) { console.error('Error fetching embed token:', error); } }; fetchEmbedToken(); }, []); if (!embedConfig) return <div>Loading...</div>; return ( <PowerBIEmbed embedConfig={embedConfig} cssClassName="dashboard-embed" /> ); }; export default Dashboard;
5. 最終ステップ
- バックエンドを実行します: ノードserver.js.
- フロントエンドを実行します: npm start (Create React App または同様のセットアップを想定)。
- フロントエンド アプリケーションにアクセスして、埋め込み Power BI ダッシュボードを確認します。
テイクアウト
このセットアップでは、Power BI ダッシュボードを安全かつ簡単に埋め込む方法が提供されます。実稼働環境では、以下を考慮してください。
- 機密性の高い環境変数を安全に保存します (例: Azure Key Vault を使用)。
- より優れたエラー処理とログ記録を実装します。
- 認証/認可による API ルートの保護。
詳細については、この記事で実際のシナリオでこれをどのように実装したかを確認してください。さらに、このリポジトリでは、最新のスケーラブルなスタックに適応した Next.js を使用した実装を見つけることができます。
プロジェクトのニーズに基づいてこのソリューションを自由にカスタマイズしてください!
読んでいただきありがとうございます!! ??
以上がPower BI ダッシュボードの埋め込み: 安全でシンプルなソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

Zustand非同期操作のデータの更新問題。 Zustand State Management Libraryを使用する場合、非同期操作を不当にするデータ更新の問題に遭遇することがよくあります。 �...
