Ověřování v Partnerském centru

Platí pro: Partnerské centrum | Partnerské centrum provozované společností 21Vianet | Partnerské centrum pro Microsoft Cloud pro státní správu USA

Partnerské centrum používá k ověřování Microsoft Entra ID. Při práci s rozhraním API, sadou SDK nebo modulem PowerShellu Partnerského centra musíte správně nakonfigurovat aplikaci Microsoft Entra a pak požádat o přístupový token. Přístupové tokeny získané pouze pomocí aplikace nebo ověřování aplikací a uživatelů se dají použít v Partnerském centru. Je však potřeba zvážit dvě důležité položky.

  • Vícefaktorové ověřování použijte při přístupu k rozhraní API Partnerského centra pomocí ověřování aplikací a uživatelů. Další informace o této změně najdete v tématu Povolení zabezpečeného aplikačního modelu.

  • Ne všechny operace, které rozhraní API Partnerského centra podporuje pouze ověřování aplikací. Existují určité scénáře, kdy budete muset použít ověřování aplikací a uživatelů. V části Požadavky v jednotlivých článcích najdete dokumentaci, která uvádí, jestli se podporují jenom ověřování aplikací, aplikace a ověřování uživatelů nebo obojí.

Důležité

Azure Active Directory (Azure AD) Graph je od 30. června 2023 zastaralý. V budoucnu nepracujeme do Azure AD Graphu žádné další investice. Rozhraní Azure AD Graph API nemají žádné závazky sla ani údržby nad rámec oprav souvisejících se zabezpečením. Investice do nových funkcí a funkcí budou provedeny pouze v Microsoft Graphu.

Azure AD Graph vyřadíme v přírůstkových krocích, abyste měli dostatek času na migraci aplikací do rozhraní Microsoft Graph API. Později, kdy budeme oznamovat, zablokujeme vytváření nových aplikací pomocí Azure AD Graphu.

Další informace najdete v tématu Důležité: Vyřazení azure AD Graphu a vyřazení modulu PowerShellu.

Počáteční nastavení

  1. Abyste mohli začít, musíte se ujistit, že máte primární účet Partnerského centra i účet Partnerského centra pro integraci. Další informace najdete v tématu Nastavení účtů Partnerského centra pro přístup k rozhraní API. Poznamenejte si ID registrace aplikace Microsoft Entra a tajný klíč (tajný klíč klienta se vyžaduje jenom pro identifikaci aplikace) pro váš primární účet i účet sandboxu integrace.

  2. Přihlaste se k ID Microsoft Entra z webu Azure Portal. V oprávněních pro jiné aplikace nastavte oprávnění pro Windows Azure Active Directory na Delegovaná oprávnění a vyberte přístup k adresáři jako přihlášený uživatel a přihlásit se a číst profil uživatele.

  3. Na webu Azure Portal přidejte aplikaci. Vyhledejte "Partnerské centrum Microsoftu", což je aplikace Microsoft Partner Center. Nastavte delegovaná oprávnění pro přístup k rozhraní API Partnerského centra. Pokud používáte Partnerské centrum pro Microsoft Cloud pro státní správu USA, je tento krok povinný. Pokud používáte globální instanci Partnerského centra, je tento krok volitelný. Partneři CSP můžou pomocí funkce Správa aplikací v Partnerském centru obejít tento krok pro globální instanci Partnerského centra.

Ověřování jen pro aplikace

Pokud chcete pro přístup k rozhraní REST API partnerského centra, rozhraní .NET API, rozhraní Java API nebo modulu PowerShellu používat ověřování jen pro aplikace, můžete to provést pomocí následujících pokynů.

.NET (ověřování jen pro aplikace)

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 (ověřování jen pro aplikace)

Sadu Java SDK Partnerského centra je možné použít ke správě prostředků Partnerského centra. Jedná se o opensourcový projekt spravovaný komunitou partnerů, který oficiálně nepodporuje Microsoft. Pokud narazíte na problém, můžete získat pomoc od komunity nebo otevřít problém na GitHubu .

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

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

REST (ověřování jen pro aplikace)

Požadavek REST

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

Odpověď REST

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

Ověřování aplikací a uživatelů

V minulosti se k vyžádání přístupového tokenu pro použití s rozhraním REST API Partnerského centra, rozhraním .NET API, rozhraním Java API nebo modulem PowerShellu použilo udělení přihlašovacích údajů vlastníka prostředku. Tato metoda se použila k vyžádání přístupového tokenu z ID Microsoft Entra pomocí identifikátoru klienta a přihlašovacích údajů uživatele. Tento přístup už ale nebude fungovat, protože Partnerské centrum vyžaduje vícefaktorové ověřování při použití ověřování aplikací a uživatelů. Pro splnění tohoto požadavku společnost Microsoft zavedla zabezpečenou škálovatelnou architekturu pro ověřování partnerů CSP (Cloud Solution Provider) a dodavatelů ovládacích panelů (CPV) pomocí vícefaktorového ověřování. Tato architektura se označuje jako Model zabezpečené aplikace a skládá se z procesu souhlasu a žádosti o přístupový token pomocí obnovovacího tokenu.

