Dela via


Partner Center-autentisering

Gäller för: Partnercenter | Partnercenter som drivs av 21Vianet | Partnercenter för Microsoft Cloud for US Government

Partnercenter använder Microsoft Entra ID för autentisering. När du interagerar med Partnercenter-API, SDK eller PowerShell-modulen måste du konfigurera ett Microsoft Entra-program korrekt och sedan begära en åtkomsttoken. Åtkomsttoken som hämtas med endast app eller app + användarautentisering kan användas med Partnercenter. Det finns dock två viktiga punkter som måste beaktas

  • Använd multifaktorautentisering vid åtkomst till Partnercenter-API:et med hjälp av app - och användarautentisering. Mer information om den här ändringen finns i Aktivera säker programmodell.

  • Det är inte alla åtgärder som partnercenter-API:et stöder endast autentisering av appar. Det finns vissa scenarier där du måste använda app - och användarautentisering. Under rubriken Förutsättningar för varje artikel hittar du dokumentation som anger om endast appautentisering, app + användarautentisering eller båda stöds.

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.

Inledande installation

  1. Till att börja med måste du se till att du har både ett primärt Partnercenter-konto och ett partnercenterkonto för integreringssandbox-miljö. Mer information finns i Konfigurera Partnercenter-konton för API-åtkomst. Anteckna registrerings-ID och hemlighet för Microsoft Entra-appen (klienthemlighet krävs endast för appidentifiering) för både ditt primära konto och ditt integrations sandbox-konto.

  2. Logga in på Microsoft Entra-ID från Azure Portal. I behörigheter till andra program anger du behörigheter för Windows Azure Active Directory till Delegerade behörigheter och väljer både Åtkomst till katalogen som inloggad användare och Logga in och läs användarprofil.

  3. Lägg till program i Azure Portal. Sök efter "Microsoft Partner Center", som är Microsoft Partner Center-programmet. Ange delegerade behörigheter till Åtkomst till Partnercenter-API:et. Om du använder Partnercenter för Microsoft Cloud for US Government är det här steget obligatoriskt. Om du använder den globala partnercenterinstansen är det här steget valfritt. CSP-partner kan använda apphanteringsfunktionen i Partnercenter för att kringgå det här steget för global partnercenterinstans.

Endast appautentisering

Om du vill använda appautentisering för att få åtkomst till PARTNERCENTER REST API, .NET API, Java API eller PowerShell-modulen kan du göra det med hjälp av följande instruktioner.

.NET (endast appautentisering)

public static IAggregatePartner GetPartnerCenterTokenUsingAppCredentials()
{
    IPartnerCredentials partnerCredentials =
        PartnerCredentials.Instance.GenerateByApplicationCredentials(
            PartnerApplicationConfiguration.ApplicationId,
            PartnerApplicationConfiguration.ApplicationSecret,
            PartnerApplicationConfiguration.ApplicationDomain);

    // Create operations instance with partnerCredentials.
    return PartnerService.Instance.CreatePartnerOperations(partnerCredentials);
}

Java (endast appautentisering)

Java SDK för Partnercenter kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.

public IAggregatePartner getAppPartnerOperations()
{
    IPartnerCredentials appCredentials =
        PartnerCredentials.getInstance().generateByApplicationCredentials(
        PartnerApplicationConfiguration.getApplicationId(),
        PartnerApplicationConfiguration.getApplicationSecret(),
        PartnerApplicationConfiguration.getApplicationDomain());

    return PartnerService.getInstance().createPartnerOperations( appCredentials );
}

REST (endast appautentisering)

REST-begäran

POST https://login.microsoftonline.com/{tenantId}/oauth2/token HTTP/1.1
Accept: application/json
return-client-request-id: true
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Host: login.microsoftonline.com
Content-Length: 194
Expect: 100-continue

resource=https%3A%2F%2Fgraph.windows.net&client_id={client-id-here}&client_secret={client-secret-here}&grant_type=client_credentials

REST-svar

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 1406

{"token_type":"Bearer","expires_in":"3600","ext_expires_in":"3600","expires_on":"1546469802","not_before":"1546465902","resource":"https://graph.windows.net","access_token":"value-has-been-removed"}

