Azure B2C войдите, используя Graph API - PullRequest
0 голосов
/ 30 сентября 2018

Я новичок в Azure и работаю над приложением WebApi, которое может создавать / удалять / обновлять и аутентифицировать пользователя в клиенте Azure AD B2C с помощью Graph API.Я застрял с пользователем для проверки подлинности в Azure AD B2C.Мне удалось создать пользователя с помощью следующего кода.

  private async Task<string> CreateUserRequest(string api, string json)
  {

    AuthenticationResult result = authContext.AcquireToken(Globals.aadGraphResourceId, credential);
    HttpClient http = new HttpClient();
    string url = Globals.aadGraphEndpoint + tenant + api + "?" + Globals.aadGraphVersion;


    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));
    }

    return await response.Content.ReadAsStringAsync();
}

и теперь мне нужно использовать тот же способ для аутентификации пользователя и получить токен, как для следующего кода

, и теперь мне нужно войти / войти, используя вызов API, передаваяИмя пользователя и пароль в качестве параметров, более тонкий, чем вышеупомянутый способ.

public async Task<string> B2CAuthenticateUser(string userName, string password)
{
   return await SendGraphValidateUser("/users/" + userName, null);
}

public async Task<string> SendGraphValidateUser(string api, string query)
{

  AuthenticationResult result = authContext.AcquireToken("https://graph.windows.net", credential);


  HttpClient http = new HttpClient();


        **Here I need your help**
        > // string url = "https://graph.windows.net/" + tenant + api + "?" +
        > Globals.aadGraphVersion;
        >   // if (!string.IsNullOrEmpty(query))
        >      // {
        >      // url += "&" + query;
        >      // } 
        > 
        >    
        >    //HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);

     request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
     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));
            }

    return await response.Content.ReadAsStringAsync();
} 

Я надеюсь, что должен быть способ сделать это.Я благодарен, если вы можете предложить способ сделать это

PS: я перешел к следующим связанным вопросам и не сильно помог мне] Аутентификация пользователя в Azure AD B2C с использованием Graph API

1 Ответ

0 голосов
/ 01 октября 2018

Лучше всего, если вы аутентифицируете пользователей, используя политику владельца ресурса , которая позволяет вашему приложению проверять учетные данные пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...