Bagikan melalui


Lihat Autentikasi Pusat Mitra.

Berlaku untuk: Pusat Mitra | Pusat Mitra yang dioperasikan oleh 21Vianet | Pusat Mitra untuk Microsoft Cloud untuk Pemerintah AS

Pusat Mitra menggunakan Microsoft Entra ID untuk autentikasi. Saat berinteraksi dengan modul Partner Center API, SDK, atau PowerShell, Anda harus mengonfigurasi aplikasi Microsoft Entra dengan benar, lalu meminta token akses. Token akses yang diperoleh hanya menggunakan aplikasi atau aplikasi + autentikasi pengguna dapat digunakan dengan Pusat Mitra. Namun, ada dua item penting yang perlu dipertimbangkan

  • Gunakan autentikasi multifaktor saat mengakses API Pusat Mitra menggunakan autentikasi aplikasi + pengguna. Untuk informasi selengkapnya mengenai perubahan ini, lihat Mengaktifkan model aplikasi yang aman.

  • Tidak semua operasi yang hanya mendukung autentikasi aplikasi oleh API Pusat Mitra. Ada skenario tertentu di mana Anda akan diminta untuk menggunakan aplikasi + autentikasi pengguna. Di bawah judul Prasyarat di setiap artikel, Anda menemukan dokumentasi yang menyatakan apakah aplikasi hanya autentikasi, aplikasi + autentikasi pengguna, atau keduanya didukung.

Penting

Grafik Azure Active Directory (Azure AD) tidak digunakan lagi per 30 Juni 2023. Ke depannya, kami tidak melakukan investasi lebih lanjut di Azure AD Graph. API Azure AD Graph tidak memiliki komitmen SLA atau pemeliharaan di luar perbaikan terkait keamanan. Investasi dalam fitur dan fungsionalitas baru hanya akan dilakukan di Microsoft Graph.

Kami akan menghentikan Azure AD Graph dalam langkah-langkah bertahap sehingga Anda memiliki waktu yang cukup untuk memigrasikan aplikasi Anda ke MICROSOFT Graph API. Di kemudian hari yang akan kami umumkan, kami akan memblokir pembuatan aplikasi baru apa pun menggunakan Azure AD Graph.

Untuk mempelajari selengkapnya, lihat Penting: Penghentian Azure AD Graph dan Penghentian Modul Powershell.

Penyiapan awal

  1. Untuk memulai, Anda perlu memastikan bahwa Anda memiliki akun Pusat Mitra utama, dan akun Pusat Mitra kotak pasir integrasi. Untuk informasi selengkapnya, lihat Menyiapkan akun Pusat Mitra untuk akses API. Catat ID pendaftaran aplikasi Microsoft Entra dan Rahasia (rahasia klien diperlukan untuk identifikasi khusus Aplikasi) untuk akun utama dan akun kotak pasir integrasi Anda.

  2. Masuk ke ID Microsoft Entra dari portal Azure. Dalam izin ke aplikasi lain, atur izin untuk Windows Azure Active Directory ke Izin yang Didelegasikan, dan pilih Akses direktori sebagai pengguna yang masuk dan Masuk dan baca profil pengguna.

  3. Di portal Azure, Tambahkan aplikasi. Cari "Pusat Mitra Microsoft", yang merupakan aplikasi Pusat Mitra Microsoft. Atur Izin yang Didelegasikan ke AKSES API Pusat Mitra. Jika Anda menggunakan Pusat Mitra untuk Microsoft Cloud untuk Pemerintah AS, langkah ini wajib dilakukan. Jika Anda menggunakan instans global Pusat Mitra, langkah ini bersifat opsional. Mitra CSP dapat menggunakan fitur Manajemen Aplikasi di Pusat Mitra untuk melewati langkah ini untuk instans global Pusat Mitra.

Autentikasi khusus aplikasi

Jika Anda ingin menggunakan autentikasi khusus aplikasi untuk mengakses modul Rest API Pusat Mitra, .NET API, Java API, atau PowerShell, Maka Anda dapat melakukannya dengan menggunakan instruksi berikut.

