Azure AD B2C’yi Microsoft Graph ile yönetme

Microsoft Graph, Azure AD B2C dizininizdeki kaynakları yönetmenize olanak tanır. Aşağıdaki Microsoft Graph API işlemleri kullanıcılar, kimlik sağlayıcıları, kullanıcı akışları, özel ilkeler ve ilke anahtarları gibi Azure AD B2C kaynaklarının yönetimi için desteklenir. Aşağıdaki bölümlerde yer alan her bağlantı, bu işlem için Microsoft Graph API başvurusu içindeki ilgili sayfayı hedefler.

Dekont

Ayrıca, bir Azure aboneliğine bağlı ilgili Azure kaynağıyla birlikte program aracılığıyla bir Azure AD B2C dizini de oluşturabilirsiniz. Bu işlev Microsoft Graph API'sinde değil Azure REST API'sinde kullanıma sunulur. Daha fazla bilgi için bkz . B2C Kiracıları - Oluşturma.

Microsoft Graph API'sini kullanarak Azure AD B2C kullanıcı geçişi hakkında bilgi edinmek için bu videoyu izleyin.

Önkoşullar

Kullanıcı yönetimi

Dekont

Azure AD B2C şu anda dizin nesnelerinde gelişmiş sorgu özelliklerini desteklememektedir. Bu, sorgu parametresinde , $search sorgu parametreleri ve Not (not), Not equals ()ne ve Ends with (endsWith) işleçleri $filter için $countdestek olmadığı anlamına gelir. Daha fazla bilgi için bkz. Microsoft Graph'ta sorgu parametreleri ve Microsoft Graph'taki gelişmiş sorgu özellikleri.

Kullanıcı telefon numarası yönetimi

Bir kullanıcı tarafından SMS veya sesli aramalar ya da çok faktörlü kimlik doğrulaması kullanarak oturum açmak için kullanılabilecek bir telefon numarası. Daha fazla bilgi için bkz . Microsoft Entra kimlik doğrulama yöntemleri API'si.

Liste işleminin yalnızca etkinleştirilmiş telefon numaralarını döndürdüğüne dikkat edin. Liste işlemleriyle birlikte kullanmak için aşağıdaki telefon numarasının etkinleştirilmesi gerekir.

Enable phone sign-in

Dekont

Doğru temsil edilen bir telefon numarası, ülke kodu ile telefon numarası arasında bir boşlukla depolanır. Azure AD B2C hizmeti şu anda varsayılan olarak bu alanı eklemez.

Self servis parola sıfırlama e-posta adresi

Parolayı sıfırlamak için kullanıcı adı oturum açma hesabı tarafından kullanılabilecek bir e-posta adresi. Daha fazla bilgi için bkz . Microsoft Entra kimlik doğrulama yöntemleri API'si.

Yazılım OATH belirteci kimlik doğrulama yöntemi

Yazılım OATH belirteci, kimlik doğrulayıcı uygulaması aracılığıyla çok faktörlü kimlik doğrulaması için OATH zamana bağlı tek seferlik parola (TOTP) standardını kullanan yazılım tabanlı bir sayı oluşturucudur. Kullanıcıya kayıtlı bir yazılım OATH belirtecini yönetmek için Microsoft Graph API'sini kullanın:

Kimlik sağlayıcıları

Azure AD B2C kiracınızdaki kullanıcı akışlarınızda kullanılabilen kimlik sağlayıcılarını yönetin.

Kullanıcı akışı (beta)

Kaydolma, oturum açma, birleştirilmiş kaydolma ve oturum açma, parola sıfırlama ve profil güncelleştirmesi için önceden oluşturulmuş ilkeleri yapılandırın.

Kullanıcı akışı kimlik doğrulama yöntemleri (beta)

Kullanıcıların yerel hesaplar aracılığıyla kaydolmasına izin vermek için bir mekanizma seçin. Yerel hesaplar, Azure AD B2C'nin kimlik onayını yaptığı hesaplardır. Daha fazla bilgi için bkz . b2cAuthenticationMethodsPolicy kaynak türü.

Özel ilkeler (beta)

Aşağıdaki işlemler, özel ilkeler olarak bilinen Azure AD B2C Güven Çerçevesi ilkelerinizi yönetmenize olanak sağlar.

