Het Secure Application Model-framework inschakelen

Microsoft introduceert een veilig, schaalbaar framework voor het verifiëren van CSP-partners (Cloud Solution Provider) en CPV-leveranciers (Configuratiescherm) via de MFA-architectuur (MultiFactor Authentication) van Microsoft Entra.

U kunt het nieuwe model gebruiken om de beveiliging voor API-integratieoproepen van Partner Center te verhogen. Dit helpt alle partijen (waaronder Microsoft, CSP-partners en CPV's) om hun infrastructuur en klantgegevens te beschermen tegen beveiligingsrisico's.

Met het CSP-programma kunnen klanten Microsoft-producten en -services kopen via de partners. Volgens de overeenkomst met Microsoft moeten partners de omgeving beheren voor de klanten aan wie ze verkopen en ondersteuning bieden. Klanten die via dit kanaal kopen, moeten een hoge mate van vertrouwen stellen in de partner van wie ze kopen, omdat het partnerbedrijf beheerderstoegang heeft tot de tenant van de klant.

Bereik

Dit artikel heeft betrekking op zowel CSP's als CPV's.

CPV's (Control Panel Vendors)

  • Een CPV is een onafhankelijke softwareleverancier die apps ontwikkelt voor gebruik door CSP-partners om te integreren met Partner Center-API's.
  • Een CPV is geen CSP-partner met directe toegang tot partnercentrum of API's.

CSP's

  • Indirecte CSP-providers en CSP-directe partners die app-id en gebruikersverificatie gebruiken en rechtstreeks integreren met Partner Center-API's.

Beveiligingsvereisten

Zie Beveiligingsvereisten voor partners voor meer informatie over beveiligingsvereisten.

Beveiligd toepassingsmodel

Marketplace-toepassingen moeten CSP-partnerbevoegdheden imiteren om Microsoft-API's aan te roepen. Beveiligingsaanvallen op deze gevoelige toepassingen kunnen leiden tot inbreuk op klantgegevens.

Zie voor een overzicht en details van het nieuwe verificatieframework het Framework Secure Application Model, waarin principes en best practices worden behandeld om marketplace-toepassingen duurzaam en robuust te maken tegen beveiligingscompromitts.

Voorbeelden

In de volgende overzichtsdocumenten en voorbeeldcode wordt beschreven hoe partners het framework Secure Application Model kunnen implementeren:

REST

Voer de volgende stappen uit om REST-aanroepen uit te voeren met het Framework Secure Application Model met voorbeeldcode:

  1. Een web-app maken

Een webtoepassing maken

  1. Meld u aan bij de Azure-portal.

  2. Maak een Microsoft Entra-app.

  3. Geef gedelegeerde toepassingsmachtigingen aan de volgende resources, afhankelijk van de vereisten van uw toepassing. Indien nodig kunt u meer gedelegeerde machtigingen voor toepassingsresources toevoegen.

    1. Microsoft Partner Center (sommige tenants tonen SampleBECApp)

    2. Azure Management-API's (als u azure-API's wilt aanroepen)

    3. Windows Azure Active Directory

  4. Zorg ervoor dat de startpagina-URL van uw app is ingesteld op een eindpunt waarop een live-web-app wordt uitgevoerd. Deze app moet de autorisatiecode van de aanroep Microsoft Entra-aanmelding accepteren. In de voorbeeldcode in de volgende sectie wordt de web-app bijvoorbeeld uitgevoerd op https://localhost:44395/.

  5. Let op de volgende informatie uit de instellingen van uw web-app in Microsoft Entra ID:

    • Toepassings-id
    • Toepassingsgeheim

Notitie

Het is raadzaam om een certificaat te gebruiken als uw toepassingsgeheim. U kunt echter ook een toepassingssleutel maken in Azure Portal. De voorbeeldcode in de volgende sectie maakt gebruik van een toepassingssleutel.

Autorisatiecode ophalen

U moet een autorisatiecode voor uw web-app ophalen om deze te accepteren via de aanmeldingsaanroep van Microsoft Entra:

  1. Meld u aan bij Microsoft Entra-id.

    Zorg ervoor dat u zich aanmeldt met het gebruikersaccount van waaruit u API-aanroepen voor Partnercentrum uitvoert (zoals een beheerdersagent of verkoopagentaccount).

  2. Vervang de toepassings-id door uw Microsoft Entra-app-id (GUID).

  3. Wanneer u hierom wordt gevraagd, meldt u zich aan met uw gebruikersaccount met MFA geconfigureerd.

  4. Wanneer u hierom wordt gevraagd, voert u meer MFA-gegevens (telefoonnummer of e-mailadres) in om uw aanmelding te verifiëren.

  5. Nadat u bent aangemeld, wordt de aanroep door de browser omgeleid naar het eindpunt van uw web-app met uw autorisatiecode. De volgende voorbeeldcode wordt bijvoorbeeld omgeleid naar https://localhost:44395/.

