Megosztás a következőn keresztül:


Partnerközpont – hitelesítés

A következőre vonatkozik: Partnerközpont | A 21Vianet által üzemeltetett Partnerközpont | Partnerközpont a Microsoft Cloud for US Government számára

A Partnerközpont a Microsoft Entra ID-t használja a hitelesítéshez. Amikor a Partnerközpont API-t, SDK-t vagy PowerShell-modult használja, konfigurálnia kell egy Microsoft Entra-alkalmazást, majd hozzáférési jogkivonatot kell kérnie. A csak alkalmazással vagy alkalmazás+ felhasználóhitelesítéssel beszerzett hozzáférési jogkivonatok a Partnerközpontban használhatók. Azonban két fontos elemet kell figyelembe venni

  • Többtényezős hitelesítés használata a Partnerközpont API alkalmazás+ felhasználóhitelesítés használatával történő elérésekor. A módosítással kapcsolatos további információkért lásd: Biztonságos alkalmazásmodell engedélyezése.

  • A Partnerközpont API nem minden olyan műveletét támogatja, amely csak az alkalmazás hitelesítését támogatja. Vannak olyan esetek, amikor alkalmazás+ felhasználói hitelesítést kell használnia. Az egyes cikkek Előfeltételek fejlécében olyan dokumentációt talál, amely meghatározza, hogy az alkalmazás csak a hitelesítést, az alkalmazás+ felhasználói hitelesítést vagy mindkettőt támogatja-e.

Fontos

Az Azure Active Directory (Azure AD) Graph 2023. június 30-ától elavult. A továbbiakban nem teszünk további befektetéseket az Azure AD Graphban. Az Azure AD Graph API-k nem rendelkeznek SLA-val vagy karbantartási kötelezettségvállalással a biztonsággal kapcsolatos javításokon túl. Az új funkciókba és funkciókba csak a Microsoft Graph-ban lehet befektetni.

Az Azure AD Graphot növekményes lépésekben kivonjuk, hogy elegendő ideje legyen az alkalmazások Microsoft Graph API-kba való migrálására. Egy későbbi időpontban, amikor bejelentjük, letiltjuk az új alkalmazások létrehozását az Azure AD Graph használatával.

További információ: Fontos: Az Azure AD Graph kivonása és a PowerShell-modul elavulása.

Kezdeti beállítás

  1. Először is győződjön meg arról, hogy rendelkezik elsődleges Partnerközpont-fiókkal és integrációs tesztkörnyezeti Partnerközpont-fiókkal is. További információ: Partnerközpont-fiókok beállítása API-hozzáféréshez. Jegyezze fel a Microsoft Entra alkalmazásregisztrációs azonosítóját és titkos kódját (az alkalmazás csak az azonosításhoz szükséges), mind az elsődleges fiókhoz, mind az integrációs tesztkörnyezeti fiókhoz.

  2. Jelentkezzen be a Microsoft Entra-azonosítóba az Azure Portalról. Más alkalmazások engedélyeiben állítsa be a Windows Azure Active Directoryhoz tartozó engedélyeket delegált engedélyekre, és válassza az Access (Hozzáférés a címtárhoz) lehetőséget a bejelentkezett felhasználóként, valamint a Bejelentkezés és a felhasználói profil olvasása lehetőséget.

  3. Az Azure Portalon adja hozzá az alkalmazást. Keressen rá a "Microsoft Partnerközpont" kifejezésre, amely a Microsoft Partnerközpont alkalmazás. Adja meg a Delegált engedélyeket a Partnerközpont API eléréséhez. Ha a Microsoft Cloud for US Government partnerközpontját használja, ez a lépés kötelező. Ha globális Partnerközpont-példányt használ, ez a lépés nem kötelező. A CSP-partnerek a Partnerközpont Alkalmazáskezelés funkciójával megkerülhetik ezt a lépést a Partnerközpont globális példánya esetében.

Csak alkalmazásalapú hitelesítés

