Auf einen Blick: Um Microsoft Power BI und andere Microsoft-APIs zu nutzen, ist es unerlässlich, ein Zugriffstoken über oAuth2 zu erhalten. Dieses Tutorial erläutert die Schritte zur Registrierung Ihrer Anwendung, zum Erlangen eines Autorisierungscodes und zum Abrufen des Zugriffstokens für die API-Nutzung.
- Registrieren Sie die Anwendung in Power BI, um Zugangsdaten zu generieren.
- Folgen Sie der oAuth2-Authentifizierung, um ein Zugangstoken für API-Aufrufe zu erhalten.
Um Microsoft Power BI oder andere Microsoft-APIs zu nutzen, muss man einen Zugriffstoken erhalten, auch Trägertoken genannt. Das liegt daran, dass Microsoft oAuth2, ein Industriestandardprotokoll, für die Authentifizierung verwendet. (Mit anderen Worten: Ein einfacher API-Schlüssel oder Benutzername mit Passwort reicht nicht aus.) In diesem Tutorial erklären wir, wie das geht. Hinweis: Wir verwenden Curl, um Daten an Microsoft-Endpunkte zu senden. Das ist wie die Kommandozeilenversion von Postman. Auf Mac und Ubuntu ist Curl bereits vorhanden. Möglicherweise müssen Sie unter Windows installieren.
Power BI registrieren
Wenn du das alles zum allerersten Mal machst, gibt es für beide Schritte der oAuth2-Authentifizierung einen Schritt 0. Du musst zuerst deine Anwendung registrieren, um die Zugangsdaten zu erhalten. Das machst du einmal. Das erzeugt eine Anwendungs-ID und einen Geheimschlüssel. Bei Microsoft Power BI machst du das so: Zuerst loggst du dich beim Einbettungstool an https://app.powerbi.com/embedsetup/UserOwnsData Das ist nicht dasselbe, wie sich bei Azure anzumelden und dort eine Anwendung in Active Directory zu erstellen. Du erstellst eine Anwendung auf dem Azure-Konto von Power BI (wenn du es so sehen möchtest). Fülle als Nächstes die untenstehenden Bildschirme aus. Beachte:
- Für die URL können Sie jede Webseite verwenden. Sie sehen sich die Parameter an, die auf diese Webseite übertragen wurden, wie unten gezeigt.
- Überspringe den Bildschirm mit der Aufschrift Inhalt importieren.
- Für API-Zugriff klicken Sie auf "Alle auswählen".
- Am Ende kopieren und speichern Sie die Anwendungs-ID und das Anwendungsgeheimnis.
Verwendung von oAuth2 für REST-APIs
Sobald Sie sich registriert haben, können Sie zu diesem Schritt übergehen. Die grundlegende Authentifizierung ist, wenn Sie nur eine Benutzer-ID und ein Passwort benötigen, um auf etwas zuzugreifen. Microsoft verwendet jedoch die oAuth2-Authentifizierung. Microsoft-APIs verlangen, dass Sie einen Autorisierungsheader angeben, um die API nutzen zu können. Im Grunde ist oAuth2 ein zweistufiger Prozess:
- Mach einen POST an login.microsoftonline.com
- Nimm das Zugriffs-/Träger-Token aus Schritt 1 und gib es in einem Header namens Autorisierung an die API weiter, die du aufrufst.
Einen Token (Code) erhalten
Um den Autorisierungscode zu erhalten, klicken Sie auf diese URL, um einen Browser zu öffnen: https://login.microsoftonline.com/common/oauth2/authorize?client_id=(appid)&response_type=code&response_mode=query&redirect_uri=(URL, die Sie bei der Registrierung der App angegeben haben)&scope=openid&state=foo Im Grunde führt Sie zu der URL, die Sie bei der Registrierung der Anwendung angegeben haben. Aber es erscheint ein Bildschirm, der Sie auffordert, bestimmte Berechtigungen zu erteilen:
- response_type: Code
- response_mode: Abfrage
- State: foo (Sny-Wert funktioniert hier, es ist nur ein Ort für freie Formulardaten.)
- Scope: Openid (Du könntest auch offline_access hinzufügen.)
- URL: Wir verwenden durchgehend dieselbe URL, ändern aber die URI, um zu autorisieren , und tokenen später , um verschiedene Microsoft-Endpunkte aufzurufen.
Hinweis: Hier ist die Tenant-ID Common und keine Multi-Tenant-ID. Common bedeutet, die mit Ihrem Azure-Konto verknüpfte Tenant-ID abzurufen.
Man hätte sicherlich eine Art Web-Listener schreiben können, um den von Microsoft erstellten Code abzurufen. Aber wir werden einfach den Debugger in einem Chrome-Browser verwenden, um den Abfrageparameter zu sehen, den Microsoft an unsere Webseite weitergegeben hat. Wenn Microsoft Sie auf die von Ihnen angegebene Webseite weiterleitet, gehen Sie zum Netzwerk-Tab im Browser und klicken Sie auf den Aktualisieren-Button im Browser. Klicken Sie dann auf das Codefeld und drücken Sie als cURL kopieren. Der Code (Token) erscheint als der untenstehende Abrufparameter-Code.
https://walkercodetutorials.com/?code=0.ASsARY...
Wenn Sie sich an dieser Stelle fragen, warum die URL keine URL in Power BI ist: Das liegt daran, dass Sie die Anwendung in Power BI registriert haben. Microsoft weiß also, dass Power BI das ist, was Sie verwenden möchten. Die Redirect-URL dient lediglich als Ort, um diesen Code abzurufen. Zukünftig möchten Sie nicht jedes Mal auf den Browser klicken – so funktioniert ein Batch-Programm nicht. Schauen Sie sich also die Prompt-Einstellung im Microsoft Identity Platform Referenzleitfaden an, um zu sehen, wie Sie das ändern können.
Erhalten eines Zugangstokens
Wir verwenden Curl, um die nächsten Schritte zu veranschaulichen. Erhalten Sie auf diese Weise den Zugriffstoken (Inhabertoken). Die Werte sind:
- grant_type: Schreib "authorization_code"
- client_id: Anwendungs-ID von oben (Die Punkte oben verbergen meinen tatsächlichen Ausweis.)
- client_secret: Anwendungsgeheimnis von oben
- redirect_uri: Wie oben
- Scope: Wie oben
- URL: Beachten Sie, dass der Endpunkt auf Token geändert wurde
curl -X POST --form 'grant_type=authorization_code' --form 'client_id=7...5' --form 'client_secret=21dVzEgtjUhfyZS3AJDaH0eMYB0q0ovYeH4YUoa//FM' --form 'scope=openid%20offline_access'--form 'response_type=code' --form 'redirect_uri=https://walkercodetutorials.com/' --form 'code=0.AS...AA' https://login.microsoftonline.com/common/oauth2/token
Rückgabe:
{"token_type":"Bearer","expires_in":"3599","ext_expires_in":"3599","expires_on":"1614591204","not_before":"1614587304","resource":"https://analysis.windows.net/powerbi/api","access_token":"ey….G8CYZQT6t2p5IC1r3E7D_koNqc6h_-f3918o_BP2N0YOweCKKZ7WCw"}
Testen Ihres Microsoft-API-Zugangs
Nehmen Sie den access_token-Wert aus dem vorherigen Schritt und fügen Sie ihn als Autorisierungsheader-Wert hinzu, wie unten gezeigt. (Sie haben noch eine Stunde Zeit, bevor er abläuft.) So zum Beispiel geben Sie eine Liste von Datensätzen in Power BI in My workspace zurück. (Das ist der Standard-Arbeitsbereich für kostenlose Power BI-Konten, also nur für die Nutzung durch eine einzelne Person, im Gegensatz zu beispielsweise einem Unternehmenskonto.) Hinweis: myorg bedeutet nicht Ihre Organisation. Es ist lediglich ein von Microsoft verlangter Platzhalter.
curl -X GET -H "Authorization: Bearer ey….W_A" -H "Content-Type: application/json" https://api.powerbi.com/v1.0/myorg/datasets
Damit ist dieses Tutorial beendet.
Verwandte Literatur
- BMC Machine Learning & Big Data Blog
- Power BI Grundlagen: Erstellung eines Tortendiagramms mit dem Power Query Editor
- Data Visualization Guide, eine Reihe von Tutorials
- Datenspeicher erklärt: Data Lake vs. Warehouse vs. Datenbank
- Ermöglichung der Bürgerdatenwissenschaftler
- MySQL vs. MongoDB: Vergleich von Datenbanken
Power BI Leitfaden
- Power BI Grundlagen: Erstellung eines Tortendiagramms
- Wie man Berichte in Microsoft Power BI erstellt
- Erstellung von Tabellenvisualisierungen in Power BI-Dashboards
- Power BI Visualisierungstypen
- Erstellen und verwenden von verknüpften Tabellen in Power BI
- Authentifizierungszugriffstoken für Microsoft-APIs erhalten
- Wie man Power BI-Berichte veröffentlicht
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.