Mengaktifkan kerangka kerja Model Aplikasi Aman

Microsoft memperkenalkan kerangka kerja yang aman dan dapat diskalakan untuk mengautentikasi mitra penyedia solusi cloud (CSP) dan vendor panel kontrol (CPV) melalui arsitektur autentikasi multifaktor (MFA) Microsoft Entra.

Anda dapat menggunakan model baru untuk meningkatkan keamanan untuk panggilan integrasi API Pusat Mitra. Ini membantu semua pihak (termasuk Microsoft, mitra CSP, dan CPV) untuk melindungi infrastruktur dan data pelanggan mereka dari risiko keamanan.

Program CSP memungkinkan pelanggan untuk membeli produk dan layanan Microsoft melalui mitra. Sesuai perjanjian dengan Microsoft, mitra diharuskan untuk mengelola lingkungan bagi pelanggan yang mereka jual dan memberikan dukungan. Pelanggan yang membeli melalui saluran ini harus menempatkan sejumlah besar kepercayaan pada mitra yang mereka beli karena bisnis mitra memiliki akses admin dengan hak istimewa tinggi ke penyewa pelanggan.

Cakupan

Artikel ini berkaitan dengan CSP dan CPV.

CPV

  • CPV adalah vendor perangkat lunak independen yang mengembangkan aplikasi bagi mitra CSP agar dapat berintegrasi dengan API Pusat Mitra.
  • CPV bukan mitra CSP dengan akses langsung ke Pusat Mitra atau API.

CSP

  • Penyedia tidak langsung CSP dan mitra langsung CSP yang menggunakan ID aplikasi + autentikasi pengguna dan langsung berintegrasi dengan API Pusat Mitra.

Persyaratan keamanan

Untuk detail tentang persyaratan keamanan, lihat Persyaratan Keamanan Mitra.

Model Aplikasi Aman

Aplikasi marketplace perlu meniru hak istimewa mitra CSP untuk memanggil API Microsoft. Serangan keamanan pada aplikasi sensitif ini dapat menyebabkan penyusupan data pelanggan.

Untuk gambaran umum dan detail kerangka kerja autentikasi baru, lihat kerangka kerja Model Aplikasi Aman, yang mencakup prinsip dan praktik terbaik untuk membuat aplikasi marketplace berkelanjutan dan kuat dari kompromi keamanan.

Sampel

Dokumen gambaran umum dan kode sampel berikut menjelaskan bagaimana mitra dapat menerapkan kerangka kerja Model Aplikasi Aman:

REST

Untuk melakukan panggilan REST dengan kerangka kerja Model Aplikasi Aman dengan kode sampel, ikuti langkah-langkah berikut:

  1. Membuat aplikasi web

Membuat aplikasi web

  1. Masuk ke portal Azure.

  2. Buat aplikasi Microsoft Entra.

  3. Berikan izin aplikasi yang didelegasikan ke sumber daya berikut, tergantung pada persyaratan aplikasi Anda. Jika perlu, Anda dapat menambahkan lebih banyak izin yang didelegasikan untuk sumber daya aplikasi.

    1. Pusat Mitra Microsoft (beberapa penyewa menunjukkan SampleBECApp)

    2. API Manajemen Azure (jika Anda berencana untuk memanggil API Azure)

    3. Windows Azure Active Directory

  4. Pastikan URL beranda aplikasi Anda diatur ke titik akhir tempat aplikasi web langsung berjalan. Aplikasi ini perlu menerima kode otorisasi dari panggilan masuk Microsoft Entra. Misalnya, dalam contoh kode di bagian berikut, aplikasi web berjalan di https://localhost:44395/.

  5. Perhatikan informasi berikut dari pengaturan aplikasi web Anda di ID Microsoft Entra:

    • ID Aplikasi
    • Rahasia aplikasi

Catatan

Disarankan untuk menggunakan sertifikat sebagai rahasia aplikasi Anda. Namun, Anda juga dapat membuat kunci aplikasi di portal Azure. Kode sampel di bagian berikut menggunakan kunci aplikasi.

Mendapatkan kode otorisasi

Anda harus mendapatkan kode otorisasi agar aplikasi web Anda dapat menerima dari panggilan masuk Microsoft Entra:

  1. Masuk ke ID Microsoft Entra.

    Pastikan untuk masuk dengan akun pengguna tempat Anda melakukan panggilan API Pusat Mitra (seperti agen admin atau akun agen penjualan).

  2. Ganti Application-Id dengan ID aplikasi Microsoft Entra (GUID) Anda.

  3. Saat diminta, masuk dengan akun pengguna Anda dengan MFA yang dikonfigurasi.

  4. Saat diminta, masukkan informasi MFA lainnya (nomor telepon atau alamat email) untuk memverifikasi login 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/.

Pelacakan panggilan kode otorisasi

