Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Berlaku mulai 1 Mei 2025, Azure AD B2C tidak akan lagi tersedia untuk dibeli untuk pelanggan baru. Pelajari lebih lanjut di FAQ kami.
Saat mengintegrasikan REST API dalam alur pengguna Azure AD B2C, Anda harus melindungi titik akhir REST API dengan autentikasi. Autentikasi REST API memastikan bahwa hanya layanan yang memiliki kredensial yang tepat, seperti Azure AD B2C, yang dapat melakukan panggilan ke titik akhir Anda. Artikel ini membahas cara mengamankan REST API.
Prasyarat
Selesaikan langkah-langkah di panduan Tambahkan konektor API ke alur pendaftaran pengguna.
Anda dapat melindungi titik akhir API dengan menggunakan autentikasi dasar HTTP atau autentikasi sertifikat klien HTTPS. Dalam kedua kasus tersebut, Anda memberikan kredensial yang digunakan Azure AD B2C saat memanggil titik akhir API Anda. Kemudian titik akhir API Anda akan memeriksa kredensial dan melakukan keputusan otorisasi.
Autentikasi dasar HTTP
Autentikasi dasar HTTP ditentukan dalam RFC 2617. Autentikasi dasar bekerja sebagai berikut:
Azure AD B2C mengirimkan permintaan HTTP dengan kredensial klien (
username
danpassword
) diAuthorization
header.Info masuk diformat sebagai string berkode base64
username:password
.API Anda kemudian bertanggung jawab untuk memeriksa nilai-nilai ini untuk melakukan keputusan otorisasi lainnya.
Untuk mengonfigurasi Konektor API dengan autentikasi dasar HTTP, ikuti langkah-langkah berikut:
- Masuk ke portal Azure.
- Di bawah layanan Azure, pilih Azure AD B2C atau cari dan pilih Azure AD B2C.
- Pilih konektor API, lalu pilih Konektor API yang ingin Anda konfigurasikan.
- Untuk Jenis autentikasi, pilih Dasar.
- Berikan Nama Pengguna, dan Kata Sandi titik akhir REST API Anda.
- Pilih Simpan.
Menambahkan kunci kebijakan nama pengguna dan kata sandi REST API
Untuk mengonfigurasi profil teknis REST API dengan autentikasi dasar HTTP, buat kunci kriptografi berikut untuk menyimpan nama pengguna dan kata sandi:
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa Azure AD B2C Anda dari menu Direktori + langganan .
- Pilih Semua layanan di sudut kiri atas portal Microsoft Azure, lalu cari dan pilih Azure AD B2C.
- Pada halaman Gambaran Umum, pilih Kerangka Kerja Pengalaman Identitas.
- Pilih Kunci Kebijakan, lalu pilih Tambahkan.
- Untuk Opsi, pilih Manual.
- Untuk Nama, ketik RestApiUsername. Awalan B2C_1A_ mungkin ditambahkan secara otomatis.
- Di kotak Rahasia , masukkan nama pengguna REST API.
- Untuk Penggunaan kunci, pilih Enkripsi.
- Pilih Buat.
- Pilih Kunci Kebijakan lagi.
- Pilih Tambahkan.
- Untuk Opsi, pilih Manual.
- Untuk Nama, ketik RestApiPassword. Awalan B2C_1A_ mungkin ditambahkan secara otomatis.
- Di kotak Rahasia , masukkan kata sandi REST API.
- Untuk Penggunaan kunci, pilih Enkripsi.
- Pilih Buat.
Mengonfigurasi profil teknis REST API Anda untuk menggunakan autentikasi dasar HTTP
Setelah membuat kunci yang diperlukan, konfigurasikan metadata profil teknis REST API Anda untuk mereferensikan kredensial.
- Di direktori kerja Anda, buka file kebijakan ekstensi (TrustFrameworkExtensions.xml).
- Cari profil teknis REST API. Misalnya
REST-ValidateProfile
, atauREST-GetProfile
. - Temukan
<Metadata>
elemennya. - Ubah AuthenticationType menjadi
Basic
. - Ubah AllowInsecureAuthInProduction menjadi
false
. - Segera setelah elemen penutup,
</Metadata>
tambahkan cuplikan XML berikut:<CryptographicKeys> <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" /> <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" /> </CryptographicKeys>
Cuplikan XML berikut adalah contoh profil teknis RESTful yang dikonfigurasi dengan autentikasi dasar HTTP:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">Basic</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" />
<Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" />
</CryptographicKeys>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Autentikasi sertifikat klien HTTPS
Autentikasi sertifikat klien adalah autentikasi berbasis sertifikat timbal balik, di mana klien, Azure AD B2C, memberikan sertifikat kliennya ke server untuk membuktikan identitasnya. Ini terjadi sebagai bagian dari jabat tangan SSL. API Anda bertanggung jawab untuk memvalidasi sertifikat milik klien yang valid, seperti Azure AD B2C, dan melakukan keputusan otorisasi. Sertifikat klien adalah sertifikat digital X.509.
Penting
Pada lingkungan produksi, sertifikat harus ditandatangani oleh otoritas sertifikat.
Membuat sertifikat
Opsi 1: Gunakan Azure Key Vault (disarankan)
Untuk membuat sertifikat, Anda dapat menggunakan Azure Key Vault, yang memiliki opsi untuk sertifikat dan integrasi yang ditandatangani sendiri dengan penyedia penerbit sertifikat untuk sertifikat yang ditandatangani. Pengaturan yang disarankan meliputi:
-
Subjek:
CN=<yourapiname>.<tenantname>.onmicrosoft.com
-
Tipe Isi:
PKCS #12
-
Jenis Acton Seumur Hidup:
Email all contacts at a given percentage lifetime
atauEmail all contacts a given number of days before expiry
-
Jenis Kunci:
RSA
-
Ukuran Kunci:
2048
-
Kunci Privat yang Dapat Diekspor:
Yes
(agar dapat mengekspor.pfx
file)
Anda kemudian dapat mengekspor sertifikat.
Opsi 2: menyiapkan sertifikat yang ditandatangani sendiri menggunakan modul PowerShell
Jika Anda belum memiliki sertifikat, Anda dapat menggunakan sertifikat yang ditandatangani sendiri. Sertifikat yang ditandatangani sendiri adalah sertifikat keamanan yang tidak ditandatangani oleh otoritas sertifikat (CA) dan tidak memberikan jaminan keamanan atas sertifikat yang ditandatangani oleh CA.
Di Windows, gunakan cmdlet New-SelfSignedCertificate di PowerShell untuk membuat sertifikat.
Jalankan perintah PowerShell berikut ini untuk membuat sertifikat digital yang ditandatangani sendiri. Ubah argumen
-Subject
yang sesuai untuk aplikasi Anda dan nama penyewa Azure Active Directory B2C seperticontosowebapp.contoso.onmicrosoft.com
. Anda juga dapat mengatur-NotAfter
tanggal untuk menetapkan waktu kedaluwarsa yang berbeda untuk sertifikat.New-SelfSignedCertificate ` -KeyExportPolicy Exportable ` -Subject "CN=yourappname.yourtenant.onmicrosoft.com" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyUsage DigitalSignature ` -NotAfter (Get-Date).AddMonths(12) ` -CertStoreLocation "Cert:\CurrentUser\My"
Di komputer Windows, cari dan pilih Kelola sertifikat pengguna
Di bawah Sertifikat - Pengguna Saat Ini, pilihSertifikat>Pribadi>yourappname.yourtenant.onmicrosoft.com.
Pilih sertifikat, lalu pilih Tindakan>Semua Tugas>Ekspor.
Pilih Berikutnya>Ya, ekspor kunci> privatBerikutnya.
Terima default untuk Ekspor Format File, lalu pilih Berikutnya.
Aktifkan opsi Kata Sandi , masukkan kata sandi untuk sertifikat, lalu pilih Berikutnya.
Untuk menentukan lokasi untuk menyimpan sertifikat Anda, pilih Telusuri dan navigasikan ke direktori pilihan Anda.
Pada jendela Simpan Sebagai , masukkan Nama file, lalu pilih Simpan.
Pilih Berikutnya>Selesai.
Agar Azure Active Directory B2C menerima kata sandi file .pfx, kata sandi harus dienkripsi dengan opsi TripleDES-SHA1 di utilitas Ekspor Simpan Sertifikat Windows, bukan di AES256-SHA256.
Mengonfigurasi Konektor API
Untuk mengonfigurasi Konektor API dengan autentikasi sertifikat klien, ikuti langkah-langkah berikut:
- Masuk ke portal Azure.
- Di bawah layanan Azure, pilih Azure AD B2C.
- Pilih konektor API, lalu pilih Konektor API yang ingin Anda konfigurasikan.
- Untuk Jenis autentikasi, pilih Sertifikat.
- Dalam kotak Unggah sertifikat , pilih file .pfx sertifikat Anda dengan kunci privat.
- Dalam kotak Masukkan Kata Sandi , ketik kata sandi sertifikat.
- Pilih Simpan.
Memberikan keputusan otorisasi
API Anda harus menerapkan otorisasi berdasarkan sertifikat klien yang dikirim untuk melindungi titik akhir API. Untuk Azure App Service dan Azure Functions, lihat mengonfigurasi autentikasi bersama TLS untuk mempelajari cara mengaktifkan dan memvalidasi sertifikat dari kode API Anda. Anda dapat menggunakan Azure API Management sebagai lapisan di depan layanan API apa pun untuk memeriksa properti sertifikat klien terhadap nilai yang diinginkan.
Memperbarui sertifikat
Sebaiknya Anda mengatur peringatan pengingat kapan sertifikat Anda akan kedaluwarsa. Anda perlu membuat sertifikat baru dan mengulangi langkah-langkah di atas saat sertifikat bekas akan kedaluwarsa. Untuk "menggulung" penggunaan sertifikat baru, layanan API Anda dapat terus menerima sertifikat lama dan baru selama jangka waktu sementara ketika sertifikat baru disebarkan.
Untuk mengunggah sertifikat baru ke konektor API yang ada, pilih konektor API di bawah konektor API dan klik Unggah sertifikat baru. Sertifikat yang paling baru diunggah, yang belum kedaluwarsa dan tanggal mulainya telah berlalu akan secara otomatis digunakan oleh Azure AD B2C.
Menambahkan kunci kebijakan sertifikat klien
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa Azure AD B2C Anda dari menu Direktori + langganan .
- Pilih Semua layanan di sudut kiri atas portal Microsoft Azure, lalu cari dan pilih Azure AD B2C.
- Pada halaman Gambaran Umum, pilih Kerangka Kerja Pengalaman Identitas.
- Pilih Kunci Kebijakan, lalu pilih Tambahkan.
- Di kotak Opsi , pilih Unggah.
- Di kotak Nama , ketik RestApiClientCertificate. Awalan B2C_1A_ ditambahkan secara otomatis.
- Di kotak Unggah file , pilih file .pfx sertifikat Anda dengan kunci pribadi.
- Di kotak Kata Sandi , ketik kata sandi sertifikat.
- Pilih Buat.
Mengonfigurasi profil teknis REST API Anda untuk menggunakan autentikasi sertifikat klien
Setelah membuat kunci yang diperlukan, konfigurasikan metadata profil teknis REST API Anda untuk mereferensikan sertifikat klien.
- Di direktori kerja Anda, buka file kebijakan ekstensi (TrustFrameworkExtensions.xml).
- Cari profil teknis REST API. Misalnya
REST-ValidateProfile
, atauREST-GetProfile
. - Temukan
<Metadata>
elemennya. - Ubah AuthenticationType menjadi
ClientCertificate
. - Ubah AllowInsecureAuthInProduction menjadi
false
. - Segera setelah elemen penutup,
</Metadata>
tambahkan cuplikan XML berikut:<CryptographicKeys> <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" /> </CryptographicKeys>
Cuplikan XML berikut adalah contoh profil teknis RESTful yang dikonfigurasi dengan sertifikat klien HTTP:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">ClientCertificate</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
</CryptographicKeys>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Otentikasi pembawa OAuth2
Otentikasi token pembawa didefinisikan dalam Kerangka Kerja Otorisasi OAuth2.0: Penggunaan Token Pembawa (RFC 6750). Dalam autentikasi token pembawa, Azure AD B2C mengirimkan permintaan HTTP dengan token di header otorisasi.
Authorization: Bearer <token>
Token pembawa adalah string buram. Ini bisa berupa token akses JWT atau string apa pun yang diharapkan REST API Azure AD B2C untuk dikirim dalam header otorisasi. Azure AD B2C mendukung jenis berikut:
- Token pembawa. Untuk dapat mengirim token pembawa di profil teknis RESTful, polis Anda harus terlebih dahulu memperoleh token pembawa dan kemudian menggunakannya di profil teknis RESTful.
- Token pembawa statis. Gunakan pendekatan ini saat REST API Anda mengeluarkan token akses jangka panjang. Untuk menggunakan token pembawa statis, buat kunci kebijakan dan buat referensi dari profil teknis RESTful ke kunci kebijakan Anda.
Menggunakan Pembawa OAuth2
Langkah-langkah berikut menunjukkan cara menggunakan kredensial klien untuk mendapatkan token pembawa dan meneruskannya ke header Otorisasi panggilan REST API.
Tentukan klaim untuk menyimpan token pembawa
Klaim menyediakan penyimpanan data sementara selama eksekusi kebijakan Azure AD B2C. Skema klaim adalah tempat Anda menyatakan klaim Anda. Token akses harus disimpan dalam klaim untuk digunakan nanti.
- Buka file ekstensi kebijakan Anda. Contohnya,
SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
. - Cari elemen BuildingBlocks . Jika elemen tidak ada, tambahkan elemen tersebut.
- Temukan elemen ClaimsSchema . Jika elemen tidak ada, tambahkan elemen tersebut.
- Tambahkan klaim berikut ke elemen ClaimsSchema .
<ClaimType Id="bearerToken">
<DisplayName>Bearer token</DisplayName>
<DataType>string</DataType>
</ClaimType>
<ClaimType Id="grant_type">
<DisplayName>Grant type</DisplayName>
<DataType>string</DataType>
</ClaimType>
<ClaimType Id="scope">
<DisplayName>scope</DisplayName>
<DataType>string</DataType>
</ClaimType>
Memperoleh token akses
Anda dapat memperoleh token akses dengan salah satu dari beberapa cara, untuk penyedia identitas federasi, dengan memanggil REST API yang mengembalikan token akses, dengan menggunakan alur ROPC, atau dengan menggunakan alur kredensial klien. Alur kredensial klien biasanya digunakan untuk interaksi server-ke-server yang harus berjalan di latar belakang, tanpa interaksi langsung dengan pengguna.
Peringatan
Microsoft menyarankan Anda untuk tidak menggunakan alur ROPC. Aliran ini membutuhkan tingkat kepercayaan yang sangat tinggi dalam aplikasi, dan membawa risiko yang tidak ada di aliran lain. Anda hanya boleh menggunakan alur ini ketika alur lain yang lebih aman tidak memungkinkan.
Memperoleh token akses Microsoft Entra
Contoh berikut menggunakan profil teknis REST API untuk membuat permintaan ke titik akhir token Microsoft Entra menggunakan kredensial klien yang diteruskan sebagai autentikasi dasar HTTP. Untuk informasi selengkapnya, lihat Platform identitas Microsoft dan alur kredensial klien OAuth 2.0.
Sebelum profil teknis dapat berinteraksi dengan ID Microsoft Entra untuk mendapatkan token akses, Anda perlu mendaftarkan aplikasi. Azure AD B2C mengandalkan platform Microsoft Entra. Anda dapat membuat aplikasi di penyewa Azure AD B2C Anda, atau di penyewa Microsoft Entra mana pun yang Anda kelola. Untuk mendaftarkan aplikasi:
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa Azure AD B2C Anda dari menu Direktori + langganan .
- Di menu sebelah kiri, pilih Microsoft Entra ID. Atau, pilih Semua layanan dan cari dan pilih MICROSOFT Entra ID.
- Pilih Pendaftaran aplikasi, lalu pilih Pendaftaran baru.
- Masukkan Nama untuk aplikasi. Misalnya, Client_Credentials_Auth_app.
- Di bawah Jenis akun yang didukung, pilih Akun di direktori organisasi ini saja.
- Pilih Daftarkan.
- Catat ID Aplikasi (klien).
Untuk alur kredensial klien, Anda perlu membuat rahasia aplikasi. Rahasia klien juga dikenal sebagai kata sandi aplikasi. Aplikasi Anda menggunakan rahasia untuk memperoleh token akses.
- Di halaman ID Microsoft Entra - Pendaftaran aplikasi , pilih aplikasi yang Anda buat, misalnya Client_Credentials_Auth_app.
- Di menu sebelah kiri, di bawah Kelola, pilih Sertifikat & rahasia.
- Pilih Rahasia klien baru.
- Masukkan deskripsi untuk rahasia klien dalam kotak Deskripsi. Misalnya, clientsecret1.
- Di bawah Kedaluwarsa, pilih durasi yang rahasianya valid, lalu pilih Tambahkan.
- Catat Nilai rahasia untuk digunakan dalam kode aplikasi klien Anda. Nilai rahasia ini tidak pernah ditampilkan lagi setelah Anda meninggalkan halaman ini. Anda menggunakan nilai ini sebagai rahasia aplikasi dalam kode aplikasi Anda.
Membuat kunci kebijakan Azure AD B2C
Anda perlu menyimpan ID klien dan nilai rahasia klien yang sebelumnya Anda catat di penyewa Azure AD B2C Anda.
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa Azure AD B2C Anda dari menu Direktori + langganan .
- Pilih Semua layanan di sudut kiri atas portal Microsoft Azure, lalu cari dan pilih Azure AD B2C.
- Pada halaman Gambaran Umum, pilih Kerangka Kerja Pengalaman Identitas.
- Pilih Kunci Kebijakan lalu pilih Tambahkan.
- Untuk Opsi, pilih
Manual
. - Masukkan Nama untuk kunci kebijakan,
SecureRESTClientId
. AwalanB2C_1A_
ditambahkan secara otomatis ke nama kunci Anda. - Di Rahasia, masukkan ID klien yang sebelumnya Anda catat.
- Untuk Penggunaan kunci, pilih
Signature
. - Pilih Buat.
- Buat kunci kebijakan lain dengan pengaturan berikut:
-
Nama:
SecureRESTClientSecret
. - Rahasia: masukkan rahasia klien yang sebelumnya Anda rekam
-
Nama:
Untuk ServiceUrl, ganti your-tenant-name dengan nama penyewa Microsoft Entra Anda. Lihat referensi profil teknis RESTful untuk semua opsi yang tersedia.
<TechnicalProfile Id="REST-AcquireAccessToken">
<DisplayName></DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/oauth2/v2.0/token</Item>
<Item Key="AuthenticationType">Basic</Item>
<Item Key="SendClaimsIn">Form</Item>
</Metadata>
<CryptographicKeys>
<Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_SecureRESTClientId" />
<Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_SecureRESTClientSecret" />
</CryptographicKeys>
<InputClaims>
<InputClaim ClaimTypeReferenceId="grant_type" DefaultValue="client_credentials" AlwaysUseDefaultValue="true" />
<InputClaim ClaimTypeReferenceId="scope" DefaultValue="https://graph.microsoft.com/.default" AlwaysUseDefaultValue="true" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="bearerToken" PartnerClaimType="access_token" />
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Nota
Jika Anda menggunakan klaim grant_type
atau scope
di profil teknis lainnya, klaim tersebut sebaiknya juga menentukan DefaultValue
dan menggunakan AlwaysUseDefaultValue="true"
untuk menghindari potensi konflik dalam mengikat terhadap nilai yang salah.
Ubah profil teknis REST untuk menggunakan autentikasi token pembawa
Untuk mendukung autentikasi token pembawa dalam kebijakan kustom Anda, ubah profil teknis REST API dengan menggunakan langkah-langkah berikut:
Di direktori kerja Anda, buka file kebijakan ekstensi TrustFrameworkExtensions.xml .
Cari
<TechnicalProfile>
simpul yang mengandungId="REST-API-SignUp"
.Temukan
<Metadata>
elemennya.Ubah AuthenticationType menjadi Bearer, sebagai berikut:
<Item Key="AuthenticationType">Bearer</Item>
Ubah atau tambahkan UseClaimAsBearerToken ke bearerToken, sebagai berikut. bearerToken adalah nama klaim tempat token pembawa diambil (klaim keluaran dari
REST-AcquireAccessToken
).<Item Key="UseClaimAsBearerToken">bearerToken</Item>
Tambahkan klaim dari langkah sebelumnya sebagai klaim input:
<InputClaim ClaimTypeReferenceId="bearerToken"/>
Setelah memperbarui kebijakan, profil teknis Anda akan terlihat mirip dengan kode XML berikut:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">Bearer</Item>
<Item Key="UseClaimAsBearerToken">bearerToken</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="bearerToken"/>
</InputClaims>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Hubungi profil teknis REST
Untuk memanggil REST-GetProfile
profil teknis, pertama-tama Anda harus memperoleh token akses Microsoft Entra menggunakan REST-AcquireAccessToken
profil teknis. Contoh berikut menunjukkan cara memanggil REST-GetProfile
profil teknis dari profil teknis validasi:
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
<ValidationTechnicalProfile ReferenceId="REST-GetProfile" />
</ValidationTechnicalProfiles>
Contoh berikut menunjukkan cara memanggil REST-GetProfile
profil teknis dari perjalanan pengguna, atau sub perjalanan:
<OrchestrationSteps>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="REST-AcquireAccessTokens" TechnicalProfileReferenceId="REST-AcquireAccessToken" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="REST-GetProfile" TechnicalProfileReferenceId="REST-GetProfile" />
</ClaimsExchanges>
</OrchestrationStep>
</OrchestrationSteps>
Menggunakan pembawa OAuth2 statis
Menambahkan kunci kebijakan token pembawa OAuth2
Untuk mengonfigurasi profil teknis REST API dengan token pembawa OAuth2, dapatkan token akses dari pemilik REST API. Kemudian buat kunci kriptografi berikut untuk menyimpan token pembawa.
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa Azure AD B2C Anda dari menu Direktori + langganan .
- Pilih Semua layanan di sudut kiri atas portal Microsoft Azure, lalu cari dan pilih Azure AD B2C.
- Pada halaman Gambaran Umum, pilih Kerangka Kerja Pengalaman Identitas.
- Pilih Kunci Kebijakan, lalu pilih Tambahkan.
- Untuk Opsi, pilih
Manual
. - Masukkan Nama untuk kunci kebijakan. Contohnya,
RestApiBearerToken
. AwalanB2C_1A_
ditambahkan secara otomatis ke nama kunci Anda. - Di Rahasia, masukkan rahasia klien yang sebelumnya Anda rekam.
- Untuk Penggunaan kunci, pilih
Encryption
. - Pilih Buat.
Mengonfigurasi profil teknis REST API Anda untuk menggunakan kunci kebijakan token pembawa
Setelah membuat kunci yang diperlukan, konfigurasikan metadata profil teknis REST API Anda untuk mereferensikan token pembawa.
- Di direktori kerja Anda, buka file kebijakan ekstensi (TrustFrameworkExtensions.xml).
- Cari profil teknis REST API. Misalnya
REST-ValidateProfile
, atauREST-GetProfile
. - Temukan
<Metadata>
elemennya. - Ubah AuthenticationType menjadi
Bearer
. - Ubah AllowInsecureAuthInProduction menjadi
false
. - Segera setelah elemen penutup,
</Metadata>
tambahkan cuplikan XML berikut:<CryptographicKeys> <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" /> </CryptographicKeys>
Cuplikan XML berikut adalah contoh profil teknis RESTful yang dikonfigurasi dengan autentikasi token pembawa:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">Bearer</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
</CryptographicKeys>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Tambahkan referensi profil teknis validasi ke profil teknis pendaftaran, yang memanggil REST-AcquireAccessToken
. Perilaku ini berarti bahwa Azure AD B2C melanjutkan untuk membuat akun di direktori hanya setelah validasi berhasil.
Contohnya:
```XML
<ValidationTechnicalProfiles>
....
<ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
....
</ValidationTechnicalProfiles>
Autentikasi kunci API
Beberapa layanan menggunakan mekanisme "kunci API" untuk mengaburkan akses ke titik akhir HTTP Anda selama pengembangan dengan mengharuskan pemanggil untuk menyertakan kunci unik sebagai header HTTP atau parameter kueri HTTP. Untuk Azure Functions, Anda dapat menyelesaikannya dengan menyertakan code
sebagai parameter kueri di URL Titik akhir koneksi API Anda. (Misalnya, https://contoso.azurewebsites.net/api/endpoint
?code=0123456789
).
Ini bukan mekanisme yang harus digunakan sendiri dalam produksi. Oleh karena itu, konfigurasi untuk autentikasi dasar atau sertifikat selalu diperlukan. Jika Anda tidak ingin menerapkan metode autentikasi apa pun (tidak disarankan) untuk tujuan pengembangan, Anda dapat memilih autentikasi 'dasar' dalam konfigurasi konektor API dan menggunakan nilai sementara untuk username
dan password
yang dapat diabaikan oleh API Anda saat Anda menerapkan otorisasi yang tepat.
Kunci API adalah pengidentifikasi unik yang digunakan untuk mengautentikasi pengguna untuk mengakses titik akhir REST API. Kunci dikirim dalam header HTTP kustom. Misalnya, pemicu HTTP Azure Functions menggunakan x-functions-key
header HTTP untuk mengidentifikasi pemohon.
Menambahkan kebijakan kunci API
Untuk mengonfigurasi profil teknis REST API dengan autentikasi kunci API, buat kunci kriptografi berikut untuk menyimpan kunci API:
- Masuk ke portal Azure.
- Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa Azure AD B2C Anda dari menu Direktori + langganan .
- Pilih Semua layanan di sudut kiri atas portal Microsoft Azure, lalu cari dan pilih Azure AD B2C.
- Pada halaman Gambaran Umum, pilih Kerangka Kerja Pengalaman Identitas.
- Pilih Kunci Kebijakan, lalu pilih Tambahkan.
- Untuk Opsi, pilih Manual.
- Untuk Nama, ketik RestApiKey. Awalan B2C_1A_ mungkin ditambahkan secara otomatis.
- Di kotak Rahasia , masukkan kunci REST API.
- Untuk Penggunaan kunci, pilih Enkripsi.
- Pilih Buat.
Mengonfigurasi profil teknis REST API Anda untuk menggunakan autentikasi kunci API
Setelah membuat kunci yang diperlukan, konfigurasikan metadata profil teknis REST API Anda untuk mereferensikan kredensial.
- Di direktori kerja Anda, buka file kebijakan ekstensi (TrustFrameworkExtensions.xml).
- Cari profil teknis REST API. Misalnya
REST-ValidateProfile
, atauREST-GetProfile
. - Temukan
<Metadata>
elemennya. - Ubah AuthenticationType menjadi
ApiKeyHeader
. - Ubah AllowInsecureAuthInProduction menjadi
false
. - Segera setelah elemen penutup,
</Metadata>
tambahkan cuplikan XML berikut:<CryptographicKeys> <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" /> </CryptographicKeys>
Id kunci kriptografi menentukan header HTTP. Dalam contoh ini, kunci API dikirim sebagai x-functions-key.
Cuplikan XML berikut adalah contoh profil teknis RESTful yang dikonfigurasi untuk memanggil Azure Function dengan autentikasi kunci API:
<ClaimsProvider>
<DisplayName>REST APIs</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="REST-GetProfile">
<DisplayName>Get user extended profile Azure Function web hook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AuthenticationType">ApiKeyHeader</Item>
<Item Key="AllowInsecureAuthInProduction">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" />
</CryptographicKeys>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Konten terkait
- Mulai dengan sampel kami.
- Pelajari lebih lanjut elemen profil teknis RESTful dalam referensi kebijakan kustom.