Swagger выдает «Auth ErrorTypeError: не удалось получить» при авторизацииC#

Место общения программистов C#
Гость
Swagger выдает «Auth ErrorTypeError: не удалось получить» при авторизации

Сообщение Гость »

Я примерно следил за блогом Скотта и блогом Джозефа. К сожалению, я получаю сообщение об ошибке Auth ErrorTypeError: Не удалось получить.
Конфигурация авторизации такая (

Код: Выделить всё

{tenantId}
является допустимым GUID).

Код: Выделить всё

services.AddSwaggerGen(options =>
{
options.AddSecurityRequirement(new() { ... });
options.AddSecurityDefinition("oauth2", new()
{
Type = SecuritySchemeType.OAuth2,
Flows = new()
{
AuthorizationCode = new()
{
AuthorizationUrl = new("https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize"),
TokenUrl = new("https://login.microsoftonline.com/{tenantId}/common/v2.0/token"),
Scopes = new Dictionary
{
{ "https://graph.microsoft.com/.default", "https://graph.microsoft.com/.default" }
}
}
}
});
});
Затем у меня также есть такая конфигурация пользовательского интерфейса ({clientId} — действительный GUID).

Код: Выделить всё

app.UseSwaggerUI(options =>
{
options.OAuthAppName("Beep");
options.OAuthClientId("{clientId}");
options.OAuthClientSecret("HakunaMatata");
options.OAuthScopes(["https://graph.microsoft.com/.default" ]);
options.OAuthUsePkce();
});
Кнопка авторизации в Swagger открывает всплывающее окно, и при запросе вызова возвращается указанная выше ошибка. Я не понимаю, где возникает проблема и как ее устранить дальше. Единственное, что я заметил, это то, что отсутствие каких-либо областей приводит к появлению сообщения об ошибке в Azure. При предоставлении области даже не будет отображаться страница входа. Я проверил, что .well-known выдает правильные значения для конечных точек авторизации и токена. Я проверил, что секрет верен для регистрации приложения, а также URI перенаправления, указывающий на мой Swagger (https://localhost:7001/swagger/oauth2-redirect.html). Большинство связанных вопросов касаются неявного потока или ключа API, что в моем случае неприменимо. Подобные вопросы относительно сообщения об ошибке скорее не приносят пользы. Я также попытался объявить выделенную область (api://d53180a4-0a79-4f7a-96aa-3f2eed32f559/SwaggerScope), и при ее использовании я вижу страницу входа, но при выборе пользователя появляется то же сообщение об ошибке.
Я проверил сетевые вызовы и заметил нечто неожиданное. Судя по всему, CORS запускается на конечной точке токена и он также сообщает 404 Not Found (что самопротиворечиво, но я полагаю, что необнаружение каким-то образом вызвано CORS-ностью). URL-адрес не соответствует тому, что я указал в своей конфигурации выше (в соответствии с конечной точкой .well-known), и я не контролирую сервер для активации разрешенных источников.
Изображение
Что я могу изучить или попробовать?

Подробнее здесь: https://stackoverflow.com/questions/781 ... uthorizing

Вернуться в «C#»