Aufrufen von Microsoft Graph aus einer Anwendung eines Cloud-Lösungsanbieters
Anmerkung: Dieses Thema gilt nur für CSP-Anwendungsentwickler (Microsoft Cloud Solution Provider). Das CSP-Programm (Microsoft Cloud Solution Provider) ermöglicht es Partnern von Microsoft, Microsoft Online-Dienste an Kunden weiterzuverkaufen und zu verwalten.
In diesem Artikel wird beschrieben, wie Sie den Anwendungszugriff auf vom Partner verwaltete Kundendaten über Microsoft Graph mithilfe des Autorisierungscodegenehmigungsflows oder des Dienst-zu-Dienst-Clientanmeldeinformationsflows aktivieren.
Wichtig
Das Aufrufen von Microsoft Graph aus einer CSP-Anwendung wird nur für Verzeichnisressourcen (z. B. Benutzer, Gruppe, Gerät, organization) und Intune-Ressourcen unterstützt.
Was ist eine partnerverwaltete Anwendung?
Das CSP-Programm ermöglicht es Partnern von Microsoft, Microsoft Online Services (z. B. Microsoft 365, Microsoft Azure und CRM Online) an Kunden weiterzuverkaufen und zu verwalten. Die Verwaltung von Kundendiensten erfolgt über delegierte Admin-Berechtigungen, die es designierten Partnerbenutzern (als Agents bezeichnet) ermöglichen, auf die Umgebungen ihrer Kunden zuzugreifen und diese zu konfigurieren.
Darüber hinaus können Sie als Partnerentwickler eine vom Partner verwaltete App erstellen, um die Microsoft-Dienste Ihrer Kunden zu verwalten. Partnerverwaltete Apps werden häufig als vorkonsente Apps bezeichnet, da alle Ihre Kunden automatisch für Ihre vom Partner verwalteten Apps vorkonsentiert werden. Dies bedeutet, dass ein Benutzer von einem Ihrer Kundenmandanten eine Ihrer vom Partner verwalteten Apps verwenden kann, ohne zur Zustimmung aufgefordert zu werden. Partnerverwaltete Apps erben auch delegierte Admin Berechtigungen, sodass Ihre Partner-Agents auch privilegierten Zugriff auf Ihre Kunden über Ihre vom Partner verwaltete Anwendung erhalten können.
Einrichten einer partnerverwalteten Anwendung
Eine Anwendung wird als partnerverwaltet betrachtet, wenn ihr erhöhte Rechte zum Zugreifen auf die Daten Ihrer Kunden gewährt werden.
Hinweis: Partnerverwaltete Apps können nur auf Partnermandanten konfiguriert werden, und zum Verwalten von Ressourcen des Kundenmandanten müssen partnerverwaltete Apps als mehrinstanzenfähige Anwendungen konfiguriert werden.
Registrieren und Konfigurieren einer mehrinstanzenfähigen App
Die ersten Schritte, die hier erforderlich sind, folgen den meisten der schritte, die zum Registrieren und Konfigurieren einer mehrinstanzenfähigen Anwendung verwendet werden:
- Registrieren Sie Ihre Anwendung mithilfe der Microsoft Entra Admin Center in Ihrem Partnermandanten. Um als vom Partner verwaltete App zu fungieren, muss eine Anwendung als mehrinstanzenfähige App konfiguriert werden. Wenn Ihre App in mehreren geografischen Regionen bereitgestellt und verkauft wird, müssen Sie Ihre App darüber hinaus in jeder dieser Regionen registrieren, wie hier beschrieben.
- Konfigurieren Sie Ihre mehrinstanzenfähige App erneut über die Microsoft Entra Admin Center mit den erforderlichen Berechtigungen, die sie benötigt, um einen Ansatz mit den geringsten Rechten zu verwenden.
Vorkonsensieren Ihrer App für alle Ihre Kunden
Erteilen Sie Ihrer vom Partner verwalteten App schließlich die konfigurierten Berechtigungen für alle Ihre Kunden. Hierzu können Sie das servicePrincipal , das die App darstellt, der Gruppe Adminagents in Ihrem Partnermandanten mithilfe von Azure AD PowerShell V2 oder Microsoft Graph PowerShell hinzufügen. Führen Sie die folgenden Schritte aus, um die Gruppe Adminagents und servicePrincipal zu suchen und der Gruppe hinzuzufügen.
Hinweis
Azure AD- und MSOnline PowerShell-Module sind ab dem 30. März 2024 veraltet. Weitere Informationen finden Sie im Update zu Einstellungen. Nach diesem Datum beschränkt sich der Support für diese Module auf Unterstützung bei der Migration zum Microsoft Graph PowerShell SDK und auf Sicherheitskorrekturen. Die veralteten Module werden noch bis zum 30. März 2025 zur Verfügung stehen.
Es wird empfohlen, zu Microsoft Graph PowerShell zu migrieren, um mit Microsoft Entra ID (früher Azure AD) zu interagieren. Allgemeine Fragen zur Migration finden Sie in den Häufig gestellten Fragen zur Migration. Hinweis: Bei den Versionen 1.0.x von MSOnline kann es nach dem 30. Juni 2024 zu Unterbrechungen kommen.
Öffnen Sie eine PowerShell-Sitzung und stellen Sie eine Verbindung mit Ihrem Partnermandanten her, indem Sie Ihre Administrator-Anmeldeinformationen in das Anmeldefenster eingeben.
Connect-AzureAd
Suchen Sie die Gruppe, die die Adminagents darstellt.
$group = Get-AzureADGroup -Filter "displayName eq 'Adminagents'"
Suchen Sie den Dienstprinzipal, der die gleiche appId hat wie Ihre App.
$sp = Get-AzureADServicePrincipal -Filter "appId eq '{yourAppsAppId}'"
Fügen Sie zum Schluss den Dienstprinzipal zur Gruppe Adminagents hinzu.
Add-AzureADGroupMember -ObjectId $group.ObjectId -RefObjectId $sp.ObjectId
Tokenerwerbsflüsse
Tokenabrufflows für vom Partner verwaltete Apps – Autorisierungscode-Genehmigungsflow und Dienst-zu-Dienst-Clientanmeldeinformationenfluss – sind identisch mit regulären mehrinstanzenfähigen Apps.
Neben dem vorab konfigurierten Zugriff auf alle Kundenmandanten verfügen partnerseitig verwaltete Apps über eine weitere Funktion. Es ermöglicht Ihren Agents, Ihre App für den Zugriff auf die Mandantendaten Ihrer Kunden zu verwenden (mit delegierten Administratorrechten). Konzeptionell funktioniert es wie folgt:
- Der Agent meldet sich mit seinen Benutzeranmeldeinformationen, die von Ihrem Partnermandanten ausgestellt wurden, bei Ihrer App an.
- Die App fordert ein Zugriffstoken für den gewünschten partnerverwalteten Kundenmandanten an.
- Die App ruft unter Verwendung des Zugriffstokens Microsoft Graph auf.
Dies ist ein standardmäßiger Autorisierungscode-Genehmigungsflow, mit der Ausnahme, dass sich Ihre Agents mit ihren Partnerkonten anmelden müssen. Um zu sehen, wie dies aussehen würde, stellen Sie sich vor, Ihr Partnermandant ist partner.com (der Basismandant für Ihre Agents) und einer Ihrer Kunden ist customer.com:
Abrufen eines Autorisierungscodes: Ihre App sendet eine Anforderung an den
/authorize
Endpunkt und muss einen Kundenmandanten (in unserem Beispielcustomer.com
) für den Zielmandanten verwenden. Ihre Agents melden sich weiterhin mit ihremusername@partner.com
Konto an.GET https://login.microsoftonline.com/customer.com/oauth2/authorize
Zugriffstoken mithilfe des Autorisierungscodes erwerben: Ihre App muss einen Kundenmandanten als Zielmandanten verwenden, in unserem Beispiel
customer.com
, wenn sie die Anforderung an den Endpunkttoken
sendet:POST https://login.microsoftonline.com/customer.com/oauth2/token
Nachdem Sie jetzt über ein Zugriffstoken verfügen, rufen Sie Microsoft Graph auf, und fügen Sie das Zugriffstoken in den HTTP-Autorisierungsheader ein:
GET https://graph.microsoft.com/beta/users Authorization: Bearer <token>
Registrieren Ihrer App in den von Ihnen unterstützten Regionen
Die CSP-Kundenbindung ist derzeit auf eine einzelne Region beschränkt. Partnerseitig verwaltete Anwendungen haben die gleiche Einschränkung. Dies bedeutet, dass Sie über einen separaten Mandanten für jede Region verfügen müssen, in der Sie verkaufen. Wenn Ihre partnerseitig verwaltete App beispielsweise in einem Mandanten in den USA registriert ist, Ihr Kunde sich jedoch in der EU befindet, funktioniert die vom Partner verwaltete App nicht. Jeder Ihrer regionalen Partnermandanten muss einen eigenen Satz von vom Partner verwalteten Apps verwalten, um Kunden in derselben Region zu verwalten. Dies erfordert möglicherweise zusätzliche Logik in Ihrer App (vor der Anmeldung), um den Anmeldebenutzernamen Ihrer Kunden zu erhalten, um zu entscheiden, welche regionsspezifische vom Partner verwaltete App-Identität für den Benutzer verwendet werden soll.
Aufrufen von Microsoft Graph sofort nach dem Erstellen des Kunden
Wenn Sie einen neuen Kunden mithilfe der Partner Center-API erstellen, wird ein neuer Kundenmandant erstellt. Darüber hinaus wird auch eine Partnerbeziehung erstellt, die Sie zum eingetragenen Partner für diesen neuen Kundenmandanten macht. Die Weitergabe dieser Partnerbeziehung an den neuen Kundenmandanten kann bis zu 3 Minuten dauern. Wenn Ihre App Microsoft Graph direkt nach der Erstellung aufruft, erhält Ihre App wahrscheinlich den Fehler Zugriff verweigert. Eine ähnliche Verzögerung kann auftreten, wenn ein vorhandener Kunde Ihre Einladung annimmt. Dies liegt daran, dass preconsens davon abhängt, dass die Partnerbeziehung im Kundenmandanten vorhanden ist.
Um dieses Problem zu vermeiden, empfiehlt es sich, dass Ihre Partner-App nach der Kundenerstellung drei Minuten warten sollte, bevor sie Microsoft Entra ID aufruft, um ein Token zu erhalten (um Microsoft Graph aufzurufen). Hiermit sollten die meisten Fälle abgedeckt sein. Wenn sie jedoch nach drei Minuten immer noch einen Autorisierungsfehler erhalten, warten Sie weitere 60 Sekunden, und versuchen Sie es erneut.
Anmerkung: Bei der Wiederholung müssen Sie ein neues Zugriffstoken von Microsoft Entra ID abrufen, bevor Sie Microsoft Graph aufrufen. Das Aufrufen von Microsoft Graph mit dem bereits vorhandenen Zugriffstoken funktioniert nicht, da das Zugriffstoken eine Stunde lang in Ordnung ist und nicht die vorab zugestimmten Berechtigungsansprüche enthält.