Ha csak alkalmazásalapú hitelesítéssel szeretné elérni a Partnerközpont REST API-t, a .NET API-t, a Java API-t vagy a PowerShell-modult, ezt az alábbi utasítások segítségével teheti meg.

.NET (csak alkalmazásalapú hitelesítés)

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 (csak alkalmazásalapú hitelesítés)

A Partnerközpont Java SDK-val kezelheti a Partnerközpont erőforrásait. Ez egy nyílt forráskódú projekt, amelyet a partnerközösség tart fenn, és amelyet a Microsoft hivatalosan nem támogat. Ha problémát tapasztal, segítséget kérhet a közösségtől, vagy problémákat nyithat meg a GitHubon.

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

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

REST (csak alkalmazásalapú hitelesítés)

REST-kérés

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-válasz

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

Alkalmazás+ felhasználóhitelesítés

A Biztonságos alkalmazásmodell mostantól biztonságos, skálázható és időtálló hitelesítést biztosít a Partner Center API-hozzáféréshez. Ez a megközelítés modern hitelesítési mechanizmusokkal, például az azure AD-n keresztüli alkalmazás- és alkalmazás-+felhasználói hozzáférési jogkivonatokkal javítja a biztonságot. További információ: Biztonságos alkalmazásmodell engedélyezése.

A partner-hozzájárulási folyamat egy interaktív folyamat, amelyben a partner többtényezős hitelesítéssel hitelesít, hozzájárul az alkalmazáshoz, és a frissítési jogkivonat egy biztonságos adattárban, például az Azure Key Vaultban van tárolva. Javasoljuk, hogy ehhez a folyamathoz egy dedikált fiókot használjon integrációs célokra.

Fontos

A megfelelő többtényezős hitelesítési megoldást engedélyezni kell a partner hozzájárulási folyamatában használt szolgáltatásfiókhoz. Ha nem, akkor az eredményül kapott frissítési jogkivonat nem felel meg a biztonsági követelményeknek.

Minták alkalmazáshoz és felhasználóhitelesítéshez

A partneri hozzájárulási folyamat többféleképpen is elvégezhető. Annak érdekében, hogy a partnerek megértsék, hogyan hajthatja végre az egyes szükséges műveleteket, az alábbi mintákat fejlesztettük ki. Amikor a megfelelő megoldást implementálja a környezetben, fontos, hogy olyan megoldást dolgozzon ki, amely megfelel a kódolási szabványoknak és a biztonsági szabályzatoknak.

.NET (alkalmazás+felhasználói hitelesítés)

A partneri hozzájárulás mintaprojektje bemutatja, hogyan használható egy ASP.NET használatával létrehozott webhely a hozzájárulás rögzítésére, frissítési jogkivonat kérésére és biztonságos tárolására az Azure Key Vaultban. A minta szükséges előfeltételeinek létrehozásához hajtsa végre az alábbi lépéseket.

  1. Hozzon létre egy Azure Key Vault-példányt az Azure Portal vagy a következő PowerShell-parancsok használatával. A parancs végrehajtása előtt mindenképpen módosítsa ennek megfelelően a paraméterértékeket. A tároló nevének egyedinek kell lennie.

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

    További információ az Azure Key Vault létrehozásáról: Rövid útmutató: Titkos kulcs beállítása és lekérése az Azure Key Vaultból az Azure Portalon vagy rövid útmutató: Titkos kulcs beállítása és lekérése az Azure Key Vaultból a PowerShell használatával. Ezután állítson be és kérjen le egy titkos kulcsot.

  2. Hozzon létre egy Microsoft Entra-alkalmazást és egy kulcsot az Azure Portalon vagy az alábbi parancsokkal.

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

    Ügyeljen arra, hogy jegyezze fel az alkalmazás azonosítóját és titkos értékeit, mert azokat az alábbi lépésekben fogjuk használni.

  3. Adja meg az újonnan létrehozott Microsoft Entra-alkalmazásnak az olvasási titkos kódokra vonatkozó engedélyeket az Azure Portalon vagy az alábbi parancsokkal.

    # 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. Hozzon létre egy Microsoft Entra-alkalmazást, amely a Partnerközponthoz van konfigurálva. A lépés végrehajtásához hajtsa végre az alábbi műveleteket.

    Mindenképpen dokumentálja az alkalmazásazonosítót, a fiókazonosítót* és a kulcsértékeket, mert azokat az alábbi lépésekben fogja használni.

  5. Klónozza a Partner-Center-DotNet-Samples adattárat a Visual Studióval vagy a következő paranccsal.

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  6. Nyissa meg a címtárban Partner-Center-DotNet-Samples\secure-app-model\keyvault található PartnerConsent-projektet.

  7. Töltse ki a web.config alkalmazásban található alkalmazásbeállításokat

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

    Fontos

    A bizalmas információkat, például az alkalmazás titkos kulcsát nem szabad konfigurációs fájlokban tárolni. Ez azért történt meg, mert ez egy mintaalkalmazás. Az éles alkalmazással határozottan javasoljuk, hogy tanúsítványalapú hitelesítést használjon. További információ: Tanúsítvány hitelesítő adatai az alkalmazáshitelesítéshez.

  8. A mintaprojekt futtatásakor a rendszer kéri a hitelesítést. A sikeres hitelesítés után a rendszer hozzáférési jogkivonatot kér a Microsoft Entra-azonosítótól. A Microsoft Entra ID-ból visszaadott információk tartalmazzák az Azure Key Vault konfigurált példányában tárolt frissítési jogkivonatot.