App - och användarautentisering

Den säkra programmodellen används nu för att tillhandahålla säker, skalbar och framtidssäker autentisering för PARTNER Center API-åtkomst. Den här metoden förbättrar säkerheten genom att använda moderna autentiseringsmekanismer, till exempel endast app- och app+användaråtkomsttoken via Azure AD. Mer information finns i Aktivera säker programmodell.

Partnermedgivandeprocessen är en interaktiv process där partnern autentiserar med multifaktorautentisering, samtycker till programmet och en uppdateringstoken lagras på en säker lagringsplats, till exempel Azure Key Vault. Vi rekommenderar att ett dedikerat konto i integrationssyfte används för den här processen.

Viktigt!

Lämplig multifaktorautentiseringslösning bör aktiveras för det tjänstkonto som används i partnermedgivandeprocessen. Om den inte är det är den resulterande uppdateringstoken inte kompatibel med säkerhetskrav.

Exempel för app - och användarautentisering

Partnermedgivandeprocessen kan utföras på många sätt. För att hjälpa partner att förstå hur de utför varje nödvändig åtgärd har vi utvecklat följande exempel. När du implementerar rätt lösning i din miljö är det viktigt att du utvecklar en lösning som är kompatibel med dina kodningsstandarder och säkerhetsprinciper.

.NET (app+användarautentisering)

Exempelprojektet för partnermedgivande visar hur du använder en webbplats som utvecklats med ASP.NET för att samla in medgivande, begära en uppdateringstoken och lagra den på ett säkert sätt i Azure Key Vault. Utför följande steg för att skapa nödvändiga förutsättningar för det här exemplet.

  1. Skapa en instans av Azure Key Vault med hjälp av Azure Portal eller följande PowerShell-kommandon. Innan du kör kommandot måste du ändra parametervärdena i enlighet med detta. Valvnamnet måste vara unikt.

    Login-AzureRmAccount
    
    # Create a new resource group
    New-AzureRmResourceGroup -Name ContosoResourceGroup -Location EastUS
    
    New-AzureRmKeyVault -Name 'Contoso-Vault' -ResourceGroupName 'ContosoResourceGroup' -Location 'East US'
    

    Mer information om hur du skapar ett Azure Key Vault finns i Snabbstart: Ange och hämta en hemlighet från Azure Key Vault med hjälp av Azure Portal eller snabbstart: Ange och hämta en hemlighet från Azure Key Vault med hjälp av PowerShell. Ange och hämta sedan en hemlighet.

  2. Skapa ett Microsoft Entra-program och en nyckel med hjälp av Azure Portal eller följande kommandon.

    Connect-MgGraph -Scopes "Application.ReadWrite.OwnedBy"
    
    $Context = Get-MgContext
    
    $app = New-MgApplication -DisplayName 'My Vault Access App' -Web @{ RedirectUris = 'https://$($Context.TenantId)/$((New-Guid).ToString())' }
    $password = Add-MgApplicationPassword -ApplicationId $app.AppId
    
    Write-Host "ApplicationId       = $($app.AppId)"
    Write-Host "ApplicationSecret   = $($password.SecretText)"
    

    Observera programidentifieraren och hemliga värden eftersom de kommer att användas i stegen nedan.

  3. Ge det nyligen skapade Microsoft Entra-programmet behörighet att läsa hemligheter med hjälp av Azure Portal eller följande kommandon.

    # Connect to Microsoft Graph
    Connect-MgGraph -Scopes "User.Read"
    
    # Get the application
    $app = Get-MgApplication -Filter "appId eq 'ENTER-APP-ID-HERE'"
    
    # Set the Key Vault access policy
    Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -ObjectId $app.Id -PermissionsToSecrets get
    
  4. Skapa ett Microsoft Entra-program som har konfigurerats för Partnercenter. Utför följande åtgärder för att slutföra det här steget.

    • Bläddra till apphanteringsfunktionen i Partnercenter
    • Välj Lägg till ny webbapp för att skapa ett nytt Microsoft Entra-program .

    Se till att dokumentera app-ID, konto-ID*och nyckelvärden eftersom de kommer att användas i stegen nedan.

  5. Klona lagringsplatsen Partner-Center-DotNet-Samples med hjälp av Visual Studio eller följande kommando.

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  6. Öppna PartnerConsent-projektet som finns i Partner-Center-DotNet-Samples\secure-app-model\keyvault katalogen.

  7. Fyll i programinställningarna som finns i web.config

    <!-- AppID that represents CSP application -->
    <add key="ida:CSPApplicationId" value="" />
    <!--
        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="" />
    
    <!--
        Endpoint address for the instance of Azure KeyVault. This is
        the DNS Name for the instance of Key Vault that you provisioned.
     -->
    <add key="KeyVaultEndpoint" value="" />
    
    <!-- App ID that is given access for KeyVault to store refresh tokens -->
    <add key="ida:KeyVaultClientId" value="" />
    
    <!--
        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="" />
    

    Viktigt!

    Känslig information, till exempel programhemligheter, bör inte lagras i konfigurationsfiler. Det gjordes här eftersom det här är ett exempelprogram. Med ditt produktionsprogram rekommenderar vi starkt att du använder certifikatbaserad autentisering. Mer information finns i Certifikatautentiseringsuppgifter för programautentisering.

  8. När du kör det här exempelprojektet uppmanas du att ange autentisering. När du har autentiserats begärs en åtkomsttoken från Microsoft Entra-ID. Informationen som returneras från Microsoft Entra-ID:t innehåller en uppdateringstoken som lagras i den konfigurerade instansen av Azure Key Vault.

