Creare un'applicazione partner sicura
È possibile implementare il framework del modello di applicazione sicura creando un'applicazione per provider di soluzioni cloud (CSP) o per i fornitori del pannello di controllo (CPV).
Implementare un modello di applicazione sicuro
Passaggi per abilitare il modello di applicazione sicura
Importante
Azure Active Directory (Azure AD) Graph è deprecato a partire dal 30 giugno 2023. In futuro non verranno effettuati ulteriori investimenti in Azure AD Graph. Le API Graph di Azure AD non hanno alcun contratto di servizio o impegno di manutenzione oltre alle correzioni correlate alla sicurezza. Gli investimenti in nuove funzionalità e funzionalità verranno effettuati solo in Microsoft Graph.
Azure AD Graph verrà ritirato nei passaggi incrementali in modo da avere tempo sufficiente per eseguire la migrazione delle applicazioni alle API Di Microsoft Graph. A una data successiva che verrà annunciata, si bloccherà la creazione di nuove applicazioni usando Azure AD Graph.
Per ulteriori informazioni, vedere Importante: Disattivazione di Azure AD Graph e Obsolescenza del Modulo PowerShell.
Creare un principale del servizio di Partner Center
Per prima cosa, crea un principale del servizio di Microsoft Partner Center nel tenant del partner CSP, dove verrà creata l'applicazione multi-tenant.
Per i tenant partner CSP, questo principale di servizio dovrebbe già esistere. In caso contrario, creare usando la procedura seguente.
In una finestra di PowerShell amministratore eseguire i comandi seguenti.
- Installare il modulo AzureAD.
Install-Module Microsoft.Graph
- Eseguire Connect-MgGraph, che richiede un nome utente e una password. Immettere le credenziali di amministratore del locatario.
Connect-MgGraph
- Creare un'entità servizio del Centro per i partner Microsoft.
New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId 00001111-aaaa-2222-bbbb-3333cccc4444
Creare un'applicazione multi-tenant nel tenant del partner CSP
Usare la procedura seguente per assicurarsi che le proprietà dell'applicazione seguenti siano impostate per l'applicazione multi-tenant appena creata.
- Accedere a portal.azure.com
- Selezionare Microsoft Entra ID e registrazioni app per creare nuove registrazioni con supporto multi-tenant.
- Selezionare un nome visualizzato rivolto all'utente per l'applicazione.
- Selezionare tipo di account supportato: account in qualsiasi directory aziendale (qualsiasi directory Microsoft Entra - Multitenant).
- Selezionare una piattaforma digitare "Web".
- L'URL di reindirizzamento deve essere l'URL di reindirizzamento della tua applicazione, che visualizzerà il messaggio di consenso riuscito al partner e raccoglierà un token di aggiornamento. Assicurarsi che l'URL di reindirizzamento dell'app sia impostato su un endpoint in cui è in esecuzione un'app Web dinamica. Questa app deve accettare il codice di autorizzazione dalla chiamata di accesso a Microsoft Entra.
- Passare a Gestisci>certificati & segreto>+Nuovo segreto client nella scheda Segreti client.
Nota
Avrai bisogno delle seguenti informazioni dalle impostazioni della tua applicazione web in Microsoft Entra ID:
- ID dell'applicazione
- Segreto dell'applicazione
Applicare le autorizzazioni
Assicurarsi che le autorizzazioni seguenti siano impostate per l'applicazione multi-tenant.
Nella sezione autorizzazione API:
Non dovrebbero esserci permessi applicativi diretti per l'applicazione multi-tenant.
Seguire il percorso seguente per aggiungere autorizzazioni delegate per Microsoft Graph:
- Autorizzazioni API >Aggiungere un'autorizzazione>API Microsoft>Microsoft Graph>Autorizzazioni delegate
DelegatedAdminRelationship.ReadWrite.All User.Read.All
- Seguire il percorso seguente per aggiungere autorizzazioni delegate per Centro per i partner Microsoft - Concedere l'accesso al Centro per i partner sotto Autorizzazioni delegate:
- Autorizzazioni API>Aggiungi un'autorizzazione>API utilizzate dalla mia organizzazione>Centro per i partner Microsoft>Autorizzazioni delegate>Sostituzione utente
- Autorizzazioni API >Aggiungere un'autorizzazione>API Microsoft>Microsoft Graph>Autorizzazioni delegate
Fornire il collegamento di consenso
Presentare al partner il collegamento di consenso e richiedere loro di accedere con il proprio account di servizio per approvare l'applicazione per agire per conto dell'account di servizio nel tenant del partner.
L'utente partner CSP deve essere un amministratore globale e un agente amministratore per fornire il consenso all'applicazione multi-tenant.
Applicazione multi-tenant
Il multi-tenant ApplicationID
deve essere sostituito con il tuo ID dell'applicazione.
Vai a Registrazioni dell'applicazione, seleziona l'ID dell'applicazione (client) e sostituiscilo come indicato di seguito.
Ottenere il codice di autorizzazione
È necessario ottenere un codice di autorizzazione per l'app Web dalla chiamata di accesso a Microsoft Entra:
- Accedi a Microsoft Entra ID.
- Sostituire Application-Id con l'ID app (GUID) di Microsoft Entra.
- Quando richiesto, accedere con l'account utente con MFA configurato.
- Quando richiesto, immettere altre informazioni MFA (numero di telefono o indirizzo di posta elettronica) per verificare l'accesso.
- Dopo aver effettuato l'accesso, il browser reindirizzerà la chiamata al punto finale della tua applicazione web con il codice di autorizzazione. Ad esempio, il codice di esempio seguente reindirizza a
https://localhost:44395/
.
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code&redirect_url=https://<CSPApplicationUrl_which_collects_refreshtoken>
o
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code
Per la Cina, usare il collegamento seguente:
GET https://login.chinacloudapi.cn/common/oauth2/authorize ?&client_id= <CSPApplicationId>&response_type=code&redirect_url= https://<CSPApplicationUrl_which_collects_refreshtoken>
o
GET https://login.chinacloudapi.cn/common/oauth2/authorize?&client_id= <CSPApplicationId>&response_type=code
Traccia delle chiamate al codice di autorizzazione: https://localhost:44395/?code=<authorization_code>&<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.
Nota
Le risorse indicate nella chiamata POST di esempio seguente sono per le API di GDAP-Graph.
Le risorse per altre API PC sono le seguenti:
API del Centro Partner (https://api.partnercenter.microsoft.com
)
API del partner (https://api.partner.microsoft.com
)
Chiamata di esempio
POST 'https://login.microsoftonline.com/<partnerTenantId>/oauth2/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--form 'grant_type="authorization_code"' \
--form 'client_id=<application_id or client_id>' \
--form 'resource="https://graph.microsoft.com"' \
--form 'code="<authorization_code>"'
Response Body:
{
"token_type": "Bearer",
"scope": "DelegatedAdminRelationship.ReadWrite.All User.Read.All",
"expires_in": "4549",
"ext_expires_in": "4549",
"expires_on": "1652886571",
"not_before": "1652881721",
"resource": "https://graph.microsoft.com",
"access_token": "Access_token",
"refresh_token": "Refresh_token",
"id_token": "Id_token"
}
Configurare il Key Vault
Creare prima di tutto una nuova applicazione Web nel tenant del partner CSP. Se l'applicazione CPV viene usata per chiamare le API del Centro per i partner, il CPV deve creare una nuova applicazione Web nel tenant del partner CPV.
Se si usa Azure Key Vault:
- Creare un Azure Key Vault utilizzando il parametro
<key-vault-name>
appropriato, che restituisce un nome DNS simile al seguente:https://<key-vault-name>.vault.azure.net
- Aggiungi un token di aggiornamento al Key Vault.
Fornire l'accesso all'archivio di chiavi
Nei criteri di accesso del key vault, aggiungere l'applicazione KeyVaultAccessApp con autorizzazioni per gestire solo gli aspetti Get e Set di un Secret.
Configurare il prototipo
Il prototipo ha due applicazioni:
-
Partner Consent: rappresenta un'applicazione Web progettata per accettare il consenso da un partner CSP e visualizzare un messaggio di esito positivo.
- Questa applicazione configura il consenso e acquisisce il token di aggiornamento dell'utente autorizzato.
- Il token di aggiornamento dell'utente autorizzato viene usato per generare il token di accesso per il tenant partner CSP.
-
'applicazione CSP o 'applicazione CPV: rappresenta un'applicazione primaria, che chiama le API e i grafici del Centro per i partner.
- API per eseguire azioni commerciali e utente per conto del partner.
Questa applicazione recupera il token di accesso per un gruppo di destinatari specifico (API del Centro per i partner o Graph) prima di chiamare le rispettive API. Usa il token di aggiornamento archiviato in modo sicuro nella cassaforte delle chiavi.
(CSP) Applicazione per il consenso dei partner
Configurazione Web CSP
Per l'applicazione partner CSP, il file web.config
contiene le sezioni seguenti evidenziate. Aggiornare questi valori con gli ID e i segreti dell'applicazione corrispondenti. Per l'applicazione primaria, usare "certificato" come segreto dell'applicazione Web anziché segreti semplici perché offre un livello di sicurezza aggiuntivo.
<!-- AppID that represents CSP application -->
<add key="ida:CSPApplicationId" value="CSPApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CSPApplicationSecret" value="CSPApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens --> <add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />
Configurazione dell'applicazione CSP
Per l'applicazione partner CSP, il file app.config
contiene le sezioni seguenti evidenziate. Aggiornare i valori con gli ID e i segreti dell'applicazione corrispondenti. Per l'applicazione primaria, usare "certificato" come segreto dell'applicazione Web anziché segreti semplici perché offre un livello di sicurezza aggiuntivo.
<!-- AppID that represents CSP application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de,
China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />
Applicazione per il consenso dei partner (CPV)
I CSP che usano l'applicazione CPV possono chiamare l'API ApplicationConsent per creare il principale del servizio nel tenant del cliente per accedere a Microsoft Graph per gestire i tenant dei clienti. Per ulteriori informazioni, vedere autenticazione di Partner Center.
Configurazione Web CPV
Per l'applicazione partner CSP, il file web.config
contiene le sezioni seguenti evidenziate. Aggiornare questi valori con gli ID e i segreti dell'applicazione corrispondenti. Per l'applicazione primaria, usare "certificato" come segreto dell'applicazione Web anziché segreti semplici perché offre un livello di sicurezza aggiuntivo.
<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />
Configurazione dell'applicazione CPV
Per l'applicazione partner CPV, il file app.config
contiene le sezioni seguenti richiamate. Aggiornare i valori con gli ID e i segreti dell'applicazione corrispondenti. Per l'applicazione primaria, usare "certificato" come segreto dell'applicazione Web anziché segreti semplici perché offre un livello di sicurezza aggiuntivo.
<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />