Cree un nuevo usuario en Azure Active Directory (B2C) con Graph API, utilizando la solicitud de publicación http

Anteriormente he estado agregando usuarios mediante programación usando la Biblioteca de autenticación de Active Directory (ADAL), pero ahora necesito definir "signInNames" (= correo electrónico de los usuarios), y eso no parece ser posible con ADAL (dígame si estoy equivocado) .

Ahora estoy tratando de agregar un nuevo usuario (cuenta local) mediante programación usando HTTP POST, siguiendola documentación en MSDN.

//Get access token (using ADAL)
var authenticationContext = new AuthenticationContext(AuthString, false);
var clientCred = new ClientCredential(ClientId, ClientSecret);
var authenticationResult = authenticationContext.AcquireTokenAsync(ResourceUrl, clientCred);
var token = authenticationResult.Result.AccessToken;


//HTTP POST CODE
const string mail = "[email protected]";
// Create a new user object.
var user = new CustomUser
{
    accountEnabled = true,
    country = "MS",
    creationType = "LocalAccount",
    displayName = mail,
    passwordPolicies = "DisablePasswordExpiration,DisableStrongPassword",
    passwordProfile = new passwordProfile { password = "jVPmEm)6Bh", forceChangePasswordNextLogin = true },
    signInNames = new signInNames { type = "emailAddress", value = mail }
};

var url = "https://graph.windows.net/" + TenantId + "/users?api-version=1.6";

var jsonObject = JsonConvert.SerializeObject(user);

using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

    var response = client.PostAsync(url,
        new StringContent(JsonConvert.SerializeObject(user).ToString(),
            Encoding.UTF8, "application/json"))
            .Result;

    if (response.IsSuccessStatusCode)
    {
        dynamic content = JsonConvert.DeserializeObject(
            response.Content.ReadAsStringAsync()
            .Result);

        // Access variables from the returned JSON object
        var appHref = content.links.applications.href;
    }
}

Pero no tengo éxito, obteniendo esta respuesta:

{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content:....}

¿Alguna idea de lo que debo hacer? Logré usar Powershell-script, pero necesito hacer esto en mi aplicación C #.

Respuestas a la pregunta(2)

Su respuesta a la pregunta