Java (app+användarautentisering)

Exempelprojektet för partnermedgivande visar hur du använder en webbplats som utvecklats med hjälp av JSP för att samla in medgivande, begära en uppdateringstoken och skydda lagringen i Azure Key Vault. Utför följande för att skapa nödvändiga förutsättningar för det här exemplet.

  1. Skapa en instans av Azure Key Vault med hjälp av Azure Portal eller följande PowerShell-kommandon. Innan du kör kommandot måste du ändra parametervärdena i enlighet med detta. Valvnamnet måste vara unikt.

    Login-AzureRmAccount
    
    # Create a new resource group
    New-AzureRmResourceGroup -Name ContosoResourceGroup -Location EastUS
    
    New-AzureRmKeyVault -Name 'Contoso-Vault' -ResourceGroupName 'ContosoResourceGroup' -Location 'East US'
    

    Mer information om hur du skapar ett Azure Key Vault finns i Snabbstart: Ange och hämta en hemlighet från Azure Key Vault med hjälp av Azure Portal eller snabbstart: Ange och hämta en hemlighet från Azure Key Vault med hjälp av PowerShell.

  2. Skapa ett Microsoft Entra-program och en nyckel med hjälp av Azure Portal eller följande kommandon.

    Connect-MgGraph -Scopes "Application.ReadWrite.OwnedBy"
    
    $Context = Get-MgContext
    
    $app = New-MgApplication -DisplayName 'My Vault Access App' -IdentifierUri 'https://$($Context.TenantDomain)/$((New-Guid).ToString())'
    $password = Add-MgApplicationPassword -ApplicationId $app.AppId
    
    Write-Host "ApplicationId       = $($app.AppId)"
    Write-Host "ApplicationSecret   = $($password.SecretText)"
    

    Se till att dokumentera programidentifieraren och hemliga värden eftersom de kommer att användas i stegen nedan.

  3. Ge det nyligen skapade Microsoft Entra-programmet behörighet att läsa hemligheter med hjälp av Azure Portal eller följande kommandon.

    Connect-MgGraph -Scopes "User.Read"
    $app = Get-MgApplication -Filter "appId eq 'ENTER-APP-ID-HERE'"
    
    Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -ObjectId $app.Id -PermissionsToSecrets get
    
  4. Skapa ett Microsoft Entra-program som har konfigurerats för Partnercenter. Utför följande för att slutföra det här steget.

    • Bläddra till apphanteringsfunktionen i Partnercenter
    • Välj Lägg till ny webbapp för att skapa ett nytt Microsoft Entra-program .

    Se till att dokumentera app-ID, konto-ID*och nyckelvärden eftersom de kommer att användas i stegen nedan.

  5. Klona lagringsplatsen Partner-Center-Java-Samples med hjälp av följande kommando

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  6. Öppna PartnerConsent-projektet som finns i Partner-Center-Java-Samples\secure-app-model\keyvault katalogen.

  7. Fyll i programinställningarna som finns i filen web.xml

    <filter>
        <filter-name>AuthenticationFilter</filter-name>
        <filter-class>com.microsoft.store.samples.partnerconsent.security.AuthenticationFilter</filter-class>
        <init-param>
            <param-name>client_id</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>client_secret</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>keyvault_base_url</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>keyvault_client_id</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>keyvault_client_secret</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>keyvault_certifcate_path</param-name>
            <param-value></param-value>
        </init-param>
    </filter>
    

    Viktigt!

    Känslig information som programhemligheter bör inte lagras i konfigurationsfiler. Det gjordes här eftersom det här är ett exempelprogram. Med ditt produktionsprogram rekommenderar vi starkt att du använder certifikatbaserad autentisering. Mer information finns i Key Vault-certifikatautentisering.

  8. När du kör det här exempelprojektet uppmanas du att ange autentisering. När du har autentiserats begärs en åtkomsttoken från Microsoft Entra-ID. Informationen som returneras från Microsoft Entra-ID:t innehåller en uppdateringstoken som lagras i den konfigurerade instansen av Azure Key Vault.

