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 Kelola Azure AD B2C dengan Microsoft Graph untuk membuat pendaftaran aplikasi yang dapat digunakan oleh aplikasi manajemen Anda.

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

Manajemen nomor telepon pengguna (beta)

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 Azure Active Directory.

Catatan, operasi daftar hanya mengembalikan nomor telepon yang diaktifkan. Nomor telepon berikut harus diaktifkan untuk digunakan dengan operasi daftar.

Enable phone sign-in

Catatan

Dalam versi beta saat ini, API ini hanya berfungsi jika nomor telepon disimpan dengan spasi antara kode negara dan nomor telepon. Layanan Azure AD B2C saat ini tidak menambahkan ruang ini secara default.

Alamat email reset kata sandi layanan mandiri (beta)

Alamat email yang dapat digunakan oleh akun masuk nama pengguna untuk mereset kata sandi. Untuk informasi selengkapnya, lihat API metode autentikasi Microsoft Azure Active Directory.

Metode autentikasi token Oath Perangkat Lunak (beta)

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.

Alur pengguna

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 Microsoft Azure AD melakukan penegasan identitas. Untuk informasi selengkapnya, lihat jenis sumber daya b2cAuthenticationMethodsPolicy.

Kebijakan kustom

Operasi berikut ini memungkinkan Anda mengelola kebijakan Kerangka Kerja Kepercayaan Azure AD B2C, yang dikenal sebagai kebijakan kustom.

Kunci kebijakan

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

Kunci kebijakan Trust Framework

Aplikasi

Properti ekstensi aplikasi

Azure AD B2C menyediakan direktori yang dapat menampung 100 atribut kustom per pengguna. 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.

Log audit

Untuk informasi selengkapnya tentang mengakses log audit Azure AD B2C, lihat Mengakses log audit Azure AD B2C.

Akses Bersyarat

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 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:

  1. Buka proyek di Visual Studio atau Visual Studio Code.

  2. Buka src/appsettings.json.

  3. Di bagian appSettings tersebut, ganti your-b2c-tenantdengan nama penyewa Anda, dan Client secret dan Application (client) ID dengan nilai untuk pendaftaran aplikasi manajemen Anda. Untuk informasi selengkapnya, lihat Mendaftarkan Aplikasi Microsoft Graph.

  4. Buka jendela konsol dalam klon lokal repo, beralih ke src direktori, lalu buat proyek:

    cd src
    dotnet build
    
  5. 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 RunAsync:

  1. Membaca setelan aplikasi dari appsettings.jspada file

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

  3. 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
    IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
        .Create(config.AppId)
        .WithTenantId(config.TenantId)
        .WithClientSecret(config.ClientSecret)
        .Build();
    ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);
    
    // Set up the Microsoft Graph service client with client credentials
    GraphServiceClient graphClient = new GraphServiceClient(authProvider);
    

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...");

    // Get all users (one page)
    var result = await graphClient.Users
        .Request()
        .Select(e => new
        {
            e.DisplayName,
            e.Id,
            e.Identities
        })
        .GetAsync();

    foreach (var user in result.CurrentPage)
    {
        Console.WriteLine(JsonConvert.SerializeObject(user));
    }
}

Melakukan panggilan API menggunakan Microsoft Graph SDK menyertakan informasi tentang cara membaca dan menulis informasi dari Microsoft Graph, digunakan untuk mengontrol properti yang dikembalikan, menyediakan parameter kueri kustom, dan menggunakan $filter parameter dan $orderBy kueri.