Skapa ett säkert partnerprogram
Du kan implementera ramverket för säker programmodell genom att skapa ett program för antingen Molnlösningsleverantör s (CSP:er) eller Kontrollpanelen-leverantörer (CPV:er).
Implementera en säker programmodell
Steg för att aktivera säker programmodell
Viktigt!
Azure Active Directory (Azure AD) Graph är inaktuell från och med den 30 juni 2023. Framöver gör vi inga ytterligare investeringar i Azure AD Graph. Azure AD Graph-API:er har inget serviceavtal eller underhållsåtagande utöver säkerhetsrelaterade korrigeringar. Investeringar i nya funktioner och funktioner görs endast i Microsoft Graph.
Vi drar tillbaka Azure AD Graph i stegvisa steg så att du har tillräckligt med tid för att migrera dina program till Microsoft Graph-API:er. Vid ett senare tillfälle som vi kommer att meddela kommer vi att blockera skapandet av nya program med hjälp av Azure AD Graph.
Mer information finns i Viktigt: Utfasning av Azure AD Graph Och Utfasning av Powershell-moduler.
Skapa ett huvudnamn för Partnercenter-tjänsten
Skapa först ett Microsoft Partner Center-tjänsthuvudnamn i CSP-partnerns klientorganisation, där programmet för flera klienter kommer att skapas.
För CSP-partnerklientorganisationer bör tjänstens huvudnamn redan finnas. Om inte skapar du med hjälp av följande steg.
Kör följande kommandon i ett PowerShell-administratörsfönster.
- Installera AzureAD-modulen.
Install-Module Microsoft.Graph
- Kör Anslut-MgGraph, detta frågar efter ett användarnamn och lösenord. Ange autentiseringsuppgifterna för klientorganisationens administratör.
Connect-MgGraph
- Skapa ett Microsoft Partner Center-tjänstens huvudnamn.
New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd
Skapa ett program med flera klienter i CSP-partnerns klientorganisation
Använd följande steg för att se till att följande programegenskaper har angetts för det nyligen skapade programmet för flera klientorganisationer.
- Logga in på portal.azure.com
- Välj Microsoft Entra-ID och Appregistreringar för att skapa nya registreringar med flera klientorganisationer.
- Välj ett användaruppkopplat visningsnamn för ditt program.
- Välj Kontotyp som stöds: Konton i valfri organisationskatalog (Alla Microsoft Entra-kataloger – Flera klienter).
- Välj en plattformstyp "Webb".
- Omdirigerings-URL:en måste vara din omdirigerings-URL för programmet, som visar meddelandet om medgivande lyckades till partnern och samlar in en uppdateringstoken. Kontrollera att omdirigerings-URL:en för din app är inställd på en slutpunkt där en livewebbapp körs. Den här appen måste godkänna auktoriseringskoden från Inloggningsanropet för Microsoft Entra.
- Gå till Hantera>certifikat och hemligheter>+Ny klienthemlighet på fliken Klienthemligheter.
Kommentar
Du behöver följande information från webbappens inställningar i Microsoft Entra-ID:
- Program-ID:t
- Programhemlighet
Tillämpa behörigheter
Kontrollera att följande behörigheter har angetts för programmet för flera klientorganisationer.
I avsnittet API-behörighet :
Det bör inte finnas några direkta programbehörigheter till programmet för flera klientorganisationer.
Följ sökvägen nedan för att lägga till delegerade behörigheter för Microsoft Graph:
- API-behörigheter Lägg till en behörighet>för Microsoft API:er>Microsoft Graph-delegerade>behörigheter>
DelegatedAdminRelationship.ReadWrite.All User.Read.All
- Följ nedanstående sökväg för att lägga till delegerade behörigheter för Microsoft Partner Center – Bevilja åtkomst till Partnercenter-behörigheter under Delegerade behörigheter:
- API-behörigheter Lägg till en behörighets-API>:er som min organisation använder>Användarpersonifiering för Delegerade behörigheter>i Microsoft PartnerCenter>>
- API-behörigheter Lägg till en behörighet>för Microsoft API:er>Microsoft Graph-delegerade>behörigheter>
Ange medgivandelänk
Presentera partnern med medgivandelänken och få dem att logga in med sitt tjänstkonto för att godkänna programmet för att agera för tjänstkontots räkning på partnerklientorganisationen.
CSP-partneranvändaren måste vara global administratör och administratörsagent för att godkänna programmet för flera klientorganisationer.
Program för flera klientorganisationer
Multi-klientorganisationen ApplicationID
måste ersättas med ditt program-ID.
Gå till Appregistreringar och välj program-ID :t (klient) och ersätt nedan.
Hämta auktoriseringskod
Du måste hämta en auktoriseringskod för webbappen från Microsoft Entra-inloggningsanropet:
- Logga in på Microsoft Entra-ID.
- Ersätt Program-ID med ditt Microsoft Entra-app-ID (GUID).
- När du uppmanas att göra det loggar du in med ditt användarkonto med MFA konfigurerat.
- När du uppmanas till det anger du annan MFA-information (telefonnummer eller e-postadress) för att verifiera din inloggning.
- När du har loggat in omdirigerar webbläsaren anropet till webbappens slutpunkt med din auktoriseringskod. Följande exempelkod omdirigeras till exempel till
https://localhost:44395/
.
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code&redirect_url=https://<CSPApplicationUrl_which_collects_refreshtoken>
eller
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code
För Kina använder du följande länk:
GET https://login.chinacloudapi.cn/common/oauth2/authorize ?&client_id= <CSPApplicationId>&response_type=code&redirect_url= https://<CSPApplicationUrl_which_collects_refreshtoken>
eller
GET https://login.chinacloudapi.cn/common/oauth2/authorize?&client_id= <CSPApplicationId>&response_type=code
Anropsspårning för auktoriseringskod: https://localhost:44395/?code=<authorization_code>&<rest of properties for state>
Hämta uppdateringstoken
Du måste sedan använda auktoriseringskoden för att hämta en uppdateringstoken:
- Gör ett POST-anrop till Microsoft Entra-inloggningsslutpunkten
https://login.microsoftonline.com/CSPTenantID/oauth2/token
med auktoriseringskoden. Ett exempel finns i följande exempelanrop. - Observera den uppdateringstoken som returneras.
- Lagra uppdateringstoken i Azure Key Vault. Mer information finns i dokumentationen för Key Vault API.
Kommentar
Resurserna som nämns i POST-exempelanropet nedan är för GDAP-Graph-API:er.
Resurser för andra PC-API:er är följande:
API:er för Partnercenter (https://api.partnercenter.microsoft.com
)
Partner-API (https://api.partner.microsoft.com
)
Exempelanrop
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"
}
Konfigurera nyckelvalv
Skapa först ett nytt webbprogram i CSP-partnerns klientorganisation. Om CPV-programmet används för att anropa API:er för Partnercenter bör CPV skapa ett nytt webbprogram i CPV-partnerns klientorganisation.
Om du använder Azure Key Vault:
- Skapa Azure Key Vault med rätt och
<key-vault-name>
det resulterar i ett DNS-namn som:https://<key-vault-name>.vault.azure.net
- Lägg till en uppdateringstoken i nyckelvalvet.
Ge åtkomst till nyckelvalvet
I åtkomstprinciperna för nyckelvalvet lägger du till KeyVaultAccessApp med behörigheter för att endast hantera hämta och ange aspekter av en hemlighet.
Konfigurera prototypen
Prototypen har två program:
- Partnermedgivande: Representerar ett webbprogram som är utformat för att godkänna medgivande från en CSP-partner och visa ett meddelande om att det lyckades.
- Det här programmet konfigurerar medgivande och samlar in uppdateringstoken för den medgivande användaren.
- Den medgivande användarens uppdateringstoken används för att generera åtkomsttoken för CSP-partnerklientorganisationen.
- CSP-program eller CPV-program: Representerar ett primärt program som anropar API:er och diagram i Partnercenter.
- API:er för att utföra handels- och användaråtgärder för partnerns räkning.
Det här programmet hämtar åtkomsttoken för en specifik målgrupp (Partnercenter-API:er eller Graph) innan respektive API anropas. Den använder uppdateringstoken som lagras säkert i nyckelvalvet.
Partnermedgivandeprogram (CSP)
CSP-webbkonfiguration
För CSP-partnerprogrammet web.config
har filen följande avsnitt framhävt. Uppdatera dessa värden med motsvarande program-ID och hemligheter. För ditt primära program använder du "certifikat" som webbprogramhemlighet i stället för vanliga hemligheter eftersom det ger ett extra säkerhetslager.
<!-- 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/" />
Konfiguration av CSP-program
För CSP-partnerprogrammet app.config
har filen följande avsnitt framhävt. Uppdatera värdena med motsvarande program-ID och hemligheter. För ditt primära program använder du "certifikat" som webbprogramhemlighet i stället för vanliga hemligheter eftersom det ger ett extra säkerhetslager.
<!-- 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/" />
Program för partnermedgivande (CPV)
CSP:er som använder CPV-programmet kan anropa ApplicationConsent-API :et för att skapa tjänstens huvudnamn i kundklientorganisationen för att få åtkomst till Microsoft Graph för att hantera kundklientorganisationer. Mer information finns i Partnercenter-autentisering.
CPV-webbkonfiguration
För CSP-partnerprogrammet web.config
har filen följande avsnitt framhävt. Uppdatera dessa värden med motsvarande program-ID och hemligheter. För ditt primära program använder du "certifikat" som webbprogramhemlighet i stället för vanliga hemligheter eftersom det ger ett extra säkerhetslager.
<!-- 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/" />
Konfiguration av CPV-program
För CPV-partnerprogrammet app.config
har filen följande avsnitt framhävt. Uppdatera värdena med motsvarande program-ID och hemligheter. För ditt primära program använder du "certifikat" som webbprogramhemlighet i stället för vanliga hemligheter eftersom det ger ett extra säkerhetslager.
<!-- 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/" />