Abilitazione del framework del Modello di Applicazione Sicura
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).
È possibile 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 ai CPV.
CPV
- Un CPV è un fornitore di software indipendente che sviluppa app per l'uso da parte dei 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.
CSPs
- Provider CSP indiretti e partner CSP diretti che utilizzano l'autenticazione con l'ID app e utente e si integrano direttamente con le API del Centro per i Partner.
Requisiti di sicurezza
Per informazioni dettagliate sui requisiti di sicurezza, vedere Requisiti di sicurezza dei partner.
Modello di applicazione sicura
Le applicazioni marketplace devono rappresentare i privilegi dei partner CSP per chiamare le API Microsoft. Gli attacchi alla sicurezza su queste applicazioni sensibili possono causare la compromissione dei 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.
Campioni
I documenti di panoramica seguenti e il codice di esempio descrivono come i partner possono implementare il framework del modello di applicazione sicura:
-
Per gestire le risorse del Centro per i partner, è possibile usare Java SDK del Centro per i partner. Si tratta di un progetto open source gestito dalla community partner e non ufficialmente supportato da Microsoft. È possibile ottenere assistenza dalla community o aprire un problema in GitHub se si verifica un problema.
REST
Per effettuare chiamate REST con il framework del modello di applicazione sicura con codice di esempio, seguire questa procedura:
- Abilitazione del framework del modello di applicazione sicura
- Abilitazione del framework del modello di applicazione sicura
Creare un'app Web
Creare un'app Microsoft Entra.
Assegnare le autorizzazioni dell'applicazione delegate alle risorse seguenti a seconda dei requisiti dell'applicazione. Se necessario, è possibile aggiungere altre autorizzazioni delegate per le risorse dell'applicazione.
Microsoft Partner Center (alcuni tenant mostrano SampleBECApp)
API di gestione di Azure (se si prevede di chiamare le API di Azure)
Windows Azure Active Directory
Assicurarsi che l'URL iniziale dell'app sia impostato su un endpoint in cui è in esecuzione un'app Web attiva. Questa app deve accettare il codice di autorizzazione dalla chiamata di accesso di Microsoft Entra. Ad esempio, nel codice di esempio nella sezione seguente l'app Web viene eseguita in
https://localhost:44395/
.Annotare le seguenti informazioni nelle impostazioni dell’app Web in Microsoft Entra ID:
- ID applicazione
- Segreto dell'applicazione
Nota
È consigliabile usare un certificato come segreto dell'applicazione. Tuttavia, è anche possibile creare una chiave dell'applicazione nel portale di Azure. Il codice di esempio in sezione seguente usa una chiave dell'applicazione.
Ottenere il codice di autorizzazione
È necessario ottenere un codice di autorizzazione affinché la tua app Web possa accettarlo dalla chiamata di accesso di Microsoft Entra.
Accedi 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.
Sostituire Application-Id con l'ID app (GUID) di Microsoft Entra.
Quando richiesto, accedere con l'account utente con MFA configurato.
Quando richiesto, immettere ulteriori informazioni sull'autenticazione a più fattori (numero di telefono o indirizzo email) per verificare il login.
Dopo aver eseguito l'accesso, il browser reindirizzerà la chiamata all'endpoint dell'applicazione web con il codice di autorizzazione. Ad esempio, il codice di esempio seguente reindirizza a
https://localhost:44395/
.
Traccia delle chiamate al 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 il token di aggiornamento
È quindi necessario usare il codice di autorizzazione per ottenere un token di aggiornamento:
Effettuare una chiamata POST all'endpoint di accesso di Microsoft Entra
https://login.microsoftonline.com/CSPTenantID/oauth2/token
con il codice di autorizzazione. Per un esempio, vedere la chiamata di esempio seguente .Si noti il token di aggiornamento restituito.
Archiviare il token di aggiornamento in Azure Key Vault. Per altre informazioni, vedere la documentazione dell'API 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
Corpo 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":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}
Ottenere il token di accesso
È necessario ottenere un token di accesso prima di poter effettuare chiamate alle API del Centro per i partner. È 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
Corpo 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 API del Centro per i partner
È necessario usare il token di accesso per chiamare le API del Centro per i partner. Vedere la chiamata di esempio seguente.
Esempio di chiamata 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 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. È possibile ottenere assistenza dalla community o aprire un problema in GitHub se si verifica un problema.
È possibile usare il modulo PowerShell del Centro per i partner per ridurre l'infrastruttura necessaria per scambiare un codice di autorizzazione per un token di accesso. Questo metodo è facoltativo per effettuare chiamate REST del Centro per i partner .
Per altre informazioni su questo processo, vedere modello di app sicura documentazione di PowerShell.
Installare i moduli Microsoft Entra ID e PowerShell del Centro per i partner.
Install-Module AzureAD
Install-Module PartnerCenter
Usare il comandoNew-PartnerAccessTokenper eseguire il processo di consenso e acquisire il token di aggiornamento richiesto.
$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 che un identificatore client e un segreto siano inclusi nella richiesta del token di accesso. Quando viene richiamato il comando get-Credential , verrà richiesto di immettere un nome utente e una password. Immettere l'identificatore dell'applicazione come nome utente. Immettere il segreto dell'applicazione come password. Quando viene richiamato il comando New-PartnerAccessToken, verrà richiesto di immettere nuovamente le credenziali. Immettere le credenziali per l'account del servizio in uso. Questo account del servizio deve essere un account partner con autorizzazioni appropriate.
Copiare il valore del token di aggiornamento.
$token.RefreshToken | clip
È consigliabile archiviare il valore del token di aggiornamento 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 autenticazione a più fattori.