ra2 studio - stock.adobe.com

So managen Sie Microsoft 365 mit Graph API

Microsoft Graph bietet mehrere Vorteile für Administratoren, wenn sie Arbeiten an Microsoft 365 und Azure AD durchführen. Sie müssen dabei jedoch einige Besonderheiten beachten.

Die Verwaltung verschiedener Cloud-Dienste von Microsoft zur gleichen Zeit bereitet aufgrund der vielen verfügbaren Einstellungen Kopfschmerzen. Graph API verspricht jedoch einen einheitlichen Ansatz, der diese Aufgabe vereinfacht.

Microsoft 365 besteht aus einer Reihe verbundener Komponenten, Steuerelemente und Dienste. Jeder davon – einschließlich Exchange, SharePoint, Microsoft Teams und sogar die Sicherheits- und Compliance-Funktionen – hat seine eigene API.

Das erschwert das Abrufen von Informationen oder das Durchführen von Änderungen. Sie müssen für jedes Tool einen anderen Endpunkt mit verschiedenen Eigenschaften und sogar unterschiedlicher Syntax verwenden. Microsoft hat Graph entwickelt, um die Arbeit mit Diensten innerhalb von Microsoft-365- und Office-365-Mandanten zu optimieren. Mit PowerShell können Sie eine Verbindung zu einem Endpunkt herstellen, um mit all Ihren Microsoft-Diensten zu arbeiten.

Microsoft Graph macht die vorhandenen REST-APIs und Clientbibliotheken verfügbar, um Verbindungen zu Microsoft-Clouddiensten wie den folgenden zu ermöglichen:

  • Microsoft-365-Cloud-Dienste
  • Microsoft-365-Compliance-eDiscovery
  • Microsoft-Suche
  • Enterprise Mobility + Security (EMS)
  • Windows-10-Dienste
  • Dynamics 365 Business Central

Jeder Dienst hat weiterhin seine eigene API, aber Microsoft Graph schließt sie zu einem Framework zusammen.

Microsoft Graph gibt es in zwei Versionen: eine freigegebene Version, bekannt als Version 1.0, und eine Betaversion zu Testzwecken. Um beispielsweise Ihr persönliches Microsoft 365-Benutzerprofil anzuzeigen, können Sie die folgenden Links zum Online-Tool Graph Explorer verwenden:

Microsoft Graph verwenden

Graph Explorer ist ein großartiger Ausgangspunkt, um eine Verbindung zu Ihrem Mandanten herzustellen und Befehle auszuführen. Das Microsoft Graph-Toolkit funktioniert mit anderen Programmiersprachen in einem gemeinsamen Framework. Wenn Sie mehr über das Microsoft Graph-Toolkit herausfinden möchten, bietet der folgende Link detailliertere Informationen.

Eine weitere Option ist das Graph PowerShell SDK, ein Wrapper für Microsoft Graph. Jeder PowerShell-Befehl stellt eine direkte Verbindung zu einem oder mehreren Microsoft Graph-API-Aufrufen her.

Unabhängig davon, wie Sie es bedienen, benötigt Microsoft Graph eine Verbindung mit einem REST-API-Endpunkt in Kombination mit den erforderlichen Eigenschaften oder Werten. Um beispielsweise die Mitglieder eines Microsoft Teams-Kanals mit Microsoft Graph abzurufen, ist der hier verlinkte Uniform Resource Identifier (URI) erforderlich:

URI beginnt mit dem Diagrammendpunkt und der Diagrammversion, gefolgt vom Dienstendpunkt, der Ressourcen-ID (Team-ID) und dem erforderlichen Objekttyp – in diesem Fall Mitglieder des Teams. Sie können denselben URI in jeder unterstützten Programmiersprache oder jedem Tool verwenden, das REST-API-Aufrufe unterstützt. Um beispielsweise denselben URI mit PowerShell aufzurufen, verwenden Sie die folgenden Befehle:

