Bagikan melalui


Membuat aplikasi mitra yang aman

Anda dapat menerapkan kerangka kerja Model Aplikasi Aman dengan membuat aplikasi untuk Penyedia Solusi Cloud (CSP) atau Vendor Panel Kontrol (CPV).

Menerapkan model aplikasi yang aman

langkah-langkah untuk mengaktifkan model aplikasi yang aman

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.

Membuat perwakilan layanan Pusat Mitra

Pertama, buat principal layanan di Microsoft Partner Center di tenant mitra CSP, tempat aplikasi multitenancy akan dibuat.

Untuk penyewa mitra CSP, service principal ini harus sudah ada. Jika tidak, buat menggunakan langkah-langkah berikut.

Di jendela PowerShell administrator, jalankan perintah berikut.

  1. Instal modul AzureAD. Install-Module Microsoft.Graph
  2. Jalankan Connect-MgGraph, ini meminta nama pengguna dan kata sandi. Masukkan kredensial admin penyewa. Connect-MgGraph
  3. Buat perwakilan layanan Pusat Mitra Microsoft. New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId 00001111-aaaa-2222-bbbb-3333cccc4444

Buat aplikasi multitenant di penyewa mitra CSP

Gunakan langkah-langkah berikut untuk memastikan bahwa properti-properti berikut telah diatur pada aplikasi multitenant yang baru saja dibuat.

  1. Masuk ke portal.azure.com
  2. Pilih ID Microsoft Entra dan Pendaftaran aplikasi untuk membuat pendaftaran baru dengan multipenyewa.

Cuplikan layar menampilkan dialog modal 'Daftarkan Aplikasi'.

  1. Pilih nama tampilan yang menghadap pengguna untuk aplikasi Anda.
  2. Pilih Jenis akun yang didukung: Akun di direktori organisasi apa pun (Direktori Microsoft Entra apa pun - Multipenyewa).
  3. Pilih platform jenis "Web."
  4. URL Redirect harus berupa URL pengalihan aplikasi Anda, yang akan menampilkan pesan keberhasilan persetujuan kepada mitra dan mengumpulkan token penyegaran. Pastikan URL pengalihan aplikasi Anda diatur ke titik akhir tempat aplikasi web langsung berjalan. Aplikasi ini perlu menerima kode otorisasi dari panggilan masuk Microsoft Entra.
  5. Buka Kelola>Sertifikat dan rahasia>+Rahasia klien baru di tab Rahasia klien.

Nota

Anda akan memerlukan informasi berikut dari pengaturan aplikasi web Anda di ID Microsoft Entra:

  • ID Aplikasi
  • Rahasia aplikasi

Cuplikan layar memperlihatkan Sertifikat dan rahasia.

Terapkan izin

Pastikan izin-izin berikut telah diatur untuk aplikasi multitenant.

Di bagian izin API :

  • Seharusnya tidak ada Izin Aplikasi langsung ke aplikasi multipenyewa.

  • Ikuti jalur di bawah ini untuk menambahkan izin yang didelegasikan untuk Microsoft Graph:

    • Izin API >Menambahkan izin>MICROSOFT API>Microsoft Graph>Izin yang Didelegasikan
      • DelegatedAdminRelationship.ReadWrite.All User.Read.All

    Cuplikan layar memperlihatkan izin API permintaan aplikasi mitra.

    • Ikuti jalur di bawah ini untuk menambahkan izin yang didelegasikan untuk Microsoft Partner Center - Grant Access Partner Center di bawah Izin yang Didelegasikan:
      • Izin API>Tambahkan izin>API yang digunakan oleh organisasi saya>Pusat Mitra Microsoft>Izin yang Didelegasikan>Peniruan Identitas Pengguna

    Cuplikan layar memperlihatkan izin A P I aplikasi mitra.

Sajikan mitra dengan tautan persetujuan dan minta mereka masuk dengan akun layanan mereka untuk menyetujui aplikasi untuk bertindak atas nama akun layanan pada penyewa mitra.

Pengguna mitra CSP harus menjadi Admin Global dan Agen Admin untuk menyetujui aplikasi multitenan.

Aplikasi multipenyewa

ApplicationID untuk multi penyewa perlu diganti dengan ID Aplikasi Anda.

Navigasikan ke Pendaftaran Aplikasi dan pilih ID Aplikasi (Klien), lalu ganti seperti yang tercantum di bawah ini.

Cuplikan layar memperlihatkan klien Mitra Microsoft Entra.

Mendapatkan kode otorisasi

Anda harus mendapatkan kode otorisasi untuk aplikasi web Anda dari panggilan masuk Microsoft Entra:

  1. Masuk ke ID Microsoft Entra.
  2. Ganti Id Aplikasi dengan ID aplikasi Microsoft Entra (GUID) Anda.
  3. Saat diminta, masuk dengan akun pengguna Anda yang telah dikonfigurasi dengan MFA.
  4. Saat diminta, masukkan informasi MFA lainnya (nomor telepon atau alamat email) untuk memverifikasi masuk Anda.
  5. Setelah Anda masuk, browser akan mengalihkan panggilan ke titik akhir aplikasi web Anda dengan kode otorisasi Anda. Misalnya, kode sampel berikut mengalihkan ke https://localhost:44395/.
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code&redirect_url=https://<CSPApplicationUrl_which_collects_refreshtoken>

atau

GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code

Untuk Tiongkok, gunakan tautan berikut:

GET https://login.chinacloudapi.cn/common/oauth2/authorize ?&client_id= <CSPApplicationId>&response_type=code&redirect_url= https://<CSPApplicationUrl_which_collects_refreshtoken>

atau

GET https://login.chinacloudapi.cn/common/oauth2/authorize?&client_id= <CSPApplicationId>&response_type=code

