1

我正在尝试在我们公司的 Azure 目录上执行 B2C 用户创建。作为参考,我使用 Microsoft 的这个站点,以及其中的 .DotNet 示例。

https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-devquickstarts-graph-dotnet/

我完全按照示例进行操作,并达到了通过身份验证的程度,并且能够提取目录中的 AD 用户。这是我生成的示例请求。

获取 https://graph.windows.net/mycompany/users?api-version=beta

但是当我进入在目录中创建示例用户的部分时,我收到错误响应“一个或多个属性包含无效值”。

发布 https://graph.windows.net/mycompany/users?api-version=beta

这是我使用的有效负载,它与站点示例中用于用户创建的有效负载完全相同。这是 JSON 格式。

{“accountEnabled”:true,“alternativeSignInNamesInfo”:[{“type”:“emailAddress”,“value”:“joeconsumer@gmail.com”}],“creationType”:“NameCoexistence”,“displayName”:“Joe Consumer ", "mailNickname": "joec","passwordProfile": {"password": "P@ssword!","forceChangePasswordNextLogin": false},"passwordPolicies": "DisablePasswordExpiration"}

此有效负载符合基于 Microsoft 的用户创建要求的要求,此外,它与站点示例中的有效负载完全相同,这就是为什么我收到一条属性具有无效值的消息的原因。更糟糕的是,响应没有明确说明哪个值是问题的根源。

任何帮助,将不胜感激。

4

3 回答 3

0

我认为这在您公司的 Active Directory 上是不可能的,您需要创建一个单独的 B2C Active Directory。

按照本教程创建 B2C 目录: https ://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-get-started/

于 2016-02-18T13:49:05.637 回答
0

尝试使用类型设置为 userName 且值实际上是电子邮件地址的登录名创建用户时出现此错误。我认为用户名将允许任何任意字符串,但显然如果您想使用电子邮件作为用户名,则类型必须设置为 emailAddress 才能通过 Microsoft 的验证。

public class SignInNames
{
    public string type { get; set; }
    public string value { get; set; }

    public SignInNames(string userName)
    {
        // Type must be 'emailAddress' (or 'userName')
        if (!string.IsNullOrWhiteSpace(userName) && userName.Contains("@"))
            this.type = "emailAddress";
        else
            this.type = "userName";

        // The user email address
        this.value = userName;
    }
}
于 2018-07-12T17:23:18.597 回答
0

您是否创建了 B2C 租户,并且它具有在 Azure AD 中创建的应用程序。

你能试试这个有效载荷吗,它对我来说很好用。

{
  "accountEnabled": true,
  "signInNames": [
    {
      "type": "emailAddress",
      "value": "joeconsumers6@gmail.com"
    }
  ],
  "creationType": "LocalAccount",
  "displayName": "karthikeyan",
  "mailNickname": "karthikeyan",
  "passwordProfile": {
    "password": "cads2016!",
    "forceChangePasswordNextLogin": false
  },
  "passwordPolicies": "DisablePasswordExpiration",
  "city": "San Diego",
  "country": null,
  "facsimileTelephoneNumber": null,
  "givenName": "Joe",
  "mail": null,
  "mobile": null,
  "otherMails": [],
  "postalCode": "92130",
  "preferredLanguage": null,
  "state": "California",
  "streetAddress": null,
  "surname": "Consumer",
  "telephoneNumber": null,

}
于 2017-06-08T06:51:51.113 回答