.NET (autentikasi khusus aplikasi)

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 (autentikasi khusus aplikasi)

SDK Java Pusat Mitra dapat digunakan untuk mengelola sumber daya Pusat Mitra. Ini adalah proyek sumber terbuka yang dikelola oleh komunitas mitra dan tidak didukung secara resmi oleh Microsoft. Anda bisa mendapatkan bantuan dari komunitas atau membuka masalah di GitHub jika Anda mengalami masalah.

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

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

REST (autentikasi khusus aplikasi)

Permintaan 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

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

Autentikasi Aplikasi + Pengguna

Secara historis, pemberian kredensial kata sandi pemilik sumber daya telah digunakan untuk meminta token akses untuk digunakan dengan modul REST API Pusat Mitra, .NET API, Java API, atau PowerShell. Metode tersebut digunakan untuk meminta token akses dari ID Microsoft Entra menggunakan pengidentifikasi klien dan kredensial pengguna. Namun, pendekatan ini tidak akan berfungsi lagi karena Pusat Mitra memerlukan autentikasi multifaktor, saat menggunakan autentikasi aplikasi + pengguna. Untuk mematuhi persyaratan ini, Microsoft telah memperkenalkan kerangka kerja yang aman dan dapat diskalakan untuk mengautentikasi mitra Penyedia Solusi Cloud (CSP) dan vendor panel kontrol (CPV) menggunakan autentikasi multifaktor. Kerangka kerja ini dikenal sebagai Model Aplikasi Aman, dan terdiri dari proses persetujuan dan permintaan token akses menggunakan token refresh.

Proses persetujuan mitra adalah proses interaktif di mana mitra mengautentikasi menggunakan autentikasi multifaktor, persetujuan untuk aplikasi, dan token refresh disimpan di repositori aman seperti Azure Key Vault. Kami menyarankan agar akun khusus untuk tujuan integrasi digunakan untuk proses ini.

Penting

Solusi autentikasi multifaktor yang sesuai harus diaktifkan untuk akun layanan yang digunakan dalam proses persetujuan mitra. Jika tidak, token refresh yang dihasilkan tidak akan mematuhi persyaratan keamanan.

Sampel untuk autentikasi Aplikasi + Pengguna

Proses persetujuan mitra dapat dilakukan dalam banyak cara. Untuk membantu mitra memahami cara melakukan setiap operasi yang diperlukan, kami telah mengembangkan sampel berikut. Saat Anda menerapkan solusi yang sesuai di lingkungan Anda, penting agar Anda mengembangkan solusi yang sesuai dengan standar pengodean dan kebijakan keamanan Anda.

.NET (autentikasi aplikasi+pengguna)