Tracering van autorisatiecode-aanroep

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>

Vernieuwingstoken ophalen

Vervolgens moet u uw autorisatiecode gebruiken om een vernieuwingstoken op te halen:

  1. Maak een POST-aanroep naar het Microsoft Entra-aanmeldingseindpunt https://login.microsoftonline.com/CSPTenantID/oauth2/token met de autorisatiecode. Zie de volgende voorbeeldaanroep voor een voorbeeld.

  2. Let op het vernieuwingstoken dat wordt geretourneerd.

  3. Sla het vernieuwingstoken op in Azure Key Vault. Zie de Key Vault API-documentatie voor meer informatie.

Belangrijk

Het vernieuwingstoken moet als een geheim worden opgeslagen in Key Vault.

Voorbeeld van vernieuwingsoproep

Aanvraag voor tijdelijke aanduiding:

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

Aanvraagtekst:

resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue

Tijdelijke aanduiding voor antwoord:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Hoofdtekst van antwoord:

{"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

Toegangstoken ophalen

U moet een toegangstoken verkrijgen voordat u aanroepen kunt doen naar de Partner center-API's. U moet een vernieuwingstoken gebruiken om een toegangstoken te verkrijgen, omdat toegangstokens over het algemeen een beperkte levensduur hebben (bijvoorbeeld minder dan een uur).

Aanvraag voor tijdelijke aanduiding:

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

Aanvraagtekst:

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

Tijdelijke aanduiding voor antwoord:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Hoofdtekst van antwoord:

{"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"}

API-aanroepen voor Partnercentrum maken

U moet uw toegangstoken gebruiken om de Partner Center-API's aan te roepen. Zie de volgende voorbeeldoproep.

Voorbeeld van Partnercentrum-API-aanroep

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

De PowerShell-module partnercentrum kan worden gebruikt voor het beheren van Partnercentrum-resources. Het is een opensource-project dat wordt onderhouden door de partnercommunity en niet officieel wordt ondersteund door Microsoft. U kunt hulp krijgen van de community of een probleem openen op GitHub als u een probleem ondervindt.

U kunt de PowerShell-module partnercentrum gebruiken om de vereiste infrastructuur te verminderen om een autorisatiecode voor een toegangstoken uit te wisselen. Deze methode is optioneel voor het maken van REST-aanroepen in Het Partnercentrum.

Zie de PowerShell-documentatie voor het Secure App-model voor meer informatie over dit proces.

  1. Installeer de PowerShell-modules van Microsoft Entra ID en Partnercentrum.

    Install-Module AzureAD
    
    Install-Module PartnerCenter
    
  2. Gebruik de opdracht New-PartnerAccessToken om het toestemmingsproces uit te voeren en het vereiste vernieuwingstoken vast te leggen.

    $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
    

    Notitie

    De parameter ServicePrincipal wordt gebruikt met de opdracht New-PartnerAccessToken omdat een Microsoft Entra-app met een type web/API wordt gebruikt. Voor dit type app moet een client-id en geheim worden opgenomen in de toegangstokenaanvraag. Wanneer de opdracht Get-Credential wordt aangeroepen, wordt u gevraagd een gebruikersnaam en wachtwoord in te voeren. Voer de toepassings-id in als de gebruikersnaam. Voer het toepassingsgeheim in als het wachtwoord. Wanneer de opdracht New-PartnerAccessToken wordt aangeroepen, wordt u gevraagd om referenties opnieuw in te voeren. Voer de referenties in voor het serviceaccount dat u gebruikt. Dit serviceaccount moet een partneraccount met de juiste machtigingen zijn.

  3. Kopieer de waarde van het vernieuwingstoken.

    $token.RefreshToken | clip
    

U moet de waarde van het vernieuwingstoken opslaan in een beveiligde opslagplaats, zoals Azure Key Vault. Zie het artikel over meervoudige verificatie voor meer informatie over het gebruik van de module voor beveiligde toepassingen met PowerShell.