Мне удалось получить токен авторизации из Azure Active Directory в консольном приложении. Я хочу преобразовать этот код в .Net Core MVC, но не уверен, как правильно все настроить в Startup.cs
Я предполагаю, что пары ключ / значение будут перемещены в appsettings.json, но как мне получить этот токен в ConfigureServices()
?
var client = new HttpClient();
var uri = "https://login.microsoftonline.com/<tenantid>/oauth2/token";
var pairs = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("resource", "{resourceID}"),
new KeyValuePair<string, string>("client_id", "{clientID}"),
new KeyValuePair<string, string>("client_secret", "{clientSecret}"),
new KeyValuePair<string, string>("grant_type", "client_credentials"),
new KeyValuePair<string, string>("scope", "openid")
};
var content = new FormUrlEncodedContent(pairs);
var response = client.PostAsync(uri, content).Result;
string result = string.Empty;
if (response.IsSuccessStatusCode)
{
result = response.Content.ReadAsStringAsync().Result;
JObject jObject = JObject.Parse(result);
string token = (string)jObject.SelectToken("access_token");
}
Должен ли я использовать один из следующих способов для получения токена на предъявителя? Я делаю POST в консольном приложении, но это не подходит для конфигурации запуска.
services.AddAuthentication()
или
.AddJwtBearer()