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.

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.

Enable phone sign-in

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.

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.

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

Kunci kebijakan Trust Framework

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.

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 akhir v1.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

Mengambil atau memulihkan pengguna dan aplikasi yang dihapus

Pengguna dan aplikasi yang dihapus hanya dapat dipulihkan jika dihapus dalam 30 hari terakhir.

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:

  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 file program.cs:

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