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
- MS Graph API'sini kullanmak ve Azure AD B2C kiracınızdaki kaynaklarla etkileşime geçmek için, bunu yapma izinlerini veren bir uygulama kaydına ihtiyacınız vardır. Yönetim uygulamanızın kullanabileceği bir uygulama kaydı oluşturmak için Microsoft Graph uygulaması kaydetme makalesindeki adımları izleyin.
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 $count
destek 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ıları listeleme
- Tüketici kullanıcısı oluşturma
- Kullanıcı alma
- Kullanıcıyı güncelleştirme
- Kullanıcı silme
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.
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.
- Azure AD B2C kiracısında kullanılabilen kimlik sağlayıcılarını listeleme
- Azure AD B2C kiracısında yapılandırılan kimlik sağlayıcılarını listeleme
- Kimlik sağlayıcısı oluşturma
- Kimlik sağlayıcısı alma
- Kimlik sağlayıcısını güncelleştirme
- Kimlik sağlayıcısını silme
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ışlarını listeleme
- Kullanıcı akışı oluşturma
- Kullanıcı akışı alma
- Kullanıcı akışını silme
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.
- Kiracıda yapılandırılan tüm güven çerçevesi ilkelerini listeleme
- Güven çerçevesi ilkesi oluşturma
- Mevcut bir güven çerçevesi ilkesinin özelliklerini okuma
- Güven çerçevesi ilkesini güncelleştirin veya oluşturun.
- Mevcut bir güven çerçevesi ilkesini silme
İ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 anahtar kümelerini listeleme
- Güven çerçevesi anahtar kümeleri oluşturma
- Anahtar kümesi alma
- Güven çerçevesi anahtar kümelerini güncelleştirme
- Güven çerçevesi anahtar kümelerini silme
Güven Çerçevesi ilke anahtarı
- Anahtar kümesinde şu anda etkin olan anahtarı alma
- Anahtar kümesinde anahtar oluşturma
- Dize tabanlı gizli diziyi karşıya yükleme
- X.509 sertifikayı karşıya yükleme
- PKCS12 biçimli sertifikayı karşıya yükleme
Uygulamalar
- Uygulamaları listeleme
- Uygulama oluşturma
- Uygulamayı güncelleştirme
- servicePrincipal oluşturma
- oauth2Permission Grant oluşturma
- Uygulamayı silme
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ı akışı özniteliği oluşturma
- Kullanıcı akışı özniteliklerini listeleme
- Kullanıcı akışı özniteliği alma
- Kullanıcı akışı özniteliğini güncelleştirme
- Kullanıcı akışı özniteliğini silme
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 üzerindenv1.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
- Koşullu Erişim ilkesi senaryoları için yerleşik şablonları listeleme
- Tüm Koşullu Erişim ilkelerini listeleme
- Koşullu Erişim ilkesinin özelliklerini ve ilişkilerini okuma
- Yeni koşullu erişim ilkesi oluşturma
- Koşullu Erişim ilkesini güncelleştirme
- Koşullu Erişim ilkesini silme
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.
- Silinen öğeleri listeleme
- Silinmiş öğeyi alma
- Silinmiş bir öğeyi geri yükleme
- Silinen öğeyi kalıcı olarak silme
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:
Projeyi Visual Studio veya Visual Studio Code'da açın.
src/appsettings.json
'ı açın.appSettings
bölümünde değerini kiracınızın adıyla veApplication (client) ID
Client 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.Deponuzun yerel kopyası içinde bir konsol penceresi açın, dizine
src
geçin ve projeyi derleyin:cd src dotnet build
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:
- appsettings.json dosyasından uygulama ayarlarını okur
- 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.
- 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
- JavaScript ve Node.js kod örnekleri için lütfen bkz. MSAL.js ve Microsoft Graph SDK ile B2C kullanıcı hesaplarını yönetme
- Microsoft Graph API'lerini denemenize ve bunlar hakkında bilgi edinmenize olanak tanıyan Graph Explorer'ı keşfedin.