Share via


Een beveiligde partnertoepassing maken

U kunt het framework Secure Application Model implementeren door een toepassing te maken voor cloudoplossingsproviders (CSP's) of Configuratiescherm leveranciers (CPV's).

Een beveiligd toepassingsmodel implementeren

Stappen voor het inschakelen van een beveiligd toepassingsmodel

Belangrijk

Azure Active Directory (Azure AD) Graph is vanaf 30 juni 2023 afgeschaft. In de toekomst doen we geen verdere investeringen in Azure AD Graph. Azure AD Graph-API's hebben geen SLA of onderhoudsverplichting buiten beveiligingsgerelateerde oplossingen. Investeringen in nieuwe functies en functionaliteiten worden alleen gedaan in Microsoft Graph.

Azure AD Graph wordt in incrementele stappen buiten gebruik gesteld, zodat u voldoende tijd hebt om uw toepassingen te migreren naar Microsoft Graph-API's. Op een later tijdstip dat we zullen aankondigen, blokkeren we het maken van nieuwe toepassingen met behulp van Azure AD Graph.

Zie Belangrijk: Buitengebruikstelling van Azure AD Graph en Afschaffing van Powershell-module voor meer informatie.

Een partnercentrumservice-principal maken

Maak eerst een Microsoft Partner Center-service-principal in de tenant van de CSP-partner, waar de multitenant-toepassing wordt gemaakt.

Voor CSP-partnertenants moet deze service-principal al bestaan. Als dat niet het probleem is, maakt u deze met behulp van de volgende stappen.

Voer in een PowerShell-venster voor beheerders de volgende opdrachten uit.

  1. Installeer de AzureAD-module. Install-Module Microsoft.Graph
  2. Voer Verbinding maken-MgGraph uit. Dit vraagt om een gebruikersnaam en wachtwoord. Voer de referenties van de tenantbeheerder in. Connect-MgGraph
  3. Maak een service-principal van Microsoft Partner Center. New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd

Een multitenant-toepassing maken in de tenant van de CSP-partner

Gebruik de volgende stappen om ervoor te zorgen dat de volgende toepassingseigenschappen zijn ingesteld voor de zojuist gemaakte multitenant-toepassing.

  1. Meld u aan bij portal.azure.com
  2. Selecteer Microsoft Entra-id en App-registraties om nieuwe registraties met meerdere tenants te maken.

Schermopname van een modale app registreren.

  1. Selecteer een gebruikersgerichte weergavenaam voor uw toepassing.
  2. Selecteer Ondersteund accounttype: Accounts in elke organisatiemap (Elke Microsoft Entra-directory - Multitenant).
  3. Selecteer een platformtype 'Web'.
  4. De omleidings-URL moet de omleidings-URL van uw toepassing zijn, waarin het bericht voor het slagen van toestemming aan de partner wordt weergegeven en een vernieuwingstoken wordt verzameld. Zorg ervoor dat de omleidings-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.
  5. Ga naar Certificaten en geheimen beheren>+Nieuw clientgeheim> op het tabblad Clientgeheimen.

Notitie

U hebt de volgende informatie nodig uit de instellingen van uw web-app in Microsoft Entra ID:

  • Toepassings-id
  • Toepassingsgeheim

Schermopname van Certificaten en geheimen.

Machtigingen toepassen

Zorg ervoor dat de volgende machtigingen zijn ingesteld voor de multitenant-toepassing.

In de sectie API-machtigingen :

  • Er mogen geen directe toepassingsmachtigingen zijn voor de multitenant-toepassing.

  • Volg het onderstaande pad voor het toevoegen van gedelegeerde machtigingen voor Microsoft Graph:

    • API-machtigingen>een machtiging>toevoegen aan Microsoft GRAPH Gedelegeerde machtigingen voor Microsoft Graph>>
      • DelegatedAdminRelationship.ReadWrite.All User.Read.All

    Schermopname van API-machtigingen voor aanvragen voor partner-apps.

    • Volg het onderstaande pad voor het toevoegen van gedelegeerde machtigingen voor Microsoft Partner Center - Machtigingen verlenen aan het Partnercentrum voor toegang onder Gedelegeerde machtigingen:
      • API-machtigingen toevoegen een machtigings-API's>voor mijn organisatie maakt gebruik van>gedelegeerde machtigingen>voor gebruikersimitatie in het Microsoft Partnercentrum>>

    Schermopname van A P I-machtigingen voor partner-apps.

Presenteer de partner met de toestemmingskoppeling en laat hen zich aanmelden met hun serviceaccount om de toepassing goed te keuren om namens het serviceaccount op de partnertenant te handelen.

De CSP-partnergebruiker moet een globale Beheer en een Beheer-agent zijn om toestemming te geven voor de multitenant-toepassing.