Proyek sampel persetujuan mitra menunjukkan cara menggunakan situs web yang dikembangkan menggunakan ASP.NET untuk mengambil persetujuan, meminta token refresh, dan menyimpannya dengan aman di Azure Key Vault. Lakukan langkah-langkah berikut untuk membuat prasyarat yang diperlukan untuk sampel ini.

  1. Buat instans Azure Key Vault menggunakan perintah portal Azure atau PowerShell berikut. Sebelum menjalankan perintah, pastikan untuk memodifikasi nilai parameter yang sesuai. Nama vault harus unik.

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

    Untuk informasi selengkapnya tentang membuat Azure Key Vault, lihat Mulai Cepat: Mengatur dan mengambil rahasia dari Azure Key Vault menggunakan portal Azure atau Mulai Cepat: Mengatur dan mengambil rahasia dari Azure Key Vault menggunakan PowerShell. Kemudian atur dan ambil rahasia.

  2. Buat Aplikasi Microsoft Entra dan kunci menggunakan portal Azure atau perintah berikut.

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

    Pastikan untuk mencatat pengidentifikasi aplikasi dan nilai rahasia karena akan digunakan dalam langkah-langkah di bawah ini.

  3. Berikan aplikasi Microsoft Entra yang baru dibuat izin baca rahasia menggunakan perintah portal Azure atau berikut.

    # 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. Buat aplikasi Microsoft Entra yang dikonfigurasi untuk Pusat Mitra. Lakukan tindakan berikut untuk menyelesaikan langkah ini.

    • Telusuri ke fitur Manajemen aplikasi pusat mitra
    • Pilih Tambahkan aplikasi web baru untuk membuat aplikasi Microsoft Entra baru.

    Pastikan untuk mendokumenkan nilai ID Aplikasi, ID Akun*, dan Kunci karena akan digunakan dalam langkah-langkah di bawah ini.

  5. Kloning repositori Partner-Center-DotNet-Samples menggunakan Visual Studio atau perintah berikut.

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  6. Buka proyek PartnerConsent yang ditemukan di Partner-Center-DotNet-Samples\secure-app-model\keyvault direktori.

  7. Isi pengaturan aplikasi yang ditemukan di 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="" />
    

    Penting

    Informasi sensitif seperti rahasia aplikasi tidak boleh disimpan dalam file konfigurasi. Itu dilakukan di sini karena ini adalah aplikasi sampel. Dengan aplikasi produksi Anda, kami sangat menyarankan Anda menggunakan autentikasi berbasis sertifikat. Untuk informasi selengkapnya, lihat Kredensial sertifikat untuk autentikasi aplikasi.

  8. Saat Anda menjalankan proyek sampel ini, proyek akan meminta autentikasi kepada Anda. Setelah berhasil mengautentikasi, token akses diminta dari ID Microsoft Entra. Informasi yang dikembalikan dari ID Microsoft Entra menyertakan token refresh yang disimpan dalam instans Azure Key Vault yang dikonfigurasi.

Java (autentikasi aplikasi+pengguna)

Proyek sampel persetujuan mitra menunjukkan cara menggunakan situs web yang dikembangkan menggunakan JSP untuk mengambil persetujuan, meminta token refresh, dan penyimpanan aman di Azure Key Vault. Lakukan hal berikut untuk membuat prasyarat yang diperlukan untuk sampel ini.

  1. Buat instans Azure Key Vault menggunakan perintah portal Azure atau PowerShell berikut. Sebelum menjalankan perintah, pastikan untuk memodifikasi nilai parameter yang sesuai. Nama vault harus unik.

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

    Untuk informasi selengkapnya tentang membuat Azure Key Vault, lihat Mulai Cepat: Mengatur dan mengambil rahasia dari Azure Key Vault menggunakan portal Azure atau Mulai Cepat: Mengatur dan mengambil rahasia dari Azure Key Vault menggunakan PowerShell.

  2. Buat Aplikasi Microsoft Entra dan kunci menggunakan portal Azure atau perintah berikut.

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

    Pastikan untuk mendokumen pengidentifikasi aplikasi dan nilai rahasia karena akan digunakan dalam langkah-langkah di bawah ini.

  3. Berikan aplikasi Microsoft Entra yang baru dibuat izin baca rahasia menggunakan portal Azure atau perintah berikut.

    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. Buat aplikasi Microsoft Entra yang dikonfigurasi untuk Pusat Mitra. Lakukan hal berikut untuk menyelesaikan langkah ini.

    • Telusuri ke fitur Manajemen aplikasi pusat mitra
    • Pilih Tambahkan aplikasi web baru untuk membuat aplikasi Microsoft Entra baru.

    Pastikan untuk mendokumenkan nilai ID Aplikasi, ID Akun*, dan Kunci karena akan digunakan dalam langkah-langkah di bawah ini.

  5. Kloning repositori Partner-Center-Java-Samples menggunakan perintah berikut

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  6. Buka proyek PartnerConsent yang ditemukan di Partner-Center-Java-Samples\secure-app-model\keyvault direktori.

  7. Mengisi pengaturan aplikasi yang ditemukan dalam file 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>
    

    Penting

    Informasi sensitif seperti rahasia aplikasi tidak boleh disimpan dalam file konfigurasi. Itu dilakukan di sini karena ini adalah aplikasi sampel. Dengan aplikasi produksi Anda, kami sangat menyarankan Anda menggunakan autentikasi berbasis sertifikat. Untuk informasi selengkapnya, lihat Autentikasi Sertifikat Key Vault.

  8. Saat Anda menjalankan proyek sampel ini, proyek akan meminta autentikasi kepada Anda. Setelah berhasil mengautentikasi, token akses diminta dari ID Microsoft Entra. Informasi yang dikembalikan dari ID Microsoft Entra menyertakan token refresh yang disimpan dalam instans Azure Key Vault yang dikonfigurasi.