Proces souhlasu partnera je interaktivní proces, kdy se partner ověřuje pomocí vícefaktorového ověřování, souhlasí s aplikací a obnovovací token je uložený v zabezpečeném úložišti, jako je Azure Key Vault. Pro účely integrace doporučujeme použít vyhrazený účet.

Důležité

Pro účet služby používaný v procesu souhlasu partnera by mělo být povolené příslušné vícefaktorové řešení ověřování. Pokud tomu tak není, výsledný obnovovací token nebude vyhovovat požadavkům na zabezpečení.

Ukázky pro ověřování aplikací a uživatelů

Proces souhlasu partnera je možné provádět mnoha způsoby. Abychom partnerům pomohli pochopit, jak provést každou požadovanou operaci, vytvořili jsme následující ukázky. Při implementaci vhodného řešení ve vašem prostředí je důležité vytvořit řešení, které si stěžuje na vaše standardy kódování a zásady zabezpečení.

.NET (ověřování aplikací a uživatelů)

Ukázkový projekt souhlasu partnera ukazuje, jak využít web vyvinutý pomocí ASP.NET k zachycení souhlasu, vyžádání obnovovacího tokenu a bezpečnému uložení ve službě Azure Key Vault. Provedením následujících kroků vytvořte požadované požadavky pro tuto ukázku.

  1. Pomocí webu Azure Portal nebo následujících příkazů PowerShellu vytvořte instanci služby Azure Key Vault. Před spuštěním příkazu nezapomeňte odpovídajícím způsobem upravit hodnoty parametrů. Název trezoru musí být jedinečný.

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

    Další informace o vytvoření služby Azure Key Vault najdete v tématu Rychlý start: Nastavení a načtení tajného klíče ze služby Azure Key Vault pomocí webu Azure Portal nebo rychlého startu: Nastavení a načtení tajného klíče ze služby Azure Key Vault pomocí PowerShellu. Pak nastavte a načtěte tajný klíč.

  2. Pomocí webu Azure Portal nebo následujících příkazů vytvořte aplikaci Microsoft Entra a klíč.

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

    Nezapomeňte si poznamenat identifikátor aplikace a tajné hodnoty, protože se použijí v následujících krocích.

  3. Udělte nově vytvořené aplikaci Microsoft Entra oprávnění ke čtení tajných kódů pomocí webu Azure Portal nebo následujících příkazů.

    # 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. Vytvořte aplikaci Microsoft Entra, která je nakonfigurovaná pro Partnerské centrum. Provedením následujících akcí proveďte tento krok.

    • Přejděte do funkce správa aplikací v Partnerském centru.
    • Vyberte Přidat novou webovou aplikaci a vytvořte novou aplikaci Microsoft Entra.

    Nezapomeňte zdokumentovat HODNOTY ID aplikace, ID účtu* a Klíče , protože se použijí v následujících krocích.

  5. Naklonujte úložiště Partner-Center-DotNet-Samples pomocí sady Visual Studio nebo následujícího příkazu.

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  6. Otevřete projekt PartnerConsent nalezený v adresářiPartner-Center-DotNet-Samples\secure-app-model\keyvault.

  7. Naplnění nastavení aplikace nalezené v souboru 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="" />
    

    Důležité

    Citlivé informace, jako jsou tajné kódy aplikací, by neměly být uloženy v konfiguračních souborech. Provedli jsme to tady, protože se jedná o ukázkovou aplikaci. V produkční aplikaci důrazně doporučujeme používat ověřování založené na certifikátech. Další informace najdete v tématu Přihlašovací údaje certifikátu pro ověřování aplikací.

  8. Když spustíte tento ukázkový projekt, zobrazí se výzva k ověření. Po úspěšném ověření se z ID Microsoft Entra vyžádá přístupový token. Informace vrácené z ID Microsoft Entra zahrnují obnovovací token uložený v nakonfigurované instanci služby Azure Key Vault.

Java (ověřování aplikací a uživatelů)

Ukázkový projekt souhlasu partnera ukazuje, jak využít web vyvinutý pomocí JSP k zachycení souhlasu, vyžádání obnovovacího tokenu a zabezpečeného úložiště ve službě Azure Key Vault. Provedením následujícího příkazu vytvořte požadované požadavky pro tuto ukázku.

  1. Pomocí webu Azure Portal nebo následujících příkazů PowerShellu vytvořte instanci služby Azure Key Vault. Před spuštěním příkazu nezapomeňte odpovídajícím způsobem upravit hodnoty parametrů. Název trezoru musí být jedinečný.

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

    Další informace o vytvoření služby Azure Key Vault najdete v tématu Rychlý start: Nastavení a načtení tajného klíče ze služby Azure Key Vault pomocí webu Azure Portal nebo rychlého startu: Nastavení a načtení tajného klíče ze služby Azure Key Vault pomocí PowerShellu.

  2. Pomocí webu Azure Portal nebo následujících příkazů vytvořte aplikaci Microsoft Entra a klíč.

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

    Nezapomeňte zdokumentovat identifikátor aplikace a tajné hodnoty, protože se použijí v následujících krocích.

  3. Udělte nově vytvořené aplikaci Microsoft Entra oprávnění ke čtení tajných kódů pomocí webu Azure Portal nebo následujících příkazů.

    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. Vytvořte aplikaci Microsoft Entra, která je nakonfigurovaná pro Partnerské centrum. Provedením následujícího kroku proveďte tento krok.

    • Přejděte do funkce správa aplikací v Partnerském centru.
    • Vyberte Přidat novou webovou aplikaci a vytvořte novou aplikaci Microsoft Entra.

    Nezapomeňte zdokumentovat HODNOTY ID aplikace, ID účtu* a Klíče , protože se použijí v následujících krocích.

  5. Naklonujte úložiště Partner-Center-Java-Samples pomocí následujícího příkazu.

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  6. Otevřete projekt PartnerConsent nalezený v adresářiPartner-Center-Java-Samples\secure-app-model\keyvault.

  7. Naplnění nastavení aplikace nalezené v souboru 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>
    

    Důležité

    Citlivé informace, jako jsou tajné kódy aplikace, by neměly být uloženy v konfiguračních souborech. Provedli jsme to tady, protože se jedná o ukázkovou aplikaci. U produkční aplikace důrazně doporučujeme používat ověřování založené na certifikátech. Další informace najdete v tématu Ověřování certifikátů služby Key Vault.

  8. Když spustíte tento ukázkový projekt, zobrazí se výzva k ověření. Po úspěšném ověření se z ID Microsoft Entra vyžádá přístupový token. Informace vrácené z ID Microsoft Entra zahrnují obnovovací token uložený v nakonfigurované instanci služby Azure Key Vault.

Ověřování poskytovatele cloudových řešení

Partneři Cloud Solution Provider můžou používat obnovovací token získaný prostřednictvím procesu souhlasu partnera.

Ukázky pro ověřování poskytovatele cloudových řešení

Abychom partnerům pomohli pochopit, jak provést každou požadovanou operaci, vytvořili jsme následující ukázky. Při implementaci vhodného řešení ve vašem prostředí je důležité vytvořit řešení, které si stěžuje na vaše standardy kódování a zásady zabezpečení.

.NET (ověřování CSP)

  1. Pokud jste to ještě neudělali, proveďte proces souhlasu partnera.

  2. Klonování úložiště Partner-Center-DotNet-Samples pomocí sady Visual Studio nebo následujícího příkazu

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. CSPApplication Otevřete projekt nalezený v adresářiPartner-Center-DotNet-Samples\secure-app-model\keyvault.

  4. Aktualizujte nastavení aplikace nalezené v souboru 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. Nastavte příslušné hodnoty pro proměnné PartnerId a CustomerId nalezené v souboru 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. Při spuštění tohoto ukázkového projektu získá obnovovací token získaný během procesu souhlasu partnera. Potom požádá o přístupový token pro interakci se sadou SDK Partnerského centra jménem partnera. Nakonec požádá o přístupový token pro interakci s Microsoft Graphem jménem zadaného zákazníka.

Java (ověřování CSP)

  1. Pokud jste to ještě neudělali, proveďte proces souhlasu partnera.

  2. Naklonujte úložiště Partner-Center-Java-Samples pomocí sady Visual Studio nebo následujícího příkazu.

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. cspsample Otevřete projekt nalezený v adresářiPartner-Center-Java-Samples\secure-app-model\keyvault.

  4. Aktualizujte nastavení aplikace nalezené v souboru application.properties .

    azuread.authority=https://login.microsoftonline.com
    keyvault.baseurl=
    keyvault.clientId=
    keyvault.clientSecret=
    partnercenter.accountId=
    partnercenter.clientId=
    partnercenter.clientSecret=
    
  5. Při spuštění tohoto ukázkového projektu získá obnovovací token získaný během procesu souhlasu partnera. Potom požádá o přístupový token pro interakci se sadou SDK Partnerského centra jménem partnera.

  6. Volitelné – zrušte komentář volání funkce RunAzureTask a RunGraphTask , pokud chcete zjistit, jak interagovat s Azure Resource Managerem a Microsoft Graphem jménem zákazníka.