Multitenant-toepassing

De multitenant ApplicationID moet worden vervangen door uw toepassings-id.

Navigeer naar app-registraties en selecteer de toepassings-id (client) en vervang hieronder.

Schermopname van de Partner Microsoft Entra-client.

Autorisatiecode ophalen

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

  1. Meld u aan bij Microsoft Entra-id.
  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 andere 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/.
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

Gebruik voor China de volgende koppeling:

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

Tracering van autorisatiecode-aanroep: https://localhost:44395/?code=<authorization_code>&<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.

Notitie

De resources die worden vermeld in de onderstaande POST-voorbeeldaanroep, zijn bedoeld voor GDAP-Graph-API's.

Resources voor andere PC-API's zijn als volgt:

Partnercentrum-API's (https://api.partnercenter.microsoft.com)

GDAP-API's

Partner-API (https://api.partner.microsoft.com)

Voorbeeldgesprek

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

Sleutelkluis instellen

Maak eerst een nieuwe webtoepassing in de tenant van de CSP-partner. Als de CPV-toepassing wordt gebruikt voor het aanroepen van de Partnercentrum-API's, moet CPV een nieuwe webtoepassing maken in de tenant van de CPV-partner.

Als u Azure Key Vault gebruikt:

  1. Maak de Azure Key Vault met de juiste <key-vault-name> en resulteert in een DNS-naam zoals: https://<key-vault-name>.vault.azure.net
  2. Voeg een vernieuwingstoken toe aan de sleutelkluis.

Toegang verlenen tot de sleutelkluis

Voeg in het toegangsbeleid van de sleutelkluis de KeyVaultAccessApp toe met machtigingen om alleen de get- en set-aspecten van een geheim te beheren.

Schermopname van de vereiste machtigingen voor de CSP-partner-app.

Het prototype configureren

Het prototype heeft twee toepassingen:

  • Toestemming van de partner: vertegenwoordigt een webtoepassing die is ontworpen om toestemming van een CSP-partner te accepteren en een bericht weer te geven dat het is gelukt.
    • Met deze toepassing wordt toestemming ingesteld en wordt het vernieuwingstoken van de gebruiker vastgelegd.
    • Het vernieuwingstoken van de gebruiker wordt gebruikt voor het genereren van het toegangstoken voor de CSP-partnertenant.
  • CSP-toepassing of CPV-toepassing: vertegenwoordigt een primaire toepassing, die Partnercentrum-API's en -grafiek aanroept.
    • API's voor het uitvoeren van commerce- en gebruikersacties namens de partner.

Met deze toepassing wordt het toegangstoken opgehaald voor een specifieke doelgroep (Partner center-API's of Graph) voordat de respectieve API's worden aangeroepen. Het gebruikt het vernieuwingstoken dat veilig is opgeslagen in de sleutelkluis.

CSP-webconfiguratie

Voor de CSP-partnertoepassing bevat het web.config bestand de volgende secties uitgelicht. Werk deze waarden bij met bijbehorende toepassings-id's en geheimen. Gebruik voor uw primaire toepassing 'certificaat' als het geheim van de webtoepassing in plaats van gewone geheimen, omdat het een extra beveiligingslaag biedt.

<!-- 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/" />

Configuratie van CSP-toepassing

Voor de CSP-partnertoepassing bevat het app.config bestand de volgende secties uitgelicht. Werk de waarden bij met de bijbehorende toepassings-id's en geheimen. Gebruik voor uw primaire toepassing 'certificaat' als het geheim van de webtoepassing in plaats van gewone geheimen, omdat het een extra beveiligingslaag biedt.

<!-- 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/" />

CSP's die de CPV-toepassing gebruiken, kunnen de ApplicationConsent-API aanroepen om de service-principal op de klanttenant te maken voor toegang tot Microsoft Graph om de tenants van de klant te beheren. Zie Partnercentrum-verificatie voor meer informatie.

CPV-webconfiguratie

Voor de CSP-partnertoepassing bevat het web.config bestand de volgende secties uitgelicht. Werk deze waarden bij met bijbehorende toepassings-id's en geheimen. Gebruik voor uw primaire toepassing 'certificaat' als het geheim van de webtoepassing in plaats van gewone geheimen, omdat het een extra beveiligingslaag biedt.

<!-- 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/" />

CPV-toepassingsconfiguratie

Voor de CPV-partnertoepassing bevat het app.config bestand de volgende secties uitgelicht. Werk de waarden bij met de bijbehorende toepassings-id's en geheimen. Gebruik voor uw primaire toepassing 'certificaat' als het geheim van de webtoepassing in plaats van gewone geheimen, omdat het een extra beveiligingslaag biedt.

<!-- 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/" />