Molnlösningsleverantör autentisering

Molnlösningsleverantör partner kan använda uppdateringstoken som erhålls via partnermedgivandeprocessen.

Exempel för Molnlösningsleverantör autentisering

För att hjälpa partner att förstå hur de utför varje nödvändig åtgärd har vi utvecklat följande exempel. När du implementerar rätt lösning i din miljö är det viktigt att du utvecklar en lösning som är kompatibel med dina kodningsstandarder och säkerhetsprinciper.

.NET (CSP-autentisering)

  1. Om du inte redan har gjort det utför du partnermedgivandeprocessen.

  2. Klona lagringsplatsen Partner-Center-DotNet-Samples med hjälp av Visual Studio eller följande kommando

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. Öppna projektet som CSPApplication finns i Partner-Center-DotNet-Samples\secure-app-model\keyvault katalogen.

  4. Uppdatera programinställningarna som finns i filen App.config .

    <!-- AppID that represents CSP application -->
    <add key="ida:CSPApplicationId" value="" />
    <!--
        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="" />
    
    <!-- Endpoint address for the instance of Azure KeyVault -->
    <add key="KeyVaultEndpoint" value="" />
    
    <!-- AppID that is given access for keyvault to store the refresh tokens -->
    <add key="ida:KeyVaultClientId" value="" />
    
    <!--
        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="" />
    
  5. Ange lämpliga värden för variablerna PartnerId och CustomerId som finns i filen Program.cs .

    // The following properties indicate which partner and customer context the calls are going to be made.
    string PartnerId = "<Partner tenant id>";
    string CustomerId = "<Customer tenant id>";
    
  6. När du kör det här exempelprojektet hämtar det uppdateringstoken som erhölls under partnermedgivandeprocessen. Sedan begär den en åtkomsttoken för att interagera med Partnercenter SDK för partnerns räkning. Slutligen begär den en åtkomsttoken för att interagera med Microsoft Graph för den angivna kunden.

Java (CSP-autentisering)

  1. Om du inte redan har gjort det utför du partnermedgivandeprocessen.

  2. Klona lagringsplatsen Partner-Center-Java-Samples med hjälp av Visual Studio eller följande kommando

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. Öppna projektet som cspsample finns i Partner-Center-Java-Samples\secure-app-model\keyvault katalogen.

  4. Uppdatera programinställningarna som finns i filen application.properties .

    azuread.authority=https://login.microsoftonline.com
    keyvault.baseurl=
    keyvault.clientId=
    keyvault.clientSecret=
    partnercenter.accountId=
    partnercenter.clientId=
    partnercenter.clientSecret=
    
  5. När du kör det här exempelprojektet hämtar det uppdateringstoken som erhölls under partnermedgivandeprocessen. Sedan begär den en åtkomsttoken för att interagera med Partnercenter SDK för partnerns räkning.

  6. Valfritt – avkommentera funktionen RunAzureTask och RunGraphTask om du vill se hur du interagerar med Azure Resource Manager och Microsoft Graph för kundens räkning.

