如何在AD B2C中使用图形api / sdk



我试图简单地创建一个用户使用图形API sdk对我的AD B2C租户,但我一直遇到问题。我在这里遵循文档:https://learn.microsoft.com/en-us/graph/api/user-post-users?view=graph-rest-1.0&tabs=csharp

我收到的第一个错误是"userPrincipalName属性的域部分无效"。您必须在您的组织中使用经过验证的域名之一。环顾四周后,我发现这个文档声明必须将creatationtype属性设置为"localaccount"。当我尝试这样做时,我得到了"一个或多个属性包含无效值"的错误。

错误没有给出任何关于哪个属性无效的细节!有没有人能在微软给我指一份合适的文件,告诉我如何让它工作?似乎在文档中可能有一些混淆,API可能针对AD而不是AD B2C。但我没有AD租户,只是一个AD B2C租户,这就是我的目标。同样,我使用的是最新版本的SDK。

我能找出问题所在。对于AD B2C,我应该将一个objecdentity附加到我传递要创建的User对象上。

代码如下:

var identity = new ObjectIdentity
{
Issuer = Globals.Tenant,
IssuerAssignedId = email,
SignInType = "emailAddress"
};
var graphClient = GetGraphServiceClient();
var user = new User
{
DisplayName = fullName,
PasswordProfile = new PasswordProfile
{
Password = password,
ForceChangePasswordNextSignIn = forceChangePasswordSignIn
},
PasswordPolicies = "DisablePasswordExpiration",
AccountEnabled = enabled,
CreationType = "LocalAccount",
Identities = new ObjectIdentity[] { identity }
};
var userInfo = await graphClient.Users.Request().AddAsync(user);
return userInfo;

最新更新