Aktivieren des Secure Application Model-Frameworks

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 erwerben. Gemäß der Vereinbarung mit Microsoft müssen Partner die Umgebung für die Kunden verwalten, an die sie verkaufen, sowie Support leisten. Kunden, die über diesen Kanal kaufen, müssen dem Partner, von dem sie kaufen, ein hohes Maß an Vertrauen entgegenbringen, da das Partnerunternehmen über Administratorzugriff mit umfassenden Berechtigungen für den Kundenmandanten verfügt.

Umfang

Dieser Artikel gilt für CSPs und für CPVs.

CPVs

  • Ein CPV ist ein unabhängiger Softwarehersteller, der Apps entwickelt, die von CSP-Partnern zur Integration in Partner Center-APIs verwendet werden.
  • Ein CPV ist kein CSP-Partner mit direktem Zugriff auf Partner Center oder APIs.

CSPs

  • Indirekte CSP-Anbieter und direkte CSP-Partner, die App-ID- und Benutzerauthentifizierung verwenden und direkt in Partner Center-APIs integriert sind.

Sicherheitsanforderungen

Weitere Informationen zu den Sicherheitsanforderungen finden Sie unter Partnersicherheitsanforderungen.

Sicheres Anwendungsmodell

Marketplace-Anwendungen müssen CSP-Partnerberechtigungen annehmen, um Microsoft-APIs aufrufen zu können. Sicherheitsangriffe auf diese sensiblen Anwendungen können dazu führen, dass Kundendaten kompromittiert werden.

Eine Übersicht über das neue Authentifizierungsframework sowie Details dazu finden Sie unter Framework für sicheres Anwendungsmodell. In diesem Artikel werden Prinzipien und bewährte Methoden behandelt, um Marketplace-Anwendungen vor Sicherheitsrisiken nachhaltig und robust gegenüber Sicherheitsverletzungen zu machen.

Beispiele

In den folgenden Übersichtsdokumenten sowie im Beispielcode wird beschrieben, wie Partner das Framework „Sicheres Anwendungsmodell“ implementieren können:

REST

Um REST-Aufrufe mit dem Framework „Sicheres Anwendungsmodell“ mit Beispielcode durchführen zu können, gehen Sie folgendermaßen vor:

  1. Erstellen einer Web-App

Erstellen einer Web-App

  1. Melden Sie sich beim Azure-Portal an.

  2. Erstellen einer Microsoft Entra-App.

  3. Weisen Sie den folgenden Ressourcen delegierte Anwendungsberechtigungen abhängig von den Anforderungen Ihrer Anwendung zu. Falls erforderlich, können Sie weitere delegierte Berechtigungen für Anwendungsressourcen hinzufügen.

    1. Microsoft Partner Center (einige Mandanten zeigen SampleBECApp)

    2. Azure-Verwaltungs-APIs (wenn Sie planen, Azure-APIs aufzurufen)

    3. Windows Azure Active Directory

  4. 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. Beispielsweise wird die Web-App im Beispielcode im folgenden Abschnitt unter https://localhost:44395/ ausgeführt.

  5. 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 Anwendungsgeheimnis zu verwenden. Sie können jedoch auch einen Anwendungsschlüssel im Azure-Portal erstellen. Der Beispielcode im folgenden Abschnitt verwendet einen Anwendungsschlüssel.

Abrufen des Autorisierungscodes

Sie müssen über den Microsoft Entra-Anmeldeaufruf einen Autorisierungscode für Ihre Web-App erhalten:

  1. 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).

  2. Ersetzen Sie die Anwendungs-ID durch Ihre Microsoft Entra-App-ID (GUID).

  3. Melden Sie sich mit Ihrem Benutzerkonto an, für das MFA konfiguriert ist, wenn Sie dazu aufgefordert werden.

  4. Wenn Sie dazu aufgefordert werden, geben Sie weitere MFA-Informationen (Telefonnummer oder E-Mail-Adresse) ein, um Ihre Anmeldung zu überprüfen.

  5. Nachdem Sie angemeldet sind, leitet der Browser den Aufruf an Ihren Web App-Endpunkt mit Ihrem Autorisierungscode um. Der folgende Beispielcode leitet z. B. an https://localhost:44395/ weiter.