İlke anahtarları (beta)

Kimlik Deneyimi Çerçevesi, bileşenler arasında güven oluşturmak için özel bir ilkede başvuruda bulunılan gizli dizileri depolar. Bu gizli diziler simetrik veya asimetrik anahtarlar/değerler olabilir. Azure portalında bu varlıklar İlke anahtarları olarak gösterilir.

Microsoft Graph API'sindeki ilke anahtarları için en üst düzey kaynak, Güvenilen Çerçeve Anahtar Kümesi'dir. Her Anahtar Kümesi en az bir Anahtar içerir. Anahtar oluşturmak için önce boş bir anahtar kümesi oluşturun ve ardından anahtar kümesinde bir anahtar oluşturun. El ile gizli dizi oluşturabilir, sertifika veya PKCS12 anahtarı yükleyebilirsiniz. Anahtar, oluşturulan bir gizli dizi, bir dize (Facebook uygulama gizli dizisi gibi) veya karşıya yüklediğiniz bir sertifika olabilir. Bir anahtar kümesinin birden çok anahtarı varsa, anahtarlardan yalnızca biri etkindir.

Güven Çerçevesi ilkesi anahtar kümesi

Güven Çerçevesi ilke anahtarı

Uygulamalar

Uygulama uzantısı (dizin uzantısı) özellikleri

Uygulama uzantısı özellikleri dizin veya Microsoft Entra uzantıları olarak da bilinir. Bunları Azure AD B2C'de yönetmek için identityUserFlowAttribute kaynak türünü ve ilişkili yöntemlerini kullanın.

Kullanıcı başına en fazla 100 dizin uzantısı değeri depolayabilirsiniz. Bir kullanıcının dizin uzantısı özelliklerini yönetmek için Microsoft Graph'ta aşağıdaki Kullanıcı API'lerini kullanın.

  • Kullanıcıyı güncelleştir: Kullanıcı nesnesinden dizin uzantısı özelliğinin değerini yazmak veya kaldırmak için.
  • Kullanıcı alma: Kullanıcının dizin uzantısının değerini almak için. özelliği varsayılan olarak uç nokta üzerinden beta döndürülür, ancak yalnızca uç nokta üzerinden v1.0 döndürülür$select.

Kullanıcı akışları için bu uzantı özellikleri Azure portalı kullanılarak yönetilir. Özel ilkeler için Azure AD B2C, ilke uzantı özelliğine ilk kez bir değer yazdığında sizin için özelliğini oluşturur.

Dekont

Microsoft Entra Id'de dizin uzantıları extensionProperty kaynak türü ve ilişkili yöntemleri aracılığıyla yönetilir. Ancak, B2C'de güncelleştirilmemesi gereken uygulama aracılığıyla kullanıldığındanb2c-extensions-app, identityUserFlowAttribute kaynak türü ve ilişkili yöntemleri kullanılarak Azure AD B2C'de yönetilirler.

Kiracı kullanımı

Dizin boyutu kotanızı almak için Kuruluş ayrıntılarını al API'sini kullanın. Sorgu parametresini $select aşağıdaki HTTP isteğinde gösterildiği gibi eklemeniz gerekir:

GET https://graph.microsoft.com/v1.0/organization/organization-id?$select=directorySizeQuota

öğesini kuruluşunuz veya kiracı kimliğiniz ile değiştirin organization-id .

Yukarıdaki isteğin yanıtı aşağıdaki JSON kod parçacığına benzer:

{
    "directorySizeQuota": {
        "used": 156,
        "total": 1250000
    }
}

Denetim günlükleri

Azure AD B2C denetim günlüklerine erişme hakkında daha fazla bilgi için bkz . Azure AD B2C denetim günlüklerine erişme.

Koşullu Erişim

Silinen kullanıcıları ve uygulamaları alma veya geri yükleme

Silinen kullanıcılar ve uygulamalar yalnızca son 30 gün içinde silinmişse geri yüklenebilir.

Microsoft Graph'ı program aracılığıyla yönetme

