Я решил использовать 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 недействительно».
Я могу создать пользователя только тогда, когда использую электронную почту с арендатором в качестве домена, например. [email protected]
Но это не то, что мне нужно.
Мне нужно иметь возможность программно создавать реальных внешних пользователей.
С Azure Graph API это работает Есть ли способ заставить его работать с API Microsoft Graph?
В настоящее время вы не можете использовать Microsoft Graph для создания пользователей в клиенте Azure AD B2C, так как он не поддерживает некоторые свойства пользователя (включая свойства СозданиеТип и signInNames), используемые Azure AD B2C.
Вы должны используйте Azure AD Graph для этого.
Примечание. Когда вы создаете пользователей в клиенте Azure AD B2C, устанавливая для свойства СозданиеТип значение LocalAccount
, свойство userPrincipalName не нужно задавать, так как это свойство signInNames содержит адрес электронной почты внешнего пользователя.
Привет @areller. См. клиентская библиотека .NET для Microsoft Azure Active Directory Graph API.
Образец Github — docs.microsoft.com/en-us/azure/active-directory-b2c/…
Согласно 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, здесь было достаточно информации, чтобы помочь мне добавить (федеративного?) пользователя. Спасибо
Я так и думал, но подтверждения этому не нашел. Знаете ли вы, существует ли .NET sdk для azure graph api?