Java (alkalmazás+felhasználói hitelesítés)

A partneri hozzájárulás mintaprojektje bemutatja, hogyan használhatja a JSP használatával létrehozott webhelyet a hozzájárulás rögzítésére, frissítési jogkivonat kérésére és biztonságos tároló használatára az Azure Key Vaultban. Hajtsa végre az alábbiakat a minta szükséges előfeltételeinek létrehozásához.

  1. Hozzon létre egy Azure Key Vault-példányt az Azure Portal vagy a következő PowerShell-parancsok használatával. A parancs végrehajtása előtt mindenképpen módosítsa ennek megfelelően a paraméterértékeket. A tároló nevének egyedinek kell lennie.

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

    További információ az Azure Key Vault létrehozásáról: Rövid útmutató: Titkos kulcs beállítása és lekérése az Azure Key Vaultból az Azure Portalon vagy rövid útmutató: Titkos kulcs beállítása és lekérése az Azure Key Vaultból a PowerShell használatával.

  2. Hozzon létre egy Microsoft Entra-alkalmazást és egy kulcsot az Azure Portalon vagy az alábbi parancsokkal.

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

    Mindenképpen dokumentálja az alkalmazásazonosítót és a titkos értékeket, mert azokat az alábbi lépésekben fogja használni.

  3. Adja meg az újonnan létrehozott Microsoft Entra-alkalmazásnak az olvasási titkos kódokra vonatkozó engedélyeket az Azure Portal vagy az alábbi parancsok használatával.

    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. Hozzon létre egy Microsoft Entra-alkalmazást, amely a Partnerközponthoz van konfigurálva. A lépés végrehajtásához hajtsa végre az alábbi lépéseket.

    Mindenképpen dokumentálja az alkalmazásazonosítót, a fiókazonosítót* és a kulcsértékeket, mert azokat az alábbi lépésekben fogja használni.

  5. Klónozza a Partner-Center-Java-Samples adattárat az alábbi paranccsal

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  6. Nyissa meg a címtárban Partner-Center-Java-Samples\secure-app-model\keyvault található PartnerConsent-projektet.

  7. Töltse ki a web.xml fájlban található alkalmazásbeállításokat

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

    Fontos

    A bizalmas információkat, például az alkalmazás titkos kulcsait nem szabad konfigurációs fájlokban tárolni. Ez azért történt meg, mert ez egy mintaalkalmazás. Az éles alkalmazással határozottan javasoljuk, hogy tanúsítványalapú hitelesítést használjon. További információ: Key Vault-tanúsítványhitelesítés.

  8. A mintaprojekt futtatásakor a rendszer kéri a hitelesítést. A sikeres hitelesítés után a rendszer hozzáférési jogkivonatot kér a Microsoft Entra-azonosítótól. A Microsoft Entra ID-ból visszaadott információk tartalmazzák az Azure Key Vault konfigurált példányában tárolt frissítési jogkivonatot.

Felhőszolgáltató hitelesítés

Felhőszolgáltató partnerek használhatják a partner hozzájárulási folyamatán keresztül beszerzett frissítési jogkivonatot.

Minták Felhőszolgáltató hitelesítéshez

Annak érdekében, hogy a partnerek megértsék, hogyan hajthatja végre az egyes szükséges műveleteket, az alábbi mintákat fejlesztettük ki. Amikor a megfelelő megoldást implementálja a környezetben, fontos, hogy olyan megoldást dolgozzon ki, amely megfelel a kódolási szabványoknak és a biztonsági szabályzatoknak.

.NET (CSP-hitelesítés)

  1. Ha még nem tette meg, hajtsa végre a partner hozzájárulási folyamatát.

  2. Klónozza a Partner-Center-DotNet-Samples adattárat a Visual Studióval vagy a következő paranccsal

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. Nyissa meg a CSPApplication könyvtárban Partner-Center-DotNet-Samples\secure-app-model\keyvault található projektet.

  4. Frissítse az App.config fájlban található alkalmazásbeállításokat .

    <!-- 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. Adja meg a Program.cs fájlban található PartnerId és CustomerId változók megfelelő értékeit.

    // 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. A mintaprojekt futtatásakor a rendszer lekérte a partneri hozzájárulási folyamat során beszerzett frissítési jogkivonatot. Ezután hozzáférési jogkivonatot kér a partner nevében a Partnerközpont SDK-val való kommunikációhoz. Végül hozzáférési jogkivonatot kér, hogy a megadott ügyfél nevében kommunikáljon a Microsoft Graphtal.

Java (CSP-hitelesítés)

  1. Ha még nem tette meg, hajtsa végre a partner hozzájárulási folyamatát.

  2. Klónozza a Partner-Center-Java-Samples adattárat a Visual Studióval vagy a következő paranccsal

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. Nyissa meg a cspsample könyvtárban Partner-Center-Java-Samples\secure-app-model\keyvault található projektet.

  4. Frissítse az application.properties fájlban található alkalmazásbeállításokat .

    azuread.authority=https://login.microsoftonline.com
    keyvault.baseurl=
    keyvault.clientId=
    keyvault.clientSecret=
    partnercenter.accountId=
    partnercenter.clientId=
    partnercenter.clientSecret=
    
  5. A mintaprojekt futtatásakor a rendszer lekérte a partneri hozzájárulási folyamat során beszerzett frissítési jogkivonatot. Ezután hozzáférési jogkivonatot kér a partner nevében a Partnerközpont SDK-val való kommunikációhoz.

  6. Nem kötelező – a RunAzureTask és a RunGraphTask függvény hívásainak feloldása, ha látni szeretné, hogyan használhatja az Azure Resource Managert és a Microsoft Graphot az ügyfél nevében.

Vezérlőpult szolgáltató hitelesítése

A vezérlőpult gyártóinak rendelkezniük kell minden olyan partnersel, aki támogatja a partneri hozzájárulási folyamatot. A folyamat során beszerzett frissítési jogkivonatot a rendszer a Partnerközpont REST API-ja és a .NET API eléréséhez használja.

Feljegyzés

A vezérlőpult szállítóinak legalább a felhőalkalmazás-rendszergazdai szerepkörnek kell rendelkezniük az ügyfél bérlőjében.

Minták a felhőpanel-szolgáltató hitelesítéséhez

Annak érdekében, hogy a vezérlőpult szállítói megértsék, hogyan hajthatja végre az egyes szükséges műveleteket, az alábbi mintákat fejlesztettük ki. Amikor a megfelelő megoldást implementálja a környezetben, fontos, hogy olyan megoldást dolgozzon ki, amely megfelel a kódolási szabványoknak és a biztonsági szabályzatoknak.

