Dela via


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.

  1. Installera AzureAD-modulen. Install-Module Microsoft.Graph
  2. Kör Anslut-MgGraph, detta frågar efter ett användarnamn och lösenord. Ange autentiseringsuppgifterna för klientorganisationens administratör. Connect-MgGraph
  3. 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.

  1. Logga in på portal.azure.com
  2. Välj Microsoft Entra-ID och Appregistreringar för att skapa nya registreringar med flera klientorganisationer.

Skärmbild som visar Registrera en appmodal.

  1. Välj ett användaruppkopplat visningsnamn för ditt program.
  2. Välj Kontotyp som stöds: Konton i valfri organisationskatalog (Alla Microsoft Entra-kataloger – Flera klienter).
  3. Välj en plattformstyp "Webb".
  4. 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.
  5. 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

Skärmbild som visar certifikat och hemligheter.

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

    Skärmbild som visar API-behörigheter för partnerappbegäran.

    • 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>>

    Skärmbild som visar partnerappenS P I-behörigheter.

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.

Skärmbild som visar Microsoft Entra-partnerklienten.

Hämta auktoriseringskod

Du måste hämta en auktoriseringskod för webbappen från Microsoft Entra-inloggningsanropet:

  1. Logga in på Microsoft Entra-ID.
  2. Ersätt Program-ID med ditt Microsoft Entra-app-ID (GUID).
  3. När du uppmanas att göra det loggar du in med ditt användarkonto med MFA konfigurerat.
  4. När du uppmanas till det anger du annan MFA-information (telefonnummer eller e-postadress) för att verifiera din inloggning.
  5. 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:

  1. 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.
  2. Observera den uppdateringstoken som returneras.
  3. 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)

GDAP-API:er

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:

  1. 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
  2. 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.

Skärmbild som visar nödvändiga behörigheter för CSP-partnerappen.

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.

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

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