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.
Ruang lingkup
Artikel ini berkaitan dengan CSP dan CPV.
CPVs
- CPV adalah vendor perangkat lunak independen yang mengembangkan aplikasi untuk digunakan oleh mitra CSP untuk diintegrasikan dengan API Pusat Mitra.
- CPV bukan mitra CSP dengan akses langsung ke Pusat Mitra atau API.
Penyedia Layanan Komunikasi (CSPs)
- Penyedia tidak langsung CSP dan mitra langsung CSP yang menggunakan autentikasi ID aplikasi + pengguna dan berintegrasi langsung dengan API Partner Center.
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 Secure Application Model, yang mencakup prinsip dan praktik terbaik untuk membuat aplikasi marketplace berkelanjutan dan kuat dari kompromi keamanan.
Contoh
Dokumen gambaran umum dan kode sampel berikut menjelaskan bagaimana mitra dapat menerapkan kerangka kerja Model Aplikasi Aman:
Membuat aplikasi CSP atau CPV yang aman
-
Java SDK 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 dapat mendapatkan bantuan dari komunitas atau membuka masalah di GitHub jika Anda mengalami masalah.
ISTIRAHAT
Untuk melakukan panggilan REST dengan kerangka kerja Model Aplikasi Aman dengan kode sampel, ikuti langkah-langkah berikut:
- Mengaktifkan kerangka kerja Model Aplikasi Aman
- Mengaktifkan kerangka kerja Model Aplikasi Aman
Membuat aplikasi web
Buat aplikasi Microsoft Entra.
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.
Pusat Mitra Microsoft (beberapa penyewa menunjukkan SampleBECApp)
API Manajemen Azure (jika Anda berencana untuk menggunakan API Azure)
Windows Azure Active Directory
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/
.Perhatikan informasi berikut dari pengaturan aplikasi web Anda di ID Microsoft Entra:
- ID Aplikasi
- Rahasia aplikasi
Nota
Disarankan untuk menggunakan sertifikat sebagai rahasia aplikasi Anda. Namun, Anda juga dapat membuat kunci aplikasi di portal Microsoft 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:
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).
Ganti Id Aplikasi dengan ID aplikasi Microsoft Entra (GUID) Anda.
Saat diminta, masuk dengan akun pengguna Anda yang telah dikonfigurasi dengan MFA.
Saat diminta, masukkan informasi MFA lainnya (nomor telepon atau alamat email) untuk memverifikasi login Anda.
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 penanda refresh
Anda kemudian harus menggunakan kode otorisasi Anda untuk mendapatkan token refresh:
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.Perhatikan token refresh yang dikembalikan.
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":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}
Mendapatkan 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 penanda sementara:
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
Respon pengganti sementara
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"}
Lakukan 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 Partner Center 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 dapat mendapatkan bantuan dari komunitas atau membuka masalah di GitHub jika Anda mengalami masalah.
Anda dapat menggunakan modul Partner Center 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 Secure App Model PowerShell.
Instal modul Microsoft Entra ID dan modul PowerShell Pusat Partner.
Install-Module AzureAD
Install-Module PartnerCenter
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
Nota
Parameter ServicePrincipal digunakan dengan perintah New-PartnerAccessToken karena sedang digunakan aplikasi Microsoft Entra dengan jenis Web/API. 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.
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.