Creare un'applicazione partner sicura
È possibile implementare il framework del modello di applicazione sicura creando un'applicazione per provider di soluzioni cloud (CSP) o fornitori di Pannello di controllo (CPV).
Implementare un modello di applicazione sicura
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 altre informazioni, vedere Importante: Ritiro di Azure AD Graph e Deprecazione del modulo PowerShell.
Creare un'entità servizio del Centro per i partner
Creare prima di tutto un'entità servizio del Centro per i partner Microsoft nel tenant del partner CSP, in cui verrà creata l'applicazione multi-tenant.
Per i tenant partner CSP, questa entità servizio dovrebbe esistere già. 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 Connessione-MgGraph, che richiede un nome utente e una password. Immettere le credenziali di amministratore tenant.
Connect-MgGraph
- Creare un'entità servizio del Centro per i partner Microsoft.
New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd
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 multi-tenant.
- Selezionare un nome visualizzato rivolto all'utente per l'applicazione.
- Selezionare Tipo di account supportato: account in qualsiasi directory organizzativa (qualsiasi directory Microsoft Entra - Multitenant).
- Selezionare un tipo di piattaforma "Web".
- L'URL di reindirizzamento deve essere l'URL di reindirizzamento dell'applicazione, che mostrerà 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 e segreti>+Nuovo segreto client nella scheda Segreti client.
Nota
Sono necessarie le informazioni seguenti dalle impostazioni dell'app Web in Microsoft Entra ID:
- ID applicazione
- Segreto applicazione
Applicare le autorizzazioni
Assicurarsi che le autorizzazioni seguenti siano impostate per l'applicazione multi-tenant.
Nella sezione Autorizzazione API:
Non devono essere presenti autorizzazioni dell'applicazione dirette per l'applicazione multi-tenant.
Seguire il percorso seguente per aggiungere autorizzazioni delegate per Microsoft Graph:
- Autorizzazioni>API Aggiungere un'autorizzazione>Per le>API Microsoft Graph>delegated Permissions
DelegatedAdminRelationship.ReadWrite.All User.Read.All
- Seguire il percorso seguente per aggiungere autorizzazioni delegate per il Centro per i partner Microsoft - Concedere le autorizzazioni del Centro per i partner di accesso in Autorizzazioni delegate:
- Autorizzazioni>API Aggiungere un'API di autorizzazione>che l'organizzazione usa>la rappresentazione utente autorizzazioni delegate del Centro>per>i partner Microsoft
- Autorizzazioni>API Aggiungere un'autorizzazione>Per le>API Microsoft Graph>delegated Permissions
Specificare il collegamento di consenso
Presentare al partner il collegamento di consenso e chiedere loro di accedere con il proprio account di servizio per approvare l'applicazione per agire per conto dell'account del servizio nel tenant partner.
L'utente partner CSP deve essere un Amministrazione globale e un agente Amministrazione per fornire il consenso all'applicazione multi-tenant.
Applicazione multi-tenant
Il multi-tenant ApplicationID
deve essere sostituito con l'ID applicazione.
Passare a Registrazioni app e selezionare l'ID applicazione (client) e sostituire di seguito.
Ottenere un codice di autorizzazione
È necessario ottenere un codice di autorizzazione per l'app Web dalla chiamata di accesso a Microsoft Entra:
- Accedere a Microsoft Entra ID.
- Sostituire Application-ID con l'ID app Microsoft Entra (GUID).
- 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 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/
.
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code&redirect_url=https://<CSPApplicationUrl_which_collects_refreshtoken>
or
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>
or
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 un token di aggiornamento
Devi quindi usare il codice di autorizzazione per ottenere un token di aggiornamento:
- 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. - Prendi nota del token di aggiornamento restituito.
- Archiviare il token di aggiornamento in Azure Key Vault. Per altre informazioni, vedi la documentazione relativa all'API di Key Vault.
Nota
Le risorse indicate nella chiamata POST di esempio seguente sono per le API GDAP-Graph.
Le risorse per altre API PC sono le seguenti:
API del Centro per i partner (https://api.partnercenter.microsoft.com
)
API 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 l'insieme di credenziali delle chiavi
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 Azure Key Vault con l'elemento appropriato
<key-vault-name>
e ottenere un nome DNS simile al seguente:https://<key-vault-name>.vault.azure.net
- Aggiungere un token di aggiornamento all'insieme di credenziali delle chiavi.
Fornire l'accesso all'insieme di credenziali delle chiavi
Nei criteri di accesso dell'insieme di credenziali delle chiavi aggiungere KeyVaultAccessApp con autorizzazioni per gestire solo gli aspetti Get e Set di un segreto.
Configurare il prototipo
Il prototipo ha due applicazioni:
- Consenso partner: 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 il grafico 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 nell'insieme di credenziali delle chiavi.
Applicazione di consenso per i partner (CSP)
Configurazione Web CSP
Per l'applicazione partner CSP, il web.config
file 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 app.config
file 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 di consenso per i partner (CPV)
I CSP che usano l'applicazione CPV possono chiamare l'API ApplicationConsent per creare l'entità servizio nel tenant del cliente per accedere a Microsoft Graph per gestire i tenant dei clienti. Per altre informazioni, vedere Autenticazione del Centro per i partner.
Configurazione Web CPV
Per l'applicazione partner CSP, il web.config
file 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 app.config
file 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 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/" />