autentikasi Penyedia Solusi Cloud

Penyedia Solusi Cloud mitra dapat menggunakan token refresh yang diperoleh melalui proses persetujuan mitra.

Sampel untuk autentikasi Penyedia Solusi Cloud

Untuk membantu mitra memahami cara melakukan setiap operasi yang diperlukan, kami telah mengembangkan sampel berikut. Saat Anda menerapkan solusi yang sesuai di lingkungan Anda, penting agar Anda mengembangkan solusi yang sesuai dengan standar pengodean dan kebijakan keamanan Anda.

.NET (autentikasi CSP)

  1. Jika Anda belum melakukannya, lakukan proses persetujuan mitra.

  2. Kloning repositori Partner-Center-DotNet-Samples menggunakan Visual Studio atau perintah berikut

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. Buka proyek yang CSPApplication ditemukan di Partner-Center-DotNet-Samples\secure-app-model\keyvault direktori.

  4. Perbarui pengaturan aplikasi yang ditemukan di file 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. Atur nilai yang sesuai untuk variabel PartnerId dan CustomerId yang ditemukan dalam file 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. Saat Anda menjalankan proyek sampel ini, ia mendapatkan token refresh yang diperoleh selama proses persetujuan mitra. Kemudian, ia meminta token akses untuk berinteraksi dengan SDK Pusat Mitra atas nama mitra. Terakhir, ini meminta token akses untuk berinteraksi dengan Microsoft Graph atas nama pelanggan yang ditentukan.

Java (autentikasi CSP)

  1. Jika Anda belum melakukannya, lakukan proses persetujuan mitra.

  2. Kloning repositori Partner-Center-Java-Samples menggunakan Visual Studio atau perintah berikut

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. Buka proyek yang cspsample ditemukan di Partner-Center-Java-Samples\secure-app-model\keyvault direktori.

  4. Perbarui pengaturan aplikasi yang ditemukan dalam file application.properties .

    azuread.authority=https://login.microsoftonline.com
    keyvault.baseurl=
    keyvault.clientId=
    keyvault.clientSecret=
    partnercenter.accountId=
    partnercenter.clientId=
    partnercenter.clientSecret=
    
  5. Saat Anda menjalankan proyek sampel ini, ia mendapatkan token refresh yang diperoleh selama proses persetujuan mitra. Kemudian, ia meminta token akses untuk berinteraksi dengan SDK Pusat Mitra atas nama mitra.

  6. Opsional - membatalkan komentar panggilan fungsi RunAzureTask dan RunGraphTask jika Anda ingin melihat cara berinteraksi dengan Azure Resource Manager dan Microsoft Graph atas nama pelanggan.

autentikasi Penyedia Panel Kontrol

Vendor panel kontrol harus memiliki setiap mitra yang mereka dukung untuk melakukan proses persetujuan mitra. Setelah selesai, token refresh yang diperoleh melalui proses tersebut digunakan untuk mengakses REST API Pusat Mitra dan .NET API.

Catatan

Vendor panel kontrol harus memiliki peran Administrator Aplikasi Cloud minimal di penyewa pelanggan.

Sampel untuk autentikasi Penyedia Panel Cloud

Untuk membantu vendor panel kontrol memahami cara melakukan setiap operasi yang diperlukan, kami telah mengembangkan sampel berikut. Saat Anda menerapkan solusi yang sesuai di lingkungan Anda, penting agar Anda mengembangkan solusi yang sesuai dengan standar pengodean dan kebijakan keamanan Anda.

