Создание нового пользователя AD B2C через Microsoft Graph API

Я решил использовать Microsoft.Graph .NET SDK вместо старого API Azure Graph с ручными HTTP-запросами.

Проблема в том, что когда я пытаюсь создать нового пользователя с какой-либо электронной почтой, например. [email protected]

var req = _client.Users.Request();
var userRes = req.AddAsync(new User()
{
    AccountEnabled = true,
    DisplayName = user.Email,
    MailNickname = user.GivenName,
    GivenName = user.GivenName,
    Surname = user.SurName,
    UserPrincipalName = user.Email,
    PasswordProfile = new PasswordProfile()
    {
        Password = user.Password,
        ForceChangePasswordNextSignIn = true
    },
    PasswordPolicies = "DisablePasswordExpiration, DisableStrongPassword",
    Country = user.Country,
    City = user.City,
    PostalCode = user.ZipCode
}).Result;

Я получаю исключение, в котором говорится: «Свойство userPrincipalName недействительно». Создание нового пользователя AD B2C через Microsoft Graph API

Я могу создать пользователя только тогда, когда использую электронную почту с арендатором в качестве домена, например. [email protected] Но это не то, что мне нужно. Мне нужно иметь возможность программно создавать реальных внешних пользователей.

С Azure Graph API это работает Есть ли способ заставить его работать с API Microsoft Graph?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
3 229
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В настоящее время вы не можете использовать Microsoft Graph для создания пользователей в клиенте Azure AD B2C, так как он не поддерживает некоторые свойства пользователя (включая свойства СозданиеТип и signInNames), используемые Azure AD B2C.

Вы должны используйте Azure AD Graph для этого.

Примечание. Когда вы создаете пользователей в клиенте Azure AD B2C, устанавливая для свойства СозданиеТип значение LocalAccount, свойство userPrincipalName не нужно задавать, так как это свойство signInNames содержит адрес электронной почты внешнего пользователя.

Я так и думал, но подтверждения этому не нашел. Знаете ли вы, существует ли .NET sdk для azure graph api?

areller 11.04.2019 00:26

Привет @areller. См. клиентская библиотека .NET для Microsoft Azure Active Directory Graph API.

Chris Padgett 11.04.2019 04:23

Образец Github — docs.microsoft.com/en-us/azure/active-directory-b2c/…

rbrayb 29.04.2019 21:50

Согласно Github на https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management. Теперь вы можете использовать Microsoft Graph для создания нового пользователя для Azure AD B2C, код из https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management/blob/master/src/Services/UserService.cs.

var result = await graphClient.Users
            .Request()
            .AddAsync(new User
            {
                GivenName = "Casey",
                Surname = "Jensen",
                DisplayName = "Casey Jensen",
                Identities = new List<ObjectIdentity>
                {
                    new ObjectIdentity()
                    {
                        SignInType = "emailAddress",
                        Issuer = tenantId,
                        IssuerAssignedId = "[email protected]"
                    }
                },
                PasswordProfile = new PasswordProfile()
                {
                    Password = Helpers.PasswordHelper.GenerateNewPassword(4, 8, 4)
                },
                PasswordPolicies = "DisablePasswordExpiration",
                AdditionalData = extensionInstance
            });

Проголосовал за, пока я пытался сделать это через Java, здесь было достаточно информации, чтобы помочь мне добавить (федеративного?) пользователя. Спасибо

Gavin 08.03.2021 16:42

Другие вопросы по теме