Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Microsoft führt ein sicheres, skalierbares Framework für die Authentifizierung von CSP-Partnern (Cloud Solution Provider) und CPV (Control Panel Vendors) über die Microsoft Entra Multifactor Authentication (MFA)-Architektur ein.
Sie können das neue Modell verwenden, um die Sicherheit für Partner Center-API-Integrationsaufrufe zu erhöhen. Dadurch können alle Parteien (einschließlich Microsoft, CSP-Partner und CPVs) ihre Infrastruktur und Kundendaten vor Sicherheitsrisiken schützen.
Mit dem CSP-Programm können Kunden Microsoft-Produkte und -Dienste über die Partner kaufen. Gemäß der Vereinbarung mit Microsoft müssen Partner die Umgebung für die Kunden verwalten, an die sie verkaufen und Support bereitstellen. Kunden, die über diesen Kanal kaufen, müssen dem Partner, von dem sie kaufen, ein hohes Vertrauen gewähren, da das Partnerunternehmen über Administratorzugriff auf den Kundenmandanten verfügt.
Umfang
Dieser Artikel bezieht sich auf CSPs und CPVs.
CPVs
- Ein CPV ist ein unabhängiger Softwareanbieter, der Apps für die Verwendung von CSP-Partnern entwickelt, um sie in Partner Center-APIs zu integrieren.
- Ein CPV ist kein CSP-Partner mit direktem Zugriff auf Partner Center oder APIs.
CSPs
- Indirekte CSP-Anbieter und CSP-direkte Partner, die App-ID + Benutzerauthentifizierung verwenden und direkt in Partner Center-APIs integrieren.
Sicherheitsanforderungen
Ausführliche Informationen zu den Sicherheitsanforderungen finden Sie unter "Partner Security Requirements".
Sicheres Anwendungsmodell
Microsoft Marketplace-Anwendungen müssen die Identität von CSP-Partnerberechtigungen annehmen, um Microsoft-APIs aufzurufen. Sicherheitsangriffe auf diese vertraulichen Anwendungen können zu einer Kompromittierung von Kundendaten führen.
Eine Übersicht und Details zum neuen Authentifizierungsframework finden Sie im Secure Application Model Framework, das Prinzipien und bewährte Methoden umfasst, um Marketplace-Anwendungen nachhaltig und robust aus Sicherheitskompromittierungen zu machen.
Beispiele
Die folgenden Übersichtsdokumente und Beispielcode beschreiben, wie Partner das Secure Application Model Framework implementieren können:
-
Das Partner Center Java SDK kann zum Verwalten von Partner Center-Ressourcen verwendet werden. Es handelt sich um ein Open-Source-Projekt, das von der Partnercommunity verwaltet wird und von Microsoft nicht offiziell unterstützt wird. Sie können Hilfe von der Community erhalten oder ein Problem auf GitHub öffnen , wenn ein Problem auftritt.
REST
Führen Sie die folgenden Schritte aus, um REST-Aufrufe mit dem Secure Application Model Framework mit Beispielcode auszuführen:
- Aktivieren des Frameworks für sichere Anwendungsmodell
- Aktivieren des Frameworks für sichere Anwendungsmodell
Erstellen einer Web-App
Melden Sie sich beim Azure-Portal an.
Erstellen Sie eine Microsoft Entra-App.
Erteilen Sie delegierten Anwendungsberechtigungen für die folgenden Ressourcen, je nach den Anforderungen Ihrer Anwendung. Bei Bedarf können Sie weitere delegierte Berechtigungen für Anwendungsressourcen hinzufügen.
Microsoft Partner Center (einige Mandanten zeigen SampleBECApp)
Azure-Verwaltungs-APIs (wenn Sie planen, Azure-APIs aufzurufen)
Windows Azure Active Directory
Stellen Sie sicher, dass die Start-URL Ihrer App auf einen Endpunkt festgelegt ist, auf dem eine Live-Web-App ausgeführt wird. Diese App muss den Autorisierungscode aus dem Microsoft Entra-Anmeldeaufruf akzeptieren. Im Beispielcode im folgenden Abschnitt wird die Web-App z. B. ausgeführt
https://localhost:44395/.Beachten Sie die folgenden Informationen aus den Einstellungen Ihrer Web-App in der Microsoft Entra-ID:
- Anwendungs-ID
- Anwendungsgeheimnis
Hinweis
Es wird empfohlen, ein Zertifikat als geheimen Anwendungsschlüssel zu verwenden. Sie können jedoch auch einen Anwendungsschlüssel im Azure-Portal erstellen. Der Beispielcode im folgenden Abschnitt verwendet einen Anwendungsschlüssel.
Autorisierungscode abrufen
Sie müssen über den Microsoft Entra-Anmeldeaufruf einen Autorisierungscode für Ihre Web-App erhalten:
Melden Sie sich bei der Microsoft Entra-ID an.
Melden Sie sich unbedingt mit dem Benutzerkonto an, aus dem Sie Partner Center-API-Aufrufe tätigen (z. B. einen Administrator-Agent oder ein Vertriebs-Agent-Konto).
Ersetzen Sie die Anwendungs-ID durch Ihre Microsoft Entra-App-ID (GUID).
Melden Sie sich bei Aufforderung mit Ihrem Benutzerkonto mit konfigurierter MFA an.
Wenn Sie dazu aufgefordert werden, geben Sie weitere MFA-Informationen (Telefonnummer oder E-Mail-Adresse) ein, um Ihre Anmeldung zu überprüfen.
Nachdem Sie angemeldet sind, leitet der Browser den Aufruf an Ihren Web App-Endpunkt mit Ihrem Autorisierungscode um. Der folgende Beispielcode leitet z. B. zu
https://localhost:44395/.
Ablaufverfolgung von Autorisierungscodeaufrufen
POST https://localhost:44395/ HTTP/1.1
Origin: https://login.microsoftonline.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referrer: https://login.microsoftonline.com/kmsi
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: OpenIdConnect.nonce.hOMjjrivcxzuI4YqAw4uYC%2F%2BILFk4%2FCx3kHTHP3lBvA%3D=dHVyRXdlbk9WVUZFdlFONVdiY01nNEpUc0JRR0RiYWFLTHhQYlRGNl9VeXJqNjdLTGV3cFpIWFg1YmpnWVdQUURtN0dvMkdHS2kzTm02NGdQS09veVNEbTZJMDk1TVVNYkczYmstQmlKUzFQaTBFMEdhNVJGVHlES2d3WGlCSlVlN1c2UE9sd2kzckNrVGN2RFNULWdHY2JET3RDQUxSaXRfLXZQdG00RnlUM0E1TUo1YWNKOWxvQXRwSkhRYklQbmZUV3d3eHVfNEpMUUthMFlQUFgzS01RS2NvMXYtbnV4UVJOYkl4TTN0cw%3D%3D
code=AuthorizationCodeValue&id_token=IdTokenValue&<rest of properties for state>
Abrufen des Aktualisierungstokens
Anschließend müssen Sie Ihren Autorisierungscode verwenden, um ein Aktualisierungstoken abzurufen:
Tätigen Sie einen POST-Aufruf an den Microsoft Entra-Anmeldeendpunkt
https://login.microsoftonline.com/CSPTenantID/oauth2/tokenmit dem Autorisierungscode. Ein Beispiel finden Sie im folgenden Beispielaufruf.Beachten Sie das aktualisierungstoken, das zurückgegeben wird.
Speichern Sie das Aktualisierungstoken in Azure Key Vault. Weitere Informationen finden Sie in der Dokumentation zur Key Vault-API.
Von Bedeutung
Das Aktualisierungstoken muss als Geheimnis in Key Vault gespeichert werden.
Beispiel für einen Aktualisierungsaufruf
Platzhalteranforderung:
POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 966
Expect: 100-continue
Anforderungstext:
resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue
Platzhalterantwort:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8
Antworttext:
{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}
Zugriffstoken abrufen
Sie müssen ein Zugriffstoken abrufen, bevor Sie Aufrufe an die Partner Center-APIs ausführen können. Sie müssen ein Aktualisierungstoken verwenden, um ein Zugriffstoken abzurufen, da Zugriffstoken im Allgemeinen eine begrenzte Lebensdauer haben (z. B. weniger als eine Stunde).
Platzhalteranforderung:
POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 1212
Expect: 100-continue
Anforderungstext:
resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id &client_secret= Application-Secret&grant_type=refresh_token&refresh_token=RefreshTokenVlaue&scope=openid
Platzhalterantwort:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8
Antworttext:
{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}
Durchführen von Partner Center-API-Aufrufen
Sie müssen Ihr Zugriffstoken verwenden, um die Partner Center-APIs aufzurufen. Sehen Sie sich den folgenden Beispielaufruf an.
Beispiel für partner Center-API-Aufruf
GET https://api.partnercenter.microsoft.com/v1/customers/CustomerTenantId/users HTTP/1.1
Authorization: Bearer AccessTokenValue
Accept: application/json
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Die Überprüfung von API-Aufrufen ist in MFA integriert.
Um sicherzustellen, dass Sie gültige API-Aufrufe mit MFA durchführen, können Sie einen ValidateMfa in Ihrem Anforderungsheader bereitstellen. Suchen Sie dabei nach "isMfaCompliant" in der Antwort:
Beispiel für eine Anforderung
GET https://api.partnercenter.microsoft.com/v1/customers/CustomerTenantId/users HTTP/1.1
...
ValidateMfa: true <-- Required header for MFA validation
...
Beispiel-Antwort-Header
...
isMfaCompliant: true <-- Key header indicating MFA compliance
...
PowerShell
Das Partner Center PowerShell-Modul kann zum Verwalten von Partner Center-Ressourcen verwendet werden. Es handelt sich um ein Open-Source-Projekt, das von der Partnercommunity verwaltet wird und von Microsoft nicht offiziell unterstützt wird. Sie können Hilfe von der Community erhalten oder ein Problem auf GitHub öffnen , wenn ein Problem auftritt.
Sie können das Partner Center PowerShell-Modul verwenden, um die erforderliche Infrastruktur zu reduzieren, um einen Autorisierungscode für ein Zugriffstoken auszutauschen. Diese Methode ist optional für Partner Center-REST-Aufrufe.
Weitere Informationen zu diesem Prozess finden Sie in der PowerShell-Dokumentation zum Secure App-Modell .
Installieren Sie die PowerShell-Module "Microsoft Entra ID" und "Partner Center".
Install-Module AzureADInstall-Module PartnerCenterVerwenden Sie den Befehl "New-PartnerAccessToken ", um den Zustimmungsprozess auszuführen und das erforderliche Aktualisierungstoken zu erfassen.
$credential = Get-Credential $token = New-PartnerAccessToken -ApplicationId 'xxxx-xxxx-xxxx-xxxx' -Scopes 'https://api.partnercenter.microsoft.com/user_impersonation' -ServicePrincipal -Credential $credential -Tenant 'yyyy-yyyy-yyyy-yyyy' -UseAuthorizationCodeHinweis
Der Parameter ServicePrincipal wird mit dem Befehl "New-PartnerAccessToken " verwendet, da eine Microsoft Entra-App mit einem Typ von Web/API verwendet wird. Für diesen App-Typ muss eine Client-ID und ein geheimer Schlüssel in die Zugriffstokenanforderung eingeschlossen werden. Wenn der Befehl "Get-Credential " aufgerufen wird, werden Sie aufgefordert, einen Benutzernamen und ein Kennwort einzugeben. Geben Sie den Anwendungsbezeichner als Benutzernamen ein. Geben Sie den geheimen Anwendungsschlüssel als Kennwort ein. Wenn der Befehl "New-PartnerAccessToken" aufgerufen wird, werden Sie aufgefordert, erneut Anmeldeinformationen einzugeben. Geben Sie die Anmeldeinformationen für das von Ihnen verwendete Dienstkonto ein. Dieses Dienstkonto sollte ein Partnerkonto mit entsprechenden Berechtigungen sein.
Kopieren Sie den Aktualisierungstokenwert.
$token.RefreshToken | clip
Sie sollten den Aktualisierungstokenwert in einem sicheren Repository speichern, z. B. Azure Key Vault. Weitere Informationen zur Verwendung des sicheren Anwendungsmoduls mit PowerShell finden Sie im Artikel zur mehrstufigen Authentifizierung .