Kontrollpanelen Providerautentisering

Kontrollpanelens leverantörer måste låta varje partner som de stöder utföra partnermedgivandeprocessen . När det har slutförts används uppdateringstoken som hämtats via den processen för att komma åt REST-API:et för Partnercenter och .NET API.

Kommentar

Kontrollpanelens leverantörer bör minst ha rollen Molnprogramadministratör i kundens klientorganisation.

Exempel för autentisering med molnpanelsprovider

För att hjälpa kontrollpanelens leverantörer att förstå hur de utför varje nödvändig åtgärd har vi utvecklat följande exempel. När du implementerar rätt lösning i din miljö är det viktigt att du utvecklar en lösning som är kompatibel med dina kodningsstandarder och säkerhetsprinciper.

.NET (CPV-autentisering)

  1. Utveckla och distribuera en process för Molnlösningsleverantör partner för att ge lämpligt medgivande. Mer information finns i partnermedgivande.

    Viktigt!

    Användarautentiseringsuppgifter från en Molnlösningsleverantör partner ska inte lagras. Uppdateringstoken som erhålls via partnermedgivandeprocessen ska lagras och användas för att begära åtkomsttoken för att interagera med alla Microsoft-API:er.

  2. Klona lagringsplatsen Partner-Center-DotNet-Samples med hjälp av Visual Studio eller följande kommando

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. Öppna projektet som CPVApplication finns i Partner-Center-DotNet-Samples\secure-app-model\keyvault katalogen.

  4. Uppdatera programinställningarna som finns i filen App.config .

    <!-- AppID that represents Control panel vendor application -->
    <add key="ida:CPVApplicationId" value="" />
    
    <!--
        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="" />
    
    <!-- Endpoint address for the instance of Azure KeyVault -->
    <add key="KeyVaultEndpoint" value="" />
    
    <!-- AppID that is given access for keyvault to store the refresh tokens -->
    <add key="ida:KeyVaultClientId" value="" />
    
    <!--
        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="" />
    
  5. Ange lämpliga värden för variablerna PartnerId och CustomerId som finns i filen Program.cs .

    // The following properties indicate which partner and customer context the calls are going to be made.
    string PartnerId = "<Partner tenant id>";
    string CustomerId = "<Customer tenant id>";
    
  6. När du kör det här exempelprojektet hämtas uppdateringstoken för den angivna partnern. Sedan begär den en åtkomsttoken för att få åtkomst till Partnercenter och Microsoft Graph för partnerns räkning. Nästa uppgift som den utför är att ta bort och skapa behörighetsbidrag till kundklientorganisationen. Eftersom det inte finns någon relation mellan kontrollpanelens leverantör och kunden måste dessa behörigheter läggas till med partnercenter-API:et. I följande exempel visas hur du gör det.

    JObject contents = new JObject
    {
        // Provide your application display name
        ["displayName"] = "CPV Marketplace",
    
        // Provide your application id
        ["applicationId"] = CPVApplicationId,
    
        // Provide your application grants
        ["applicationGrants"] = new JArray(
            JObject.Parse("{\"enterpriseApplicationId\": \"00000003-0000-0000-c000-000000000000\", \"scope\":\"Domain.ReadWrite.All,User.ReadWrite.All,Directory.Read.All\"}"), // for Microsoft Graph access,  Directory.Read.All
            JObject.Parse("{\"enterpriseApplicationId\": \"797f4846-ba00-4fd7-ba43-dac1f8f63013\", \"scope\":\"user_impersonation\"}")) // for Azure Resource Manager access
    };
    
    /**
     * The following steps have to be performed once per customer tenant if your application is
     * a control panel vendor application and requires customer tenant Microsoft Graph access.
     **/
    
    // delete the previous grant into customer tenant
    JObject consentDeletion = await ApiCalls.DeleteAsync(
        tokenPartnerResult.Item1,
        string.Format("https://api.partnercenter.microsoft.com/v1/customers/{0}/applicationconsents/{1}", CustomerId, CPVApplicationId));
    
    // create new grants for the application given the setting in application grants payload.
    JObject consentCreation = await ApiCalls.PostAsync(
        tokenPartnerResult.Item1,
        string.Format("https://api.partnercenter.microsoft.com/v1/customers/{0}/applicationconsents", CustomerId),
        contents.ToString());
    