POST https://localhost:44395/ HTTP/1.1
Origin: https://login.microsoftonline.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referrer: https://login.microsoftonline.com/kmsi
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: OpenIdConnect.nonce.hOMjjrivcxzuI4YqAw4uYC%2F%2BILFk4%2FCx3kHTHP3lBvA%3D=dHVyRXdlbk9WVUZFdlFONVdiY01nNEpUc0JRR0RiYWFLTHhQYlRGNl9VeXJqNjdLTGV3cFpIWFg1YmpnWVdQUURtN0dvMkdHS2kzTm02NGdQS09veVNEbTZJMDk1TVVNYkczYmstQmlKUzFQaTBFMEdhNVJGVHlES2d3WGlCSlVlN1c2UE9sd2kzckNrVGN2RFNULWdHY2JET3RDQUxSaXRfLXZQdG00RnlUM0E1TUo1YWNKOWxvQXRwSkhRYklQbmZUV3d3eHVfNEpMUUthMFlQUFgzS01RS2NvMXYtbnV4UVJOYkl4TTN0cw%3D%3D

code=AuthorizationCodeValue&id_token=IdTokenValue&<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.

Penting

Token refresh harus disimpan sebagai rahasia di Key Vault.

Contoh panggilan refresh

Permintaan tempat penampung:

POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 966
Expect: 100-continue

Isi permintaan:

resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue

Respons tempat penampung:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Isi respons:

{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3599","ext_expires_in":"3599","expires_on":"1547579127","not_before":"1547575227","resource":"https://api.partnercenter.microsoft.com","access_token":"Access

Dapatkan token akses

Anda harus mendapatkan token akses sebelum dapat melakukan panggilan ke API Pusat Mitra. Anda harus menggunakan token refresh untuk mendapatkan token akses karena token akses umumnya memiliki masa pakai terbatas (misalnya, kurang dari satu jam).

Permintaan tempat penampung:

POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 1212
Expect: 100-continue

Isi permintaan:

resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id &client_secret= Application-Secret&grant_type=refresh_token&refresh_token=RefreshTokenVlaue&scope=openid

Respons tempat penampung:

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Isi respons:

{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}

Melakukan panggilan API Pusat Mitra

Anda harus menggunakan token akses untuk memanggil API Pusat Mitra. Lihat contoh panggilan berikut.

Contoh panggilan API Pusat Mitra

GET https://api.partnercenter.microsoft.com/v1/customers/CustomerTenantId/users HTTP/1.1
Authorization: Bearer AccessTokenValue
Accept: application/json
X-Locale: en-US
Host: api.partnercenter.microsoft.com

PowerShell

Modul Pusat Mitra PowerShell 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.

Anda dapat menggunakan modul Pusat Mitra PowerShell untuk mengurangi infrastruktur yang diperlukan untuk menukar kode otorisasi dengan token akses. Metode ini bersifat opsional untuk melakukan panggilan REST Pusat Mitra.

Untuk informasi selengkapnya tentang proses ini, lihat Dokumentasi PowerShell Model Aplikasi Aman.

  1. Instal modul Microsoft Entra ID dan Pusat Mitra PowerShell.

    Install-Module AzureAD
    
    Install-Module PartnerCenter
    
  2. Gunakan perintah New-PartnerAccessToken untuk melakukan proses persetujuan dan mengambil token refresh yang diperlukan.

    $credential = Get-Credential
    
    $token = New-PartnerAccessToken -ApplicationId 'xxxx-xxxx-xxxx-xxxx' -Scopes 'https://api.partnercenter.microsoft.com/user_impersonation' -ServicePrincipal -Credential $credential -Tenant 'yyyy-yyyy-yyyy-yyyy' -UseAuthorizationCode
    

    Catatan

    Parameter ServicePrincipal digunakan dengan perintah New-PartnerAccessToken karena aplikasi Microsoft Entra dengan jenis Web/API sedang digunakan. Jenis aplikasi ini mengharuskan pengidentifikasi klien dan rahasia disertakan dalam permintaan token akses. Ketika perintah Get-Credential dipanggil, Anda akan diminta untuk memasukkan nama pengguna dan kata sandi. Masukkan pengidentifikasi aplikasi sebagai nama pengguna. Masukkan rahasia aplikasi sebagai kata sandi. Ketika perintah New-PartnerAccessToken dipanggil, Anda akan diminta untuk memasukkan kredensial lagi. Masukkan kredensial untuk akun layanan yang Anda gunakan. Akun layanan ini harus menjadi akun mitra dengan izin yang sesuai.

  3. Salin nilai token refresh.

    $token.RefreshToken | clip
    

Anda harus menyimpan nilai token refresh di repositori aman, seperti Azure Key Vault. Untuk informasi selengkapnya tentang cara menggunakan modul aplikasi aman dengan PowerShell, lihat artikel autentikasi multifaktor.