Ověřování zprostředkovatele Ovládací panely

Dodavatelé ovládacích panelů musí mít každého partnera, který podporuje, provést proces souhlasu partnera. Po dokončení obnovovacího tokenu získaného tímto procesem se použije pro přístup k rozhraní REST API Partnerského centra a rozhraní .NET API.

Poznámka:

Dodavatelé ovládacích panelů by měli mít v tenantovi zákazníka minimálně roli Cloud Application Správa istrator.

Ukázky pro ověřování poskytovatele cloudových panelů

Abychom dodavatelům ovládacích panelů pomohli pochopit, jak provést každou požadovanou operaci, vytvořili jsme následující ukázky. Při implementaci vhodného řešení ve vašem prostředí je důležité vytvořit řešení, které si stěžuje na vaše standardy kódování a zásady zabezpečení.

.NET (ověřování CPV)

  1. Vytvořte a nasaďte proces pro partnery Cloud Solution Provider a poskytněte odpovídající souhlas. Další informace najdete v příkladu souhlasu partnera.

    Důležité

    Přihlašovací údaje uživatele od partnera Cloud Solution Provider by se neměly ukládat. Obnovovací token získaný prostřednictvím procesu souhlasu partnera by se měl uložit a použít k vyžádání přístupových tokenů pro interakci s jakýmkoli rozhraním MICROSOFT API.

  2. Klonování úložiště Partner-Center-DotNet-Samples pomocí sady Visual Studio nebo následujícího příkazu

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. CPVApplication Otevřete projekt nalezený v adresářiPartner-Center-DotNet-Samples\secure-app-model\keyvault.

  4. Aktualizujte nastavení aplikace nalezené v souboru 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. Nastavte příslušné hodnoty pro proměnné PartnerId a CustomerId nalezené v souboru 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. Při spuštění tohoto ukázkového projektu získá obnovovací token pro zadaného partnera. Potom požádá o přístupový token pro přístup k Partnerskému centru a Microsoft Graphu jménem partnera. Dalším úkolem, který provede, je odstranění a vytvoření udělení oprávnění do tenanta zákazníka. Vzhledem k tomu, že mezi dodavatelem ovládacích panelů a zákazníkem neexistuje žádný vztah, je potřeba tato oprávnění přidat pomocí rozhraní API Partnerského centra. Následující příklad ukazuje, jak toho dosáhnout.

    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());
    

Po vytvoření těchto oprávnění ukázka provádí operace pomocí Microsoft Graphu jménem zákazníka.

Poznámka:

Další informace o Microsoft Graphu najdete v přehledu Microsoft Graphu.

Java (ověřování CPV)

  1. Vytvořte a nasaďte proces pro partnery Cloud Solution Provider a poskytněte odpovídající souhlas. Další informace a příklad najdete v souhlasu partnera.

    Důležité

    Přihlašovací údaje uživatele od partnera Cloud Solution Provider by se neměly ukládat. Obnovovací token získaný prostřednictvím procesu souhlasu partnera by se měl uložit a použít k vyžádání přístupových tokenů pro interakci s jakýmkoli rozhraním MICROSOFT API.

  2. Naklonujte úložiště Partner-Center-Java-Samples pomocí následujícího příkazu.

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. cpvsample Otevřete projekt nalezený v adresářiPartner-Center-Java-Samples\secure-app-model\keyvault.

  4. Aktualizujte nastavení aplikace nalezené v souboru application.properties .

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

    Hodnota by partnercenter.displayName měla být zobrazovaný název vaší aplikace marketplace.

  5. Nastavte odpovídající hodnoty pro proměnné partnerId a customerId nalezené v souboru Program.java .

    partnerId = "SPECIFY-THE-PARTNER-TENANT-ID-HERE";
    customerId = "SPECIFY-THE-CUSTOMER-TENANT-ID-HERE";
    
  6. Při spuštění tohoto ukázkového projektu získá obnovovací token pro zadaného partnera. Potom požádá o přístupový token pro přístup k Partnerskému centru jménem partnera. Dalším úkolem, který provede, je odstranění a vytvoření udělení oprávnění do tenanta zákazníka. Vzhledem k tomu, že mezi dodavatelem ovládacích panelů a zákazníkem neexistuje žádný vztah, je potřeba tato oprávnění přidat pomocí rozhraní API Partnerského centra. Následující příklad ukazuje, jak udělit oprávnění.

    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);
    

Odkomentujte volání funkce RunAzureTask a RunGraphTask , pokud chcete zjistit, jak interagovat s Azure Resource Managerem a Microsoft Graphem jménem zákazníka.