Отсутствует область действия в токене доступа - поток кода - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь выполнить Oauth2 code flow, чтобы получить токен доступа, но не могу получить встроенную электронную почту scope.

Ниже приведены мои настройки.

  1. У меня естьзарегистрировал приложение в Azure Active Directory. Допустим, идентификатор приложения: - APP1
  2. Я использую конечную точку V2 для доступа к «коду» из «точки авторизации».

Ниже приведен фрагмент кода

[HttpPost]  
    public IActionResult Index(MyModel myModel)
    {

        HttpClient client = new HttpClient();
        var authEndpoint = "https://login.microsoftonline.com/{my-tenant-id}/oauth2/v2.0/authorize?client_id=APP1&response_type=code&scope=openid+email";

        return Redirect(authEndpoint);

    }

    public IActionResult Callback(string code, string error)
    {
        Console.WriteLine("callback");
        AuthenticationContext context = new AuthenticationContext("https://login.microsoftonline.com/9e8754b6-f9cd-4aed-974d-a0ec0f3ed703");
        ClientCredential cc = new ClientCredential("APP1", "xxxxxxx/_");
        var resource = "c4887ff4-f750-4f1b-9781-744affe6fee2";
        var r = context.AcquireTokenAsync(resource,cc).Result;
        var tokenEndpoint = "https://login.microsoftonline.com/9e8754b6-f9cd-4aed-974d-a0ec0f3ed703/oauth2/v2.0/token";
        return Ok("");

    }

Обратите внимание, что я запрашиваю две области openid и email

Я получаю обратный вызов с соответствующим code, который я торгую далее для получения токена доступа с использованием библиотеки ADAL.

Я получаю токен доступа, но в токене доступа отсутствует область. Пожалуйста, смотрите ниже снимок.

enter image description here

1 Ответ

1 голос
/ 13 октября 2019

Вы используете неправильный метод объекта конфиденциального клиентского приложения. Вы не используете значение кода. Таким образом, вы получаете токен через поток учетных данных клиента, который никогда не имеет областей, поскольку это поток только для приложений. Используйте метод / перегрузка, который принимает код авторизации :)

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