MS Graph GET /reports/getM365AppUserDetail shows not expected user principal name

Sven Redelin 0 Zuverlässigkeitspunkte
2024-05-07T18:12:20.2733333+00:00

Hi folks,

I tried to analyse the activity of our user licenses in Azure using GraphAPI following the documentation under https://learn.microsoft.com/en-us/graph/api/reportroot-getm365appuserdetail?view=graph-rest-1.0&tabs=http

First Problem

The CSV Export contains a not expected user principal name in the format of an uuid without hyphens. This uuid I first thought might be the id of an user but it isn't. I was not able to find the id in the users profile at all.

Second Problem

The documentation said, you can try to use json export as well with an example of a well known user principal id. I tried, but got HTTP/2 400 Bad Request with the following body.

{

"error": {

"code": "UnknownError",

"message": "{\"Message\":\"JSON format is not supported.\"}",

"innerError": {

  "date": "2024-04-21T20:58:03",

  "request-id": "af82e032-1752-4b3f-8941-c3a19d2bb441",

  "client-request-id": "af82e032-1752-4b3f-8941-c3a19d2bb441"

}

}

}

Can anybody explain to me, how to match the CSV user principal name (uuid) with an user profile OR how to use json formatted response?

Best regards

Sven

Azure SDKs
Azure SDKs
Eine Reihe von Visual Studio-Tools, Befehlszeilentools, Laufzeitbinärdateien und Clientbibliotheken, die Clients beim Entwickeln, Testen und Bereitstellen von Apps unterstützen, die in Azure ausgeführt werden.
33 Fragen
0 Kommentare Keine Kommentare
{count} Stimmen

3 Antworten

Sortieren nach: Am hilfreichsten
  1. Ivan Dragov (CONCENTRIX Corporation) 1.620 Zuverlässigkeitspunkte Microsoft-Anbieter
    2024-05-08T13:11:02.5566667+00:00

    Hallo Sven,

    Da Sie die Fehlermeldung "JSON format is not supported“ erhältst, ist es wahrscheinlich, dass der Endpunkt JSON für den von Dir angeforderten Bericht nicht unterstützt. Die Graph-API hat verschiedene Endpunkte, und nicht alle unterstützen das JSON-Format für alle Berichtstypen. Ein nicht unterstütztes Format könnte auch der Grund für unangemessene Ergebnisse sein (in Deinem Fall UUID). Wenn Du mit einem Endpunkt arbeitest, der JSON unterstützt, musst Du ?$format=text/csv aus Deiner URL entfernen und sicherstellen, dass Deine Header so eingestellt sind, dass sie JSON akzeptieren. Der folgende Artikel beschreibt diese Problemumgehung:

    Using Graph API in Power BI and coping with pagination

    Hast Du versucht, Example 2: JSON output aus dem von Dir bereitgestellten Link auszuprobieren? Anschließend kannst Du mit einem Konverter vom JSON- in das CSV-Format konvertieren.

    Die Fehlermeldung wird auch von einem Mitglied des Entwicklerteams von Microsoft Graph auf Github besprochen. Er erwähnt, dass der Fehler dadurch verursacht wird, dass die API den JSON-Typ für dieses Szenario möglicherweise nicht unterstützt. Weitere Informationen findest Du hier:

    Unable to set QueryParamters/Format

    Gruß,

    Ivan Dragov

  2. Sven Redelin 0 Zuverlässigkeitspunkte
    2024-05-15T20:52:10.12+00:00

    Hallo Ivan,

    Ich habe versucht den Beispielen zu folgen, die m. E. nach sehr einfach gestrickt und damit definitiv falsch beschrieben sind.

    https://learn.microsoft.com/en-us/graph/api/reportroot-getm365appuserdetail?view=graph-rest-1.0&tabs=http#example-2-json-output

    Unter dieser Anleitung ist ja sehr deutlich beschrieben, dass man nur einen GET Request machen muss, den ich exakt so kopiert und um den Bearer Authorization Header ergänzt habe. Ein zusätzlicher Accept Header hatte keine Wirkung, da offenbar das Backend bereits einen Request als JSON ablehnt.

    Die Daten aus dem analogen CSV Report sind ja valide und schlüssig, nur ist der userPrincipalName nicht wie üblich eine E-Mail-Adresse, sondern ein UUID ähnlicher Schlüssel, dessen Herkunft ich an Benutzerkonten nicht nachvollziehen kann.

    Meines Erachtens ist das Format des Endpunktes als CSV zu wenig beschrieben (die Doku nicht ausreichend) und die Doku im Bereich Report als JSON falsch.

    Ich hatte gehofft hier ein konkretes Beispiel erhalten zu können, wie ich entweder aus der UUID auf einen User ableiten kann oder den JSON Report doch noch erhalte.

    Können Sie mir dahingehend helfen?

    Die von Ihnen verlinkten Themen umreißen zwar die gleiche Thematik, enden aber immer in der gleichen Aussage, dass der Endpunkt wohl kein JSON unterstützt, was dieser in genau der genannten Form aber laut Doku sollte.

    Viele Grüße

    Sven

  3. Sven Redelin 0 Zuverlässigkeitspunkte
    2024-05-21T20:57:10.63+00:00

    Hallo @Ivan Dragov (CONCENTRIX Corporation) ,
    Konntest du meine Fehlerbeschreibung nachvollziehen?Gruß Sven