.NET (CPV-hitelesítés)

  1. Dolgozzon ki és helyezzen üzembe egy folyamatot Felhőszolgáltató partnerek számára a megfelelő hozzájárulás megadásához. További információ: partneri hozzájárulás.

    Fontos

    A Felhőszolgáltató partnertől származó felhasználói hitelesítő adatokat nem szabad tárolni. A partner hozzájárulási folyamatán keresztül beszerzett frissítési jogkivonatot tárolni kell, és arra kell használni, hogy hozzáférési jogkivonatokat kérjen a Microsoft API-val való interakcióhoz.

  2. Klónozza a Partner-Center-DotNet-Samples adattárat a Visual Studióval vagy a következő paranccsal

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. Nyissa meg a CPVApplication könyvtárban Partner-Center-DotNet-Samples\secure-app-model\keyvault található projektet.

  4. Frissítse az App.config fájlban található alkalmazásbeállításokat .

    <!-- 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. Adja meg a Program.cs fájlban található PartnerId és CustomerId változók megfelelő értékeit.

    // 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. A mintaprojekt futtatásakor a rendszer lekérte a megadott partner frissítési jogkivonatát. Ezután hozzáférési jogkivonatot kér a Partnerközpont és a Microsoft Graph eléréséhez a partner nevében. A következő feladat, amelyet végrehajt, az engedélytámogatások törlése és létrehozása az ügyfélbérlében. Mivel nincs kapcsolat a vezérlőpult szállítója és az ügyfél között, ezeket az engedélyeket a Partnerközpont API használatával kell hozzáadni. Az alábbi példa bemutatja, hogyan lehet ezt végrehajtani.

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

Az engedélyek létrehozása után a minta a Microsoft Graph használatával hajt végre műveleteket az ügyfél nevében.

Feljegyzés

A Microsoft Graphról további információt a Microsoft Graph áttekintésében talál.

Java (CPV-hitelesítés)

  1. Dolgozzon ki és helyezzen üzembe egy folyamatot Felhőszolgáltató partnerek számára a megfelelő hozzájárulás megadásához. További információkért és egy példaért tekintse meg a partner hozzájárulását.

    Fontos

    A Felhőszolgáltató partnertől származó felhasználói hitelesítő adatokat nem szabad tárolni. A partner hozzájárulási folyamatán keresztül beszerzett frissítési jogkivonatot tárolni kell, és arra kell használni, hogy hozzáférési jogkivonatokat kérjen a Microsoft API-val való interakcióhoz.

  2. Klónozza a Partner-Center-Java-Samples adattárat az alábbi paranccsal

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. Nyissa meg a cpvsample könyvtárban Partner-Center-Java-Samples\secure-app-model\keyvault található projektet.

  4. Frissítse az application.properties fájlban található alkalmazásbeállításokat .

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

    Az értéknek a partnercenter.displayName marketplace-alkalmazás megjelenítendő nevének kell lennie.

  5. Adja meg a Program.java fájlban található partnerId és customerId változók megfelelő értékeit.

    partnerId = "SPECIFY-THE-PARTNER-TENANT-ID-HERE";
    customerId = "SPECIFY-THE-CUSTOMER-TENANT-ID-HERE";
    
  6. A mintaprojekt futtatásakor a rendszer lekérte a megadott partner frissítési jogkivonatát. Ezután hozzáférési jogkivonatot kér a partner nevében a Partnerközpont eléréséhez. A következő feladat, amelyet végrehajt, az engedélytámogatások törlése és létrehozása az ügyfélbérlében. Mivel nincs kapcsolat a vezérlőpult szállítója és az ügyfél között, ezeket az engedélyeket a Partnerközpont API használatával kell hozzáadni. Az alábbi példa bemutatja az engedélyek megadásának módját.

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

Ha szeretné megtudni, hogyan használhatja az Azure Resource Managert és a Microsoft Graphot az ügyfél nevében, lépjen ki a RunAzureTask és a RunGraphTask függvény hívásaiból.