在Azure AD B2C中使用Azure AD Graph API创建用户

3升

我试图在我的Azure AD B2C目录中创建一个用户。我已经使用cmd中的以下命令发布了示例JSON文件,从而成功创建了用户:

>B2C Create-User <Path to my JSON file>

我正在尝试做的是发布一些JSON字符串而不是JSON文件,并且命令行给了我以下错误:

Error Calling the Graph API:
{
  "odata.error": {
    "code": "Request_BadRequest",
    "message": {
      "lang": "en",
      "value": "A value without a type name was found and no expected type is available. When the model is specified, each value in the payload must have a type which can be either specified in the payload, explicitly by the caller or implicitly inferred from the parent value."
    },
    "requestId": "965dba69-4488-4d24-88a4-989a6d06cd8d",
    "date": "2019-03-19T12:55:27"
  }
}

这就是我尝试发布JSON的方式:

private static void CreateUser(string[] args)
    {

        string json = new JavaScriptSerializer().Serialize(new
        {
            accountEnabled = true,
            SignInName = new List<UserInformation.SignInName>()
            {
                new UserInformation.SignInName(){ type = "emailAddress", value = "[email protected]" }
            },
            creationType = "LocalAccount",
            displayName = "Safan Momin",
            mailNickname = "Safan",
            passwordProfile = new UserInformation.PasswordProfile
            {
                password = "Mazik@123", forceChangePasswordNextLogin = false
            },
            passwordPolicies = "DisablePasswordExpiration"

        });

        object formatted = JsonConvert.DeserializeObject(client.CreateUser(json).Result);
    }

这是我的CreateUser方法:

 public async Task<string> CreateUser(string json)
    {
        return await SendGraphPostRequest("/users", json);
    }

这是我的SendGraphPostRequest方法:

private async Task<string> SendGraphPostRequest(string api, string json)
        {
            // NOTE: This client uses ADAL v2, not ADAL v4
            AuthenticationResult result = authContext.AcquireToken(Globals.aadGraphResourceId, credential);
            HttpClient http = new HttpClient();
            string url = Globals.aadGraphEndpoint + tenant + api + "?" + Globals.aadGraphVersion;

            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("POST " + url);
            Console.WriteLine("Authorization: Bearer " + result.AccessToken.Substring(0, 80) + "...");
            Console.WriteLine("Content-Type: application/json");
            Console.WriteLine("");
            Console.WriteLine("JSON: "+json);
            Console.WriteLine("");

            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url);
            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
            request.Content = new StringContent(json, Encoding.UTF8, "application/json");
            HttpResponseMessage response = await http.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                string error = await response.Content.ReadAsStringAsync();
                object formatted = JsonConvert.DeserializeObject(error);
                throw new WebException("Error Calling the Graph API: \n" + JsonConvert.SerializeObject(formatted, Formatting.Indented));
            }

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine((int)response.StatusCode + ": " + response.ReasonPhrase);
            Console.WriteLine("");

            return await response.Content.ReadAsStringAsync();
        }
3升

我正在整理我的JSON字符串,并在那里发现错误。我在写SignInName而不是在写signInNames

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 AD Graph API 从 Azure AD B2C 管理用户 - 安全访问

在 Azure AD B2C 中使用 Microsoft.Graph SDK 创建本地帐户

使用 Graph API 对 Azure AD B2C 上的用户进行身份验证

Azure AD Graph API不返回创建用户的用户GUID

Microsoft Graph API - 在 Azure AD B2C 中使用本地帐户标识创建用户会出现 Request_ResourceNotFound 错误

如何使用 Azure AD B2C 从 Microsoft Graph 获取用户标识对象

调用 Microsoft Graph API 以获取 Azure AD B2C 中的用户

如何通过Graph API在Azure AD B2C中重置用户密码?

如果用户具有MFA,则检索Azure AD B2C Graph API

Azure AD Graph API:用户的批量更新

Graph API从Azure AD获取用户

将 Azure AD Graph API over MS Graph 与 Active Directory B2C 结合使用的建议存在冲突

Microsoft graph 更改 azure ad b2c 用户密码不起作用

Microsoft Graph是否已经处理Azure AD B2C用户CRUD?

无法针对 Microsoft Graph API 颁发的令牌验证 Azure AD B2C 的签名

Azure AD B2C Graph API 参考在哪里?

Microsoft Graph API是否支持Azure AD B2C的更改通知?

Azure AD B2C,Graph API和应用程序处于故障状态

使用Microsoft.Graph.GraphServiceClient查询时,Azure AD B2C用户无法正确填充

用户的Azure AD和Azure B2C

在Azure AD B2C中使用相同的Facebook登录名创建的多个帐户

MS Graph API不会从Azure AD B2C返回用户的电子邮件地址

Можно ли подключить Azure API Management и Azure AD B2C?

如何使用Azure AD Graph API创建API范围

使用graph API通过createdDateTime提取Azure AD用户

SharePoint + Azure AD + Microsoft Graph API

如何利用Azure AD B2C通过REST API创建和管理用户?

将用户分配给组,Azure AD Graph Api

使用Powershell New-AzureADUser创建Azure AD B2C本地帐户用户