Microsoft Graph'ı yönetmek istediğinizde, bunu uygulama izinlerini kullanarak uygulama olarak yapabilir veya temsilci izinlerini kullanabilirsiniz. Temsilci izinleri için, kullanıcı veya yönetici uygulamanın istediği izinleri onaylar. Uygulamaya, hedef kaynağa çağrı yaparken oturum açmış bir kullanıcı gibi davranması için temsilci izni verilir. Uygulama izinleri, oturum açmış bir kullanıcının mevcut olmasını gerektirmeyen ve bu nedenle uygulama izinleri gerektiren uygulamalar tarafından kullanılır. Bu nedenle, yalnızca yöneticiler uygulama izinlerine onay verebilir.

Dekont

Kullanıcı akışları veya özel ilkeler aracılığıyla oturum açmış kullanıcılar için temsilci izinleri, Microsoft Graph API'sinde temsilci izinlerinde kullanılamaz.

Kod örneği: Kullanıcı hesaplarını program aracılığıyla yönetme

Bu kod örneği, Microsoft Graph API'siyle etkileşime geçmek için Microsoft Graph SDK'sını kullanan bir .NET Core konsol uygulamasıdır. Kodu, Azure AD B2C kiracısında kullanıcıları program aracılığıyla yönetmek için API'yi çağırmayı gösterir. Örnek arşivi (*.zip) indirebilir, GitHub'daki depoya göz atabilir veya depoyu kopyalayabilirsiniz:

git clone https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management.git

Kod örneğini aldıktan sonra ortamınız için yapılandırın ve projeyi oluşturun:

  1. Projeyi Visual Studio veya Visual Studio Code'da açın.

  2. src/appsettings.json'ı açın.

  3. appSettings bölümünde değerini kiracınızın adıyla ve Application (client) IDClient secret yönetim uygulaması kaydınızın değerleriyle değiştirinyour-b2c-tenant. Daha fazla bilgi için bkz . Microsoft Graph Uygulaması Kaydetme.

  4. Deponuzun yerel kopyası içinde bir konsol penceresi açın, dizine src geçin ve projeyi derleyin:

    cd src
    dotnet build
    
  5. Uygulamayı şu komutla dotnet çalıştırın:

    dotnet bin/Debug/netcoreapp3.1/b2c-ms-graph.dll
    

Uygulama, yürütebileceğiniz komutların listesini görüntüler. Örneğin, tüm kullanıcıları alın, tek bir kullanıcı alın, bir kullanıcıyı silin, kullanıcının parolasını güncelleştirin ve toplu içeri aktarabilirsiniz.

Dekont

Uygulamanın kullanıcı hesabı parolalarını güncelleştirmesi için uygulamaya kullanıcı yöneticisi rolü vermeniz gerekir.

Kod tartışması

Örnek kod, Microsoft Graph'a erişen yüksek kaliteli, verimli ve dayanıklı uygulamalar derlemeyi basitleştirmek için tasarlanan Microsoft Graph SDK'sını kullanır.

Microsoft Graph API'sine yönelik tüm istekler kimlik doğrulaması için bir erişim belirteci gerektirir. Çözüm, Microsoft Graph SDK'sı ile kullanılmak üzere Microsoft Kimlik Doğrulama Kitaplığı'nın (MSAL) kimlik doğrulama senaryo tabanlı sarmalayıcısını sağlayan Microsoft.Graph.Auth NuGet paketini kullanır.

RunAsync Program.cs dosyasındaki yöntemi:

  1. appsettings.json dosyasından uygulama ayarlarını okur
  2. OAuth 2.0 istemci kimlik bilgileri verme akışını kullanarak kimlik doğrulama sağlayıcısını başlatır. İstemci kimlik bilgileri verme akışı ile uygulama, Microsoft Graph API'sini çağırmak için bir erişim belirteci alabilir.
  3. Kimlik doğrulama sağlayıcısıyla Microsoft Graph hizmet istemcisini ayarlar:
// 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);

Başlatılan GraphServiceClient, kullanıcı yönetimi işlemlerini gerçekleştirmek için UserService.cs dosyasında kullanılır. Örneğin, kiracıdaki kullanıcı hesaplarının listesini alma:

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();
    }
}

Microsoft Graph SDK'larını kullanarak API çağrıları yapın; Microsoft Graph'tan bilgi okuma ve yazma, döndürülen özellikleri denetlemek için kullanma$select, özel sorgu parametreleri sağlama ve ve $orderBy sorgu parametrelerini kullanma $filter hakkında bilgi içerir.

Sonraki adımlar