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 perwakilan layanan Pusat Mitra Microsoft di penyewa mitra CSP, tempat aplikasi multipenyewa akan dibuat.

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

Di jendela PowerShell administrator, jalankan perintah berikut.

  1. Memasang modul AzureAD. Install-Module Microsoft.Graph
  2. Jalankan Koneksi-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 fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd

Membuat aplikasi multipenyewa di penyewa mitra CSP

Gunakan langkah-langkah berikut untuk memastikan bahwa properti aplikasi berikut diatur untuk aplikasi multipenyewa yang baru dibuat.

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

Cuplikan layar memperlihatkan Daftarkan modal 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 jenis platform "Web."
  4. URL Pengalihan harus berupa URL pengalihan aplikasi Anda, yang akan menampilkan pesan keberhasilan persetujuan kepada mitra dan mengumpulkan token refresh. 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 & rahasia>+Rahasia klien baru di tab Rahasia klien.

Catatan

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

  • ID aplikasi
  • Rahasia aplikasi

Cuplikan layar memperlihatkan Sertifikat dan rahasia.

Menerapkan izin

Pastikan izin berikut diatur untuk aplikasi multipenyewa.

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>Izin Microsoft Graph Izin yang Didelegasikan Microsoft Graph>>
      • 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 Pusat Mitra Microsoft - Berikan izin Pusat Mitra Akses di bawah Izin yang Didelegasikan:
      • Izin>API Menambahkan API izin>organisasi saya menggunakan>Peniruan Pengguna Izin>yang Didelegasikan Pusat>Mitra Microsoft

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

Aplikasi multipenyewa

Multi penyewa ApplicationID perlu diganti dengan ID Aplikasi Anda.

Navigasi ke Pendaftaran Aplikasi dan pilih ID Aplikasi (Klien) dan ganti 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 Application-Id dengan ID aplikasi Microsoft Entra (GUID) Anda.
  3. Saat diminta, masuk dengan akun pengguna Anda dengan MFA dikonfigurasi.
  4. Saat diminta, masukkan informasi MFA lainnya (nomor telepon atau alamat email) untuk memverifikasi rincian 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>

or

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>

or

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>

Dapatkan token refresh

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

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

Catatan

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 Pusat Mitra (https://api.partnercenter.microsoft.com)

API GDAP

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

Sampel 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 brankas 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 yang sesuai <key-vault-name> 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 Dapatkan dan Atur Rahasia.

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 menghasilkan token akses untuk penyewa mitra CSP.
  • Aplikasi CSP atau aplikasi CPV: Mewakili aplikasi utama, yang memanggil API dan grafik Pusat Mitra.
    • 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, web.config file 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, app.config file 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 API ApplicationConsent untuk membuat perwakilan layanan pada penyewa pelanggan untuk mengakses Microsoft Graph untuk mengelola penyewa pelanggan. Untuk informasi selengkapnya, lihat Autentikasi Pusat Mitra.

Konfigurasi web CPV

Untuk aplikasi mitra CSP, web.config file 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, app.config file 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/" />