Abilitazione del framework del modello di protezione delle applicazioni

Microsoft sta introducendo un framework sicuro e scalabile per l'autenticazione di partner cloud solution provider (CSP) e fornitori di pannelli di controllo (CPV) tramite l'architettura di Microsoft Entra multifactor authentication (MFA).

Puoi usare il nuovo modello per elevare la sicurezza per le chiamate di integrazione dell'API del Centro per i partner. Ciò consente a tutte le parti (inclusi Microsoft, partner CSP e CPV) di proteggere l'infrastruttura e i dati dei clienti dai rischi per la sicurezza.

Il programma CSP consente ai clienti di acquistare prodotti e servizi Microsoft tramite i partner. In base al contratto con Microsoft, i partner devono gestire l'ambiente per i clienti che vendono e forniscono supporto. I clienti che acquistano tramite questo canale devono mettere un elevato livello di fiducia nel partner da cui acquistano perché l'azienda partner ha accesso amministratore con privilegi elevati al tenant del cliente.

Ambito

Questo articolo si riferisce sia ai CSP che alle CPU.

CPV

  • Un CPV è un fornitore di software indipendente che sviluppa app che dovranno essere usate dai partner CSP per l'integrazione con le API del Centro per i partner.
  • Un CPV non è un partner CSP con accesso diretto al Centro per i partner o alle API.

Csp

  • I fornitori indiretti CSP e i partner diretti CSP che usano l'autenticazione ID app + utente e si integrano direttamente con le API del Centro per i partner.

Requisiti di sicurezza

Per informazioni dettagliate sui requisiti di sicurezza, vedi Requisiti di sicurezza per i partner.

Modello di applicazione sicura

Le applicazioni del Marketplace devono rappresentare i privilegi dei partner CSP per chiamare le API Microsoft. Gli attacchi alla sicurezza di queste applicazioni sensibili possono compromettere i dati dei clienti.

Per una panoramica e i dettagli del nuovo framework di autenticazione, vedere il framework del modello di applicazione sicura, che illustra i principi e le procedure consigliate per rendere le applicazioni del marketplace sostenibili e affidabili dalle compromissioni della sicurezza.

Esempi

I documenti e il codice di esempio seguenti illustrano in che modo i partner possono implementare il framework modello di applicazione sicura:

REST

Per eseguire chiamate REST al framework modello di applicazione sicura con il codice di esempio, segui questa procedura:

  1. Creare un'app Web

Creare un'app Web

  1. Accedere al portale di Azure.

  2. Creare un'app Microsoft Entra.

  3. Concedi le autorizzazioni di applicazione delegate alle risorse seguenti, a seconda dei requisiti della tua applicazione. Se necessario, puoi aggiungere altre autorizzazioni delegate per le risorse dell'applicazione.

    1. Centro per i partner Microsoft (alcuni tenant mostrano SampleBECApp)

    2. API di gestione di Azure (se si prevede di chiamare le API di Azure)

    3. Windows Azure Active Directory

  4. Assicurati che l'URL home dell'app sia impostato su un endpoint in cui è in esecuzione un'app Web live. Questa app deve accettare il codice di autorizzazione dalla chiamata di accesso di Microsoft Entra. Ad esempio, nel codice di esempio riportato nella sezione seguente, l'app Web è in esecuzione in https://localhost:44395/.

  5. Prendere nota delle informazioni seguenti dalle impostazioni dell'app Web in Microsoft Entra ID:

    • ID applicazione
    • Segreto applicazione

Nota

È consigliato usare un certificato come segreto dell'applicazione. Tuttavia, puoi anche creare una chiave dell'applicazione nel portale di Azure. Il codice di esempio nella sezione seguente usa una chiave dell'applicazione.

Ottenere un codice di autorizzazione

È necessario ottenere un codice di autorizzazione per consentire all'app Web di accettare dalla chiamata di accesso di Microsoft Entra:

  1. Accedere a Microsoft Entra ID.

    Assicurarsi di accedere con l'account utente da cui si effettuano chiamate API del Centro per i partner, ad esempio un agente amministratore o un account agente di vendita.

  2. Sostituire Application-ID con l'ID app Microsoft Entra (GUID).

  3. Quando richiesto, accedi con l'account utente con l'autenticazione a più fattori configurata.

  4. Quando richiesto, immettere altre informazioni sull'autenticazione a più fattori (numero di telefono o indirizzo di posta elettronica) per verificare l'account di accesso.

  5. Dopo aver eseguito l'accesso, il browser reindirizzerà la chiamata all'endpoint dell'app Web con il codice di autorizzazione. Il codice di esempio seguente, ad esempio, reindirizza a https://localhost:44395/.

Traccia della chiamata del codice di autorizzazione

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>

Ottenere un token di aggiornamento

Devi quindi usare il codice di autorizzazione per ottenere un token di aggiornamento:

  1. Effettuare una chiamata POST all'endpoint https://login.microsoftonline.com/CSPTenantID/oauth2/token di accesso di Microsoft Entra con il codice di autorizzazione. Per un esempio, vedi la chiamata di esempio seguente.

  2. Prendi nota del token di aggiornamento restituito.

  3. Archivia il token di aggiornamento in Azure Key Vault. Per altre informazioni, vedi la documentazione relativa all'API di Key Vault.

Importante

Il token di aggiornamento deve essere archiviato come segreto in Key Vault.

Chiamata di aggiornamento di esempio

Richiesta segnaposto:

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

Testo della richiesta:

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

Risposta segnaposto:

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

Corpo della risposta:

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

Ottenere il token di accesso

Per poter effettuare chiamate alle API del Centro per i partner, devi ottenere un token di accesso. È necessario usare un token di aggiornamento per ottenere un token di accesso perché i token di accesso hanno in genere una durata limitata , ad esempio meno di un'ora.

Richiesta segnaposto:

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

Testo della richiesta:

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

Risposta segnaposto:

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

Corpo della risposta:

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

Effettuare chiamate all'API del Centro per i partner

Per chiamare le API del Centro per i partner, devi usare il token di accesso. Vedi la chiamata di esempio seguente.

Chiamate di esempio all'API del Centro per i partner

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

Il modulo PowerShell del Centro per i partner può essere usato per gestire le risorse del Centro per i partner. Si tratta di un progetto open source gestito dalla community partner e non ufficialmente supportato da Microsoft. In caso di problemi, puoi richiedere assistenza alla community o aprire un problema in GitHub.

Per ridurre l'infrastruttura necessaria per scambiare un codice di autorizzazione per un token di accesso, puoi usare il modulo PowerShell del Centro per i partner. Questo metodo è facoltativo per effettuare chiamate REST del Centro per i partner.

Per altre informazioni su questo processo, vedi la documentazione di PowerShell Modello di applicazione sicura.

  1. Installare i moduli Microsoft Entra ID e PowerShell del Centro per i partner.

    Install-Module AzureAD
    
    Install-Module PartnerCenter
    
  2. Usa il comando New-PartnerAccessToken per eseguire il processo di consenso e acquisire il token di aggiornamento necessario.

    $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
    

    Nota

    Il parametro ServicePrincipal viene usato con il comando New-PartnerAccessToken perché viene usata un'app Microsoft Entra con un tipo di Web/API . Questo tipo di app richiede l'inclusione di un identificatore client e un segreto nella richiesta del token di accesso. Quando viene richiamato il comando Get-Credential, ti verrà richiesto di immettere un nome utente e una password. Immetti l'identificatore dell'applicazione come nome utente e il segreto dell'applicazione come password. Quando viene richiamato il comando New-PartnerAccessToken, ti verrà richiesto di immettere di nuovo le credenziali. Immetti le credenziali per l'account del servizio in uso. Questo account del servizio deve essere un account partner con autorizzazioni appropriate.

  3. Copia il valore del token di aggiornamento.

    $token.RefreshToken | clip
    

Il valore del token di aggiornamento deve essere archiviato in un repository sicuro, ad esempio Azure Key Vault. Per altre informazioni su come usare il modulo dell'applicazione sicura con PowerShell, vedere l'articolo sull'autenticazione a più fattori.