När dessa behörigheter har upprättats utför exemplet åtgärder med hjälp av Microsoft Graph för kundens räkning.

Kommentar

Mer information om Microsoft Graph finns i Översikt över Microsoft Graph.

Java (CPV-autentisering)

  1. Utveckla och distribuera en process för Molnlösningsleverantör partner för att ge lämpligt medgivande. Mer information och ett exempel finns i partnermedgivandet.

    Viktigt!

    Användarautentiseringsuppgifter från en Molnlösningsleverantör partner ska inte lagras. Uppdateringstoken som erhålls via partnermedgivandeprocessen ska lagras och användas för att begära åtkomsttoken för att interagera med alla Microsoft-API:er.

  2. Klona lagringsplatsen Partner-Center-Java-Samples med hjälp av följande kommando

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. Öppna projektet som cpvsample finns i Partner-Center-Java-Samples\secure-app-model\keyvault katalogen.

  4. Uppdatera programinställningarna som finns i filen application.properties .

    azuread.authority=https://login.microsoftonline.com
    keyvault.baseurl=
    keyvault.clientId=
    keyvault.clientSecret=
    partnercenter.accountId=
    partnercenter.clientId=
    partnercenter.clientSecret=
    partnercenter.displayName=
    

    Värdet för partnercenter.displayName bör vara visningsnamnet för marketplace-programmet.

  5. Ange lämpliga värden för variablerna partnerId och customerId som finns i filen Program.java .

    partnerId = "SPECIFY-THE-PARTNER-TENANT-ID-HERE";
    customerId = "SPECIFY-THE-CUSTOMER-TENANT-ID-HERE";
    
  6. När du kör det här exempelprojektet hämtas uppdateringstoken för den angivna partnern. Sedan begär den en åtkomsttoken för att få åtkomst till Partnercenter för partnerns räkning. Nästa uppgift som den utför är att ta bort och skapa behörighetsbidrag till kundklientorganisationen. Eftersom det inte finns någon relation mellan kontrollpanelens leverantör och kunden måste dessa behörigheter läggas till med partnercenter-API:et. I följande exempel visas hur du beviljar behörigheterna.

    ApplicationGrant azureAppGrant = new ApplicationGrant();
    
    azureAppGrant.setEnterpriseApplication("797f4846-ba00-4fd7-ba43-dac1f8f63013");
    azureAppGrant.setScope("user_impersonation");
    
    ApplicationGrant graphAppGrant = new ApplicationGrant();
    
    graphAppGrant.setEnterpriseApplication("00000002-0000-0000-c000-000000000000");
    graphAppGrant.setScope("Domain.ReadWrite.All,User.ReadWrite.All,Directory.Read.All");
    
    ApplicationConsent consent = new ApplicationConsent();
    
    consent.setApplicationGrants(Arrays.asList(azureAppGrant, graphAppGrant));
    consent.setApplicationId(properties.getProperty(PropertyName.PARTNER_CENTER_CLIENT_ID));
    consent.setDisplayName(properties.getProperty(PropertyName.PARTNER_CENTER_DISPLAY_NAME));
    
    // Deletes the existing grant into the customer it is present.
    partnerOperations.getServiceClient().delete(
        partnerOperations,
        new TypeReference<ApplicationConsent>(){},
        MessageFormat.format(
            "customers/{0}/applicationconsents/{1}",
            customerId,
            properties.getProperty(PropertyName.PARTNER_CENTER_CLIENT_ID)));
    
    // Consent to the defined applications and the respective scopes.
    partnerOperations.getServiceClient().post(
        partnerOperations,
        new TypeReference<ApplicationConsent>(){},
        MessageFormat.format(
            "customers/{0}/applicationconsents",
            customerId),
        consent);
    

Avkommentera funktionen RunAzureTask och RunGraphTask om du vill se hur du interagerar med Azure Resource Manager och Microsoft Graph för kundens räkning.