$endpoint= https://graph.microsoft.com
$version = "beta"
$serviceendpoint = "groups"
$resource = "0c83236a-7484-4128-b43c-f7f5011a581b"
$objecttype = "members"
$body = @{}
$members = Invoke-MgGraphRequest `
     -Uri "$endpoint/$version/$serviceendpoint/$resource/$objecttype" `
     -Method GET `
     -Body $body
$members.value | ForEach-Object {
     Write-Host $_.mail
}

Wann brauchen Sie Microsoft Graph?

Es gibt sechs zwingende Gründe, Microsoft Graph zu verwenden:

  • stellt einen einzelnen Ressourcenendpunkt bereit;
  • unterstützt mehrere Entwicklungstypen;
  • erleichtert die Navigation von Microsoft-Graph-Objekten;
  • bietet Entwicklungsplattform- und Sprachflexibilität;
  • ermöglicht den Schutz durch den Microsoft-Identitätsstapel und -Dienste; und
  • verwendet offene Standards.

Microsoft Graph hilft Ihnen, mehrere Probleme bei anderen Verwaltungsmethoden zu vermeiden. Einige Einstellungen sind in den Verwaltungsportalen nicht vorhanden und stehen nur in Microsoft Graph zur Verfügung. Neue Funktionen können Sie normalerweise in Microsoft Graph finden, noch bevor sie in den Portalen erscheinen.

Es ist oft einfacher, die erforderlichen Informationen mit Microsoft Graph abzurufen als mit den Verwaltungsportalen. Um beispielsweise alle Benutzer im Mandanten und die ihnen zugewiesenen Lizenzen anzuzeigen, müssen Sie bestimmte Seiten im Admin Center oder Azure Active Directory aufrufen, wo Sie auf jeden Benutzer einzeln klicken, um diese Zuweisungen anzuzeigen. Microsoft Graph erfordert jedoch nur einen einfachen URI, um die Liste abzurufen.

Die Ausgabe erfolgt in JavaScript Object Notation (JSON), ein Industriestandard für Daten. Sie können die Ergebnisse dann nach Bedarf abfragen oder bearbeiten. Die Möglichkeit, eine Liste zu exportieren, ist nicht überall in den Portalen verfügbar, was ein weiterer Vorteil von Microsoft Graph ist.

Was ist das Microsoft Graph SDK?

Microsoft stellt ein SDK (Software Development Kit) für mehrere Programmiersprachen bereit, um das Schreiben von Code für die Arbeit mit Microsoft Graph zu unterstützen.

Die SDKs vereinfachen den Zugriff auf Microsoft Graph. Sie stellen zwei Komponenten bereit: eine Dienstbibliothek und eine Core-Bibliothek. Die Dienstbibliothek enthält Modelle und Anfragen-Builder. Mehrere fortgeschrittene, eingebettete Funktionen von Microsoft Graph API in der zentralen Codebibliothek sind das Retry-Handling, sichere Weiterleitungen, transparente Authentifizierung, Payload-Komprimierung, Paging durch Sammlungen und das Erstellen von Batch-Anfragen. Diese Funktionen können Skripte flexibler machen und potenzielle Probleme bei der Arbeit mit Microsoft Graph vermeiden.

Wenn beispielsweise während eines Microsoft-Graph-Aufrufs eine Drosselung auftritt, gibt eine retry-after-Eigenschaft die Wartezeit vor dem nächsten Anforderungsversuch an.

Abbildung 1: Die Retry-Handling-Funktion bietet Möglichkeiten, mit Drosselungen umzugehen.
Abbildung 1: Die Retry-Handling-Funktion bietet Möglichkeiten, mit Drosselungen umzugehen.

Der von Ihnen verwendete Code muss diesen Ansatz berücksichtigen. Wenn Sie beispielsweise Microsoft Graph nach einem Zeitplan aufrufen, müssen Sie für eine erfolgreiche Ausführung hinzufügen, wie das Skript die Drosselung handhaben soll.

Neben PowerShell unterstützen die Microsoft Graph SDKs derzeit Android, Angular, ASP.NET, iOS, JavaScript, Node.js, Java, PHP, Python und Ruby. Um mehr über das Microsoft Graph-Toolkit zu erfahren, können Sie die Architekturdokumentation unter dem folgenden Link konsultieren.

Möglichkeiten zur Verwendung von Microsoft Graph

Es gibt bestimmte Aufgaben, die sich ideal für Microsoft Graph eignen, da es so komplex ist, die Daten abzurufen oder dieselbe Aktion von den Admin-Portalen auszuführen. Dazu gehört das Abrufen von täglichen Besprechungsplänen in Exchange, das Überprüfen unvollendeter Aufgaben in Microsoft 365 und Office 365 und das Anzeigen, zu welchen Microsoft Teams-Kanälen ein Benutzer gehört.

In Microsoft Teams müssten Sie zum Beispiel durch jedes Team navigieren und jeden Kanal überprüfen. Die Aufgabe ist einfacher, wenn Sie PowerShell verwenden, um die Microsoft Graph-Endpunkte abzufragen:

$me = "[email protected]"
$mychannels = New-Object System.Collections.ArrayList
$body = @{}
 
$teams = Invoke-MgGraphRequest `
    -Uri "https://graph.microsoft.com/v1.0/me/joinedTeams" `
    -Method GET `
    -Body $body
 
$teams.value | ForEach-Object {
    $team = $_
    $channel = Invoke-MgGraphRequest `
        -Uri "https://graph.microsoft.com/v1.0/teams/$($team.ID)/channels" ` `
        -Method GET `
        -Body $body
 
    $channel.value | ForEach-Object {
        $ch = $_
        if($ch.id) {
            $members = Invoke-MgGraphRequest `
                -Uri
"https://graph.microsoft.com/v1.0/teams/$($team.ID)/channels/$($ch.id)/members" `
                -Method GET `
                -Body $body
            
            
            $members.value.email | ForEach-Object {
                if($_ -eq $me)
                {
                    $my =
[pscustomobject]@{'TeamID'=$team.ID;'ChannelID'=$ch.id;'Email'=$_;}
                    $mychannels.Add($my)
                }
            }
        }
    }
}

Abbildung 2: Die Ausgabe von Microsoft Graph zeigen, zu welchen Teams-Channels ein Nutzer gehört.
Abbildung 2: Die Ausgabe von Microsoft Graph zeigen, zu welchen Teams-Channels ein Nutzer gehört.

Auch beim Ausführen von Aktionen folgen Sie dem gleichen Prinzip; es ist viel schneller und einfacher, Microsoft Graph-Aufrufe zu verwenden. Wenn Sie Microsoft 365 verwalten ist es auf jeden Fall sinnvoll, sich mit Microsoft Graph vertraut zu machen, das Graph Explorer-Tool zu verwenden und mit der Programmiersprache Ihrer Wahl zu üben.

Lesen Sie die Versionshinweise von Microsoft Graph, um die neuen oder aktualisierten Funktionen zu sehen.

Erfahren Sie mehr über Desktop-Management