Pelacakan panggilan kode otorisasi: https://localhost:44395/?code=<authorization_code>&<rest of properties for state>

Peroleh token penyegaran

Anda kemudian harus menggunakan kode otorisasi Anda untuk mendapatkan token refresh:

  1. Lakukan panggilan POST ke titik akhir masuk Microsoft Entra https://login.microsoftonline.com/CSPTenantID/oauth2/token dengan kode otorisasi. Misalnya, lihat contoh panggilan berikut ini.
  2. Perhatikan token refresh yang dikembalikan.
  3. Simpan token penyegar di Azure Key Vault. Untuk informasi selengkapnya, lihat dokumentasi API Key Vault .

Nota

Sumber daya yang disebutkan dalam contoh panggilan POST di bawah ini adalah untuk API GDAP-Graph.

Sumber daya untuk API PC lainnya adalah sebagai berikut:

API Mitra Pusat (https://api.partnercenter.microsoft.com)

API GDAP

API Mitra (https://api.partner.microsoft.com)

Contoh panggilan

POST  'https://login.microsoftonline.com/<partnerTenantId>/oauth2/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--form 'grant_type="authorization_code"' \
--form 'client_id=<application_id or client_id>' \
--form 'resource="https://graph.microsoft.com"' \
--form 'code="<authorization_code>"'   
Response Body:

{
    "token_type": "Bearer",
    "scope": "DelegatedAdminRelationship.ReadWrite.All User.Read.All",
    "expires_in": "4549",
    "ext_expires_in": "4549",
    "expires_on": "1652886571",
    "not_before": "1652881721",
    "resource": "https://graph.microsoft.com",
    "access_token": "Access_token",
    "refresh_token": "Refresh_token",    
    "id_token": "Id_token"
}

Menyiapkan penyimpanan kunci

Pertama, buat aplikasi web baru di penyewa mitra CSP. Jika aplikasi CPV digunakan untuk memanggil API Pusat Mitra, CPV harus membuat aplikasi web baru di penyewa mitra CPV.

Jika Anda menggunakan Azure Key Vault:

  1. Buat Azure Key Vault dengan <key-vault-name> yang sesuai dan menghasilkan nama DNS seperti: https://<key-vault-name>.vault.azure.net
  2. Tambahkan token refresh ke brankas kunci.

Menyediakan akses ke brankas kunci

Dalam kebijakan akses brankas kunci, tambahkan KeyVaultAccessApp dengan izin untuk hanya mengelola aspek Get dan Set dari Secret.

Cuplikan layar memperlihatkan izin yang diperlukan aplikasi mitra CSP.

Mengonfigurasi prototipe

Prototipe memiliki dua aplikasi:

  • Persetujuan Mitra: Mewakili aplikasi web yang dirancang untuk menerima persetujuan dari mitra CSP dan menunjukkan pesan keberhasilan.
    • Aplikasi ini menyiapkan persetujuan dan mengambil token refresh pengguna yang disetujui.
    • Token refresh pengguna yang disetujui digunakan untuk membuat token akses bagi penyewa yang menjadi mitra CSP.
  • aplikasi CSP atau aplikasi CPV : Mewakili aplikasi utama, yang memanggil Partner Center APIs dan Graph.
    • API untuk melakukan tindakan perdagangan dan pengguna atas nama mitra.

Aplikasi ini mengambil token akses untuk audiens tertentu (API Pusat Mitra atau Grafik) sebelum memanggil API masing-masing. Ini menggunakan token refresh yang disimpan dengan aman di brankas kunci.

Konfigurasi web CSP

Untuk aplikasi mitra CSP, file web.config memiliki bagian berikut yang dipanggil. Perbarui nilai-nilai ini dengan ID dan rahasia aplikasi yang sesuai. Untuk aplikasi utama Anda, gunakan "sertifikat" sebagai rahasia aplikasi web alih-alih rahasia biasa karena memberikan lapisan keamanan tambahan.

<!-- AppID that represents CSP application -->
<add key="ida:CSPApplicationId" value="CSPApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CSPApplicationSecret" value="CSPApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens --> <add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

Konfigurasi aplikasi CSP

Untuk aplikasi mitra CSP, file app.config memiliki bagian berikut yang dipanggil. Perbarui nilai dengan ID dan rahasia aplikasi yang sesuai. Untuk aplikasi utama Anda, gunakan "sertifikat" sebagai rahasia aplikasi web alih-alih rahasia biasa karena memberikan lapisan keamanan tambahan.

<!-- AppID that represents CSP application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de,
China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

CSP yang menggunakan aplikasi CPV dapat memanggil ApplicationConsent API guna membuat prinsip layanan pada tenant pelanggan untuk mengakses Microsoft Graph dalam rangka mengelola tenant pelanggan. Untuk informasi lebih lanjut, lihat autentikasi Pusat Mitra .

Konfigurasi web CPV

Untuk aplikasi mitra CSP, file web.config memiliki bagian berikut yang dipanggil. Perbarui nilai-nilai ini dengan ID dan rahasia aplikasi yang sesuai. Untuk aplikasi utama Anda, gunakan "sertifikat" sebagai rahasia aplikasi web alih-alih rahasia biasa karena memberikan lapisan keamanan tambahan.

<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

Konfigurasi aplikasi CPV

Untuk aplikasi mitra CPV, file app.config memiliki bagian berikut yang dipanggil. Perbarui nilai dengan ID dan rahasia aplikasi yang sesuai. Untuk aplikasi utama Anda, gunakan "sertifikat" sebagai rahasia aplikasi web alih-alih rahasia biasa karena memberikan lapisan keamanan tambahan.

<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />