Een beveiligde partnertoepassing maken
U kunt het framework Secure Application Model implementeren door een toepassing te maken voor cloudoplossingsproviders (CSP's) of CSP's (Control Panel Vendors).
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 voor meer informatie Belangrijk: Buitengebruikstelling van Azure AD Graph en Afschaffing van PowerShell-module.
Een Service-principal voor Partner Centrum 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.
- Installeer de AzureAD-module.
Install-Module Microsoft.Graph
- Voer Connect-MgGraph uit. Dit vraagt om een gebruikersnaam en wachtwoord. Voer de inloggegevens van de tenantbeheerder in.
Connect-MgGraph
- Maak een service-principal van Microsoft Partner Center.
New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId 00001111-aaaa-2222-bbbb-3333cccc4444
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.
- Meld u aan bij portal.azure.com
- Selecteer Microsoft Entra-id en app-registraties om nieuwe registraties met meerdere tenants te maken.
- Selecteer een gebruikersgerichte weergavenaam voor uw toepassing.
- Selecteer Ondersteund accounttype: Accounts in elke organisatiemap (Elke Microsoft Entra-directory - Multitenant).
- Selecteer een platform type 'Web'.
- De Omleidings--URL moet de omleidings-URL van uw toepassing zijn, waarmee het bericht voor het slagen van toestemming aan de partner wordt weergegeven en een verversingstoken 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 accepteren vanuit de Microsoft Entra-aanmelding.
- Ga naar Beheer>certificaten & geheimen>+Nieuw clientgeheim op het tabblad Clientgeheimen.
Notitie
U hebt de volgende informatie nodig uit de instellingen van uw web-app in Microsoft Entra ID:
- Applicatie-ID
- Applicatiegeheim
Toestemmingen toepassen
Zorg ervoor dat de volgende machtigingen zijn ingesteld voor de multitenant-toepassing.
In de sectie API-machtiging:
Er mogen geen directe toepassingsmachtigingen voor de multitenante toepassing zijn.
Volg het onderstaande pad voor het toevoegen van gedelegeerde machtigingen voor Microsoft Graph:
-
API-machtigingen>Een machtiging toevoegen>Microsoft-API's>Microsoft Graph>Gedelegeerde machtigingen
DelegatedAdminRelationship.ReadWrite.All User.Read.All
- Volg het onderstaande pad om gedelegeerde machtigingen toe te voegen voor Microsoft Partnercentrum - Toegang verlenen tot Partnercentrum onder Gedelegeerde machtigingen.
- API-machtigingen>een machtiging toevoegen>API's die mijn organisatie gebruikt>Microsoft Partner Center>Gedelegeerde machtigingen>gebruikersimitatie
-
API-machtigingen>Een machtiging toevoegen>Microsoft-API's>Microsoft Graph>Gedelegeerde machtigingen
Toestemmingslink verstrekken
Presenteer de toestemmingskoppeling aan de partner en laat hen zich aanmelden met hun serviceaccount om de applicatie goed te keuren om namens het serviceaccount binnen de partnertenant te handelen.
De CSP-partnergebruiker moet een Global Admin en een admin-agent zijn om toestemming te geven aan de multitenanttoepassing.
Multitenanttoepassing
De multi-tenant ApplicationID
moet worden vervangen door uw applicatie-ID.
Navigeer naar app-registraties en selecteer de toepassings-id (client) en vervang hieronder.
Autorisatiecode ophalen
U moet een autorisatiecode voor uw web-app ophalen via de aanmeldingsaanroep van Microsoft Entra:
- Meld u aan bij Microsoft Entra ID.
- Vervang application-id door uw Microsoft Entra-app-id (GUID).
- Wanneer u hierom wordt gevraagd, meldt u zich aan met uw gebruikersaccount met MFA geconfigureerd.
- Wanneer u hierom wordt gevraagd, voert u andere MFA-gegevens (telefoonnummer of e-mailadres) in om uw aanmelding te verifiëren.
- 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>
of
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>
of
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:
- Maak een POST-aanroep naar het Microsoft Entra-aanmeldingseindpunt
https://login.microsoftonline.com/CSPTenantID/oauth2/token
met de autorisatiecode. Zie voor een voorbeeld de volgende voorbeeldaanroep. - Let op het refresh-token dat wordt geretourneerd.
- Sla het vernieuwingstoken op in Azure Key Vault. Zie de Key Vault-API-documentatievoor meer informatie.
Notitie
De resources die in de onderstaande POST-voorbeeldoproep worden genoemd, zijn bedoeld voor GDAP-Graph API's.
Resources voor andere PC-API's zijn als volgt:
Partnercentrum API's (https://api.partnercenter.microsoft.com
)
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:
- 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
- Voeg een *refresh token* toe aan de sleutelkluis.
Toegang verlenen tot de sleutelkluis
Voeg in het toegangsbeleid van de sleutelkluis de KeyVaultAccessApp toe met machtigingen voor het alleen beheren van de Get en Set aspecten van een Secret.
Het prototype configureren
Het prototype heeft twee toepassingen:
-
partnertoestemming: vertegenwoordigt een webtoepassing die is ontworpen om toestemming van een CSP-partner te accepteren en een succesbericht weer te geven.
- Met deze toepassing wordt toestemming ingesteld en wordt het refresh-token van de gebruiker vastgelegd.
- Het refresh token van de toegestemde gebruiker wordt gebruikt om het toegangstoken voor de CSP-partnertenant te genereren.
-
CSP-toepassing of CPV-toepassing: vertegenwoordigt een primaire toepassing die Partner Center-API's en -grafiek aanroept.
- API's voor het uitvoeren van commerce- en gebruikersacties namens de partner.
Met deze applicatie wordt het toegangstoken opgehaald voor een specifieke doelgroep (Partner Center-API's of Graph) voordat de betreffende API's worden aangeroepen. Het gebruikt het vernieuwingstoken dat veilig is opgeslagen in de sleutelkluis.
Applicatie voor toestemming van de partner (CSP)
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 opgesomd. Werk de waarden bij met de bijbehorende toepassings-ID's en geheimcodes. 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/" />
Partnertoestemmingsapplicatie (CPV)
CSP’s die de CPV-toepassing gebruiken, kunnen de ApplicationConsent-API aanroepen om de service-principal in de tenant van de klant te maken, zodat toegang wordt verkregen tot Microsoft Graph voor beheer van de tenants van de klant. Zie Partnercentrum-verificatievoor 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 zijn in het app.config
bestand de volgende secties opgesomd. Werk de waarden bij met de corresponderende applicatie-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/" />