Aufrufablaufverfolgung für Autorisierungscode

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

Sie müssen Ihren Autorisierungscode dann verwenden, um ein Aktualisierungstoken abzurufen:

  1. Tätigen Sie einen POST-Aufruf an den Microsoft Entra-Anmeldeendpunkt https://login.microsoftonline.com/CSPTenantID/oauth2/token mit dem Autorisierungscode. Ein Beispiel finden Sie im folgenden Beispielaufruf.

  2. Beachten Sie das Aktualisierungstoken, das zurückgegeben wird.

  3. Speichern Sie das Aktualisierungstoken in Azure Key Vault. Weitere Informationen finden Sie in der Key Vault-API-Dokumentation .

Wichtig

Das Aktualisierungstoken muss als Geheimnis in Key Vault gespeichert werden.

Beispielaktualisierungsaufruf

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":"3599","ext_expires_in":"3599","expires_on":"1547579127","not_before":"1547575227","resource":"https://api.partnercenter.microsoft.com","access_token":"Access

Abrufen des Zugriffstokens

Sie müssen ein Zugriffstoken abrufen, bevor Sie Aufrufe der Partner Center-APIs durchfü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"}

Ausführen von Partner Center-API-Aufrufen

Sie müssen das Zugriffstoken zum Aufrufen der Partner Center-APIs verwenden. Der folgende Beispielaufruf zeigt dies.

Partner Center-API-Beispielaufruf

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

PowerShell

Das Partner Center PowerShell-Modul kann zum Verwalten von Partner Center-Ressourcen verwendet werden. Es handelt sich um ein Open-Source-Projekt, Standard von der Partnercommunity unterstützt und nicht offiziell von Microsoft unterstützt wird. Sie können Hilfe von der Community erhalten oder ein Issue auf GitHub öffnen, wenn ein Problem auftritt.

Sie können das Partner Center PowerShell-Modul verwenden, um die erforderliche Infrastruktur zum Austauschen eines Autorisierungscodes gegen ein Zugriffstoken zu reduzieren. Diese Methode ist optional, um Partner Center-REST-Aufrufe auszugeben.

Weitere Informationen zu diesem Vorgang finden Sie in der PowerShell-Dokumentation zum Sicheren App-Modell.

  1. Installieren Sie die PowerShell-Module "Microsoft Entra ID" und "Partner Center".

    Install-Module AzureAD
    
    Install-Module PartnerCenter
    
  2. Verwenden 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' -UseAuthorizationCode
    

    Hinweis

    Der Parameter ServicePrincipal wird mit dem Befehl "New-PartnerAccessToken " verwendet, da eine Microsoft Entra-App mit einem Typ von Web/API verwendet wird. Diese Art von App erfordert, dass ein Clientbezeichner und ein Geheimnis in der Zugriffstokenanforderung enthalten sind. 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 das Anwendungsgeheimnis als Kennwort ein. Wenn der Befehl New-PartnerAccessToken aufgerufen wird, werden Sie aufgefordert, die Anmeldeinformationen erneut einzugeben. Geben Sie die Anmeldeinformationen für das Dienstkonto ein, das Sie verwenden. Bei diesem Dienstkonto muss es sich um ein Partnerkonto mit den entsprechenden Berechtigungen handeln.

  3. Kopieren Sie den Wert des Aktualisierungstokens.

    $token.RefreshToken | clip
    

Sie sollten den Wert des Aktualisierungstokens in einem sicheren Repository speichern, z. B. in Azure Key Vault. Weitere Informationen zur Verwendung des sicheren Anwendungsmoduls mit PowerShell finden Sie im Artikel zur mehrstufigen Authentifizierung .