Я пытаюсь выполнить Oauth2 code flow
, чтобы получить токен доступа, но не могу получить встроенную электронную почту scope
.
Ниже приведены мои настройки.
- У меня естьзарегистрировал приложение в Azure Active Directory. Допустим, идентификатор приложения: -
APP1
- Я использую конечную точку 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.
Я получаю токен доступа, но в токене доступа отсутствует область. Пожалуйста, смотрите ниже снимок.