.NET (autentikasi CPV)

  1. Mengembangkan dan menyebarkan proses bagi mitra Penyedia Solusi Cloud untuk memberikan persetujuan yang sesuai. Untuk informasi selengkapnya contohnya, lihat persetujuan mitra.

    Penting

    Kredensial pengguna dari mitra Penyedia Solusi Cloud tidak boleh disimpan. Token refresh yang diperoleh melalui proses persetujuan mitra harus disimpan dan digunakan untuk meminta token akses untuk berinteraksi dengan MICROSOFT API apa pun.

  2. Kloning repositori Partner-Center-DotNet-Samples menggunakan Visual Studio atau perintah berikut

    git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.git
    
  3. Buka proyek yang CPVApplication ditemukan di Partner-Center-DotNet-Samples\secure-app-model\keyvault direktori.

  4. Perbarui pengaturan aplikasi yang ditemukan di file 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. Atur nilai yang sesuai untuk variabel PartnerId dan CustomerId yang ditemukan dalam file 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. Saat Anda menjalankan proyek sampel ini, ia mendapatkan token refresh untuk mitra yang ditentukan. Kemudian, ia meminta token akses untuk mengakses Pusat Mitra dan Microsoft Graph atas nama mitra. Tugas berikutnya yang dilakukannya adalah penghapusan dan pembuatan pemberian izin ke penyewa pelanggan. Karena tidak ada hubungan antara vendor panel kontrol dan pelanggan, izin ini perlu ditambahkan menggunakan API Pusat Mitra. Contoh berikut menunjukkan cara mencapainya.

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

Setelah izin ini ditetapkan, sampel melakukan operasi menggunakan Microsoft Graph atas nama pelanggan.

Catatan

Untuk informasi selengkapnya tentang Microsoft Graph, lihat gambaran umum Microsoft Graph.

Java (autentikasi CPV)

  1. Mengembangkan dan menyebarkan proses bagi mitra Penyedia Solusi Cloud untuk memberikan persetujuan yang sesuai. Untuk informasi selengkapnya dan contohnya , lihat persetujuan mitra.

    Penting

    Kredensial pengguna dari mitra Penyedia Solusi Cloud tidak boleh disimpan. Token refresh yang diperoleh melalui proses persetujuan mitra harus disimpan dan digunakan untuk meminta token akses untuk berinteraksi dengan MICROSOFT API apa pun.

  2. Kloning repositori Partner-Center-Java-Samples menggunakan perintah berikut

    git clone https://github.com/Microsoft/Partner-Center-Java-Samples.git
    
  3. Buka proyek yang cpvsample ditemukan di Partner-Center-Java-Samples\secure-app-model\keyvault direktori.

  4. Perbarui pengaturan aplikasi yang ditemukan dalam file application.properties .

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

    Nilai untuk partnercenter.displayName harus menjadi nama tampilan aplikasi marketplace Anda.

  5. Atur nilai yang sesuai untuk variabel partnerId dan customerId yang ditemukan dalam file Program.java .

    partnerId = "SPECIFY-THE-PARTNER-TENANT-ID-HERE";
    customerId = "SPECIFY-THE-CUSTOMER-TENANT-ID-HERE";
    
  6. Saat Anda menjalankan proyek sampel ini, ia mendapatkan token refresh untuk mitra yang ditentukan. Kemudian, ia meminta token akses untuk mengakses Pusat Mitra atas nama mitra. Tugas berikutnya yang dilakukannya adalah penghapusan dan pembuatan pemberian izin ke penyewa pelanggan. Karena tidak ada hubungan antara vendor panel kontrol dan pelanggan, izin ini perlu ditambahkan menggunakan API Pusat Mitra. Contoh berikut menunjukkan cara memberikan izin.

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

Batalkan komentar panggilan fungsi RunAzureTask dan RunGraphTask jika Anda ingin melihat cara berinteraksi dengan Azure Resource Manager dan Microsoft Graph atas nama pelanggan.