Mengelola AAD B2C dengan Microsoft Graph
Microsoft Graph memungkinkan Anda mengelola sumber daya di direktori Azure AD B2C Anda. Operasi API Microsoft Graph mendukung pengelolaan sumber daya Azure AD B2C, termasuk pengguna, penyedia identitas, alur pengguna, kebijakan kustom, dan kunci kebijakan. Setiap tautan di bagian berikut menargetkan halaman terkait dalam referensi Microsoft Graph API untuk operasi tersebut.
Catatan
Anda juga dapat membuat direktori Azure AD B2C secara terprogram itu sendiri, bersama dengan sumber daya Azure terkait yang ditautkan ke langganan Azure. Fungsi ini tidak diberikan melalui Microsoft Graph API, tetapi melalui Azure REST API. Untuk informasi selengkapnya, lihat Penyewa B2C - Buat.
Tonton video ini untuk mempelajari tentang migrasi pengguna Azure Active Directory B2C menggunakan API Microsoft Graph.
Prasyarat
- Untuk menggunakan MS Graph API, dan berinteraksi dengan sumber daya di penyewa Azure AD B2C, Anda memerlukan pendaftaran aplikasi yang memberikan izin untuk melakukannya. Ikuti langkah-langkah dalam artikel Mendaftarkan aplikasi Microsoft Graph untuk membuat pendaftaran aplikasi yang dapat digunakan aplikasi manajemen Anda.
Manajemen pengguna
Catatan
Azure Active Directory B2C saat ini tidak mendukung kemampuan kueri tingkat lanjut pada objek direktori. Ini berarti bahwa tidak ada dukungan untuk $count
, $search
parameter kueri dan Bukan (not
), Tidak sama dengan (ne
), dan Diakhiri dengan operator (endsWith
) di $filter
parameter kueri. Untuk informasi selengkapnya, lihat parameter kueri di Microsoft Graph dan kemampuan kueri lanjutan di Microsoft Graph.
- Pengguna daftar
- Membuat pengguna konsumen
- Mendapatkan pengguna
- Memperbarui pengguna
- Menghapus pengguna
Manajemen nomor telepon pengguna
Nomor telepon yang dapat digunakan oleh pengguna untuk masuk menggunakan SMS atau panggilan suara, atau autentikasi multifaktor. Untuk informasi selengkapnya, lihat API metode autentikasi Microsoft Entra.
Catatan, operasi daftar hanya mengembalikan nomor telepon yang diaktifkan. Nomor telepon berikut harus diaktifkan untuk digunakan dengan operasi daftar.
Catatan
Nomor telepon yang diwakili dengan benar disimpan dengan spasi antara kode negara dan nomor telepon. Layanan Azure AD B2C saat ini tidak menambahkan ruang ini secara default.
Alamat email pengaturan ulang kata sandi mandiri
Alamat email yang dapat digunakan oleh akun masuk nama pengguna untuk mereset kata sandi. Untuk informasi selengkapnya, lihat API metode autentikasi Microsoft Entra.
Metode autentikasi token OATH perangkat lunak
Token OATH perangkat lunak adalah pembuat nomor berbasis perangkat lunak yang menggunakan standar kata sandi satu kali (TOTP) berbasis waktu OATH untuk autentikasi multifaktor melalui aplikasi pengautentikasi. Gunakan API Microsoft Graph untuk mengelola token OATH perangkat lunak yang terdaftar untuk pengguna:
IdP
Kelola penyedia identitas yang tersedia untuk alur pengguna Anda di penyewa Azure AD B2C Anda.
- Mencantumkan penyedia identitas yang tersedia di penyewa Azure AD B2C
- Mencantumkan penyedia identitas yang dikonfigurasi di penyewa Azure AD B2C
- Membuat idP
- Mendapatkan idP
- Memperbaharui idP
- Menghapus idP
Alur pengguna (beta)
Konfigurasikan kebijakan bawaan untuk pendaftaran, pendaftaran, pendaftaran gabungan, dan masuk, reset kata sandi, dan pembaruan profil.
Metode autentikasi alur pengguna (beta)
Pilih mekanisme untuk mengizinkan pengguna mendaftar melalui akun lokal. Akun lokal adalah akun tempat Azure AD B2C melakukan pernyataan identitas. Untuk informasi selengkapnya, lihat jenis sumber daya b2cAuthenticationMethodsPolicy.
Kebijakan kustom (beta)
Operasi berikut ini memungkinkan Anda mengelola kebijakan Kerangka Kerja Kepercayaan Azure AD B2C, yang dikenal sebagai kebijakan kustom.
- Mencantumkan semua kebijakan kerangka kerja kepercayaan yang dikonfigurasi dalam penyewa
- Membuat kebijakan kerangka kerja kepercayaan
- Membaca properti dari kebijakan kerangka kerja kepercayaan yang ada
- Membuat kebijakan kerangka kerja kepercayaan.
- Menghapus kebijakan kerangka kerja kepercayaan yang sudah ada
Kunci kebijakan (beta)
Kerangka Kerja Pengalaman Identitas menyimpan rahasia yang dirujuk dalam kebijakan kustom untuk membangun kepercayaan antar komponen. Rahasia ini bisa menjadi kunci/nilai simetris atau asimetris. Di portal Microsoft Azure, entitas ini ditampilkan sebagai kunci Kebijakan.
Sumber daya tingkat teratas untuk kunci kebijakan di Microsoft Graph API adalah Set kunci Kerangka Kerja Tepercaya. Setiap Set Kunci berisi setidaknya satu Kunci. Untuk membuat kunci, pertama-tama buat set kunci kosong, lalu buat kunci di set kunci. Anda dapat membuat rahasia manual, mengunggah sertifikat, atau kunci PKCS12. Kuncinya bisa menjadi rahasia yang dihasilkan, string (seperti rahasia aplikasi Facebook), atau sertifikat yang Anda unggah. Jika set kunci memiliki beberapa tombol, hanya satu tombol yang aktif.
Set kunci kebijakan Trust Framework
- Mencantumkan set kunci kerangka kerja kepercayaan
- Membuat set kunci kerangka kerja kepercayaan
- Dapatkan set kunci
- Memperbarui set kunci kerangka kerja kepercayaan
- Menghapus set kunci kerangka kerja kepercayaan
Kunci kebijakan Trust Framework
- Dapatkan kunci aktif saat ini di set kunci
- Hasilkan kunci dalam set kunci
- Mengunggah rahasia berbasis string
- Mengunggah sertifikat X.509
- Mengunggah sertifikat format PKCS12
Aplikasi
- Mencantumkan aplikasi
- Membuat aplikasi
- Memperbarui aplikasi
- Membuat servicePrincipal
- Membuat oauth2Permission Grant
- Hapus aplikasi
Properti ekstensi aplikasi (ekstensi direktori)
Properti ekstensi aplikasi juga dikenal sebagai direktori atau ekstensi Microsoft Entra. Untuk mengelolanya di Azure AD B2C, gunakan jenis sumber daya identityUserFlowAttribute dan metode terkait.
- Membuat atribut alur pengguna
- Mendaftarkan atribut alur pengguna
- Mendapatkan atribut alur pengguna
- Memperbarui atribut alur pengguna
- Menghapus atribut alur pengguna
Anda dapat menyimpan hingga 100 nilai ekstensi direktori per pengguna. Untuk mengelola nilai ekstensi untuk pengguna, gunakan API Pengguna berikut di Microsoft Graph.
- Memperbarui pengguna: Untuk menulis atau menghapus nilai properti ekstensi dari objek pengguna.
- Mendapatkan pengguna: Untuk mengambil nilai ekstensi direktori untuk pengguna. Properti akan dikembalikan secara default melalui titik akhir
beta
, tetapi hanya pada$select
melalui titik akhirv1.0
.
Untuk alur pengguna, properti ekstensi ini dikelola dengan menggunakan portal Microsoft Azure. Untuk kebijakan kustom, Azure AD B2C membuat properti untuk Anda, pertama kalinya kebijakan menulis nilai ke properti ekstensi.
Catatan
Di ID Microsoft Entra, ekstensi direktori dikelola melalui jenis sumber daya extensionProperty dan metode terkaitnya. Namun, karena digunakan di B2C melalui b2c-extensions-app
aplikasi yang tidak boleh diperbarui, mereka dikelola di Azure AD B2C menggunakan jenis sumber daya identityUserFlowAttribute dan metode terkait.
Penggunaan penyewa
Gunakan API Dapatkan detail organisasi untuk mendapatkan kuota ukuran direktori Anda. Anda perlu menambahkan parameter kueri seperti yang $select
diperlihatkan dalam permintaan HTTP berikut:
GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota
Ganti organization-id
dengan ID organisasi atau penyewa Anda.
Respons terhadap permintaan di atas terlihat mirip dengan cuplikan JSON berikut:
{
"directorySizeQuota": {
"used": 156,
"total": 1250000
}
}
Log audit
Untuk informasi selengkapnya tentang mengakses log audit Azure AD B2C, lihat Mengakses log audit Azure AD B2C.
Akses Bersyarat
- Mencantumkan templat bawaan untuk skenario kebijakan Akses Bersyariah
- Mencantumkan semua kebijakan Akses Bersyarat
- Membaca properti dan hubungan kebijakan Akses Bersyarat
- Membuat kebijakan Akses Bersyarat baru
- Memperbarui kebijakan Akses Bersyarat
- Menghapus kebijakan Akses Bersyarat
Mengambil atau memulihkan pengguna dan aplikasi yang dihapus
Pengguna dan aplikasi yang dihapus hanya dapat dipulihkan jika dihapus dalam 30 hari terakhir.
- Mendaftarkan item yang dihapus
- Mendapatkan item yang dihapus
- Memulihkan blob yang dihapus
- Menghapus item yang dihapus secara permanen
Cara mengelola Microsoft Graph secara terprogram
Ketika Anda ingin mengelola Microsoft Graph, Anda dapat melakukannya sebagai aplikasi menggunakan izin aplikasi, atau Anda dapat menggunakan izin yang didelegasikan. Untuk izin yang didelegasikan, pengguna atau administrator menyetujui izin yang diminta aplikasi. Aplikasi ini diberi izin untuk bertindak sebagai pengguna masuk ketika melakukan panggilan ke sumber daya target. Izin aplikasi digunakan oleh aplikasi yang tidak memerlukan kehadiran pengguna yang masuk dan karenanya memerlukan izin aplikasi. Karena itu, hanya administrator yang dapat menyetujui izin aplikasi.
Catatan
Izin yang didelegasikan untuk pengguna yang masuk melalui alur pengguna atau kebijakan khusus tidak dapat digunakan terhadap izin yang didelegasikan untuk API Microsoft Graph.
Contoh kode: Cara mengelola akun pengguna secara terprogram
Contoh kode ini adalah aplikasi konsol .NET Core yang menggunakan Microsoft Graph SDK untuk berinteraksi dengan Microsoft Graph API. Kodenya menunjukkan cara memanggil API untuk mengelola pengguna secara terprogram di penyewa Azure AD B2C. Anda dapat mengunduh arsip sampel (*.zip), menelusuri repositori di GitHub, atau mengkloning repositori:
git clone https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management.git
Setelah Anda mendapatkan sampel kode, konfigurasikan untuk lingkungan Anda lalu buat proyek:
Buka proyek di Visual Studio atau Visual Studio Code.
Buka
src/appsettings.json
.Di bagian
appSettings
tersebut, gantiyour-b2c-tenant
dengan nama penyewa Anda, danClient secret
danApplication (client) ID
dengan nilai untuk pendaftaran aplikasi manajemen Anda. Untuk informasi selengkapnya, lihat Mendaftarkan Aplikasi Microsoft Graph.Buka jendela konsol dalam klon lokal repo, beralih ke
src
direktori, lalu buat proyek:cd src dotnet build
Jalankan aplikasi dengan
dotnet
perintah:dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
Aplikasi ini menampilkan daftar perintah yang dapat Anda jalankan. Misalnya, mendapatkan semua pengguna, mendapatkan satu pengguna, menghapus pengguna, memperbarui kata sandi pengguna, dan mengimpor secara massal.
Catatan
Agar aplikasi dapat memperbarui kata sandi akun pengguna, Anda harus memberikan peran administrator pengguna ke aplikasi.
Diskusi kode
Kode sampel menggunakan Microsoft Graph SDK, yang dirancang untuk menyederhanakan pembangunan aplikasi berkualitas tinggi, efisien, dan tangguh yang mengakses Microsoft Graph.
Setiap permintaan ke Microsoft Graph API memerlukan token akses untuk autentikasi. Solusi ini menggunakan paket Microsoft.Graph.Auth NuGet yang menyediakan pembungkus berbasis skenario autentikasi Microsoft Authentication Library (MSAL) untuk digunakan dengan Microsoft Graph SDK.
RunAsync
Metode dalam file program.cs:
- Membaca setelan aplikasi dari appsettings.jspada file
- Menginisialisasi penyedia auth menggunakan aliran informasi masuk kredensial klien OAuth 2.0. Dengan alur informasi masuk kredensial klien, aplikasi ini bisa mendapatkan token akses untuk memanggil Microsoft Graph API.
- Menyiapkan klien layanan Microsoft Graph dengan penyedia auth:
// Read application settings from appsettings.json (tenant ID, app ID, client secret, etc.)
AppSettings config = AppSettingsFile.ReadFromJsonFile();
// Initialize the client credential auth provider
var scopes = new[] { "https://graph.microsoft.com/.default" };
var clientSecretCredential = new ClientSecretCredential(config.TenantId, config.AppId, config.ClientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
GraphServiceClient yang diinisialisasi kemudian digunakan di UserService.cs untuk melakukan operasi manajemen pengguna. Misalnya, mendapatkan daftar akun pengguna di penyewa:
public static async Task ListUsers(GraphServiceClient graphClient)
{
Console.WriteLine("Getting list of users...");
try
{
// Get all users
var users = await graphClient.Users
.Request()
.Select(e => new
{
e.DisplayName,
e.Id,
e.Identities
})
.GetAsync();
// Iterate over all the users in the directory
var pageIterator = PageIterator<User>
.CreatePageIterator(
graphClient,
users,
// Callback executed for each user in the collection
(user) =>
{
Console.WriteLine(JsonSerializer.Serialize(user));
return true;
},
// Used to configure subsequent page requests
(req) =>
{
Console.WriteLine($"Reading next page of users...");
return req;
}
);
await pageIterator.IterateAsync();
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex.Message);
Console.ResetColor();
}
}
Melakukan panggilan API menggunakan Microsoft Graph SDK menyertakan informasi tentang cara membaca dan menulis informasi dari Microsoft Graph, digunakan $select
untuk mengontrol properti yang dikembalikan, menyediakan parameter kueri kustom, dan menggunakan $filter
parameter dan $orderBy
kueri.
Langkah berikutnya
- Untuk sampel kode di JavaScript dan Node.js, silakan lihat: Mengelola akun pengguna B2C dengan MSAL.js dan Microsoft Graph SDK
- Jelajahi Graph Explorer yang memungkinkan Anda mencoba Microsoft Graph API dan mempelajarinya.