#swagger-ui #auth0 #openapi #swashbuckle #swashbuckle.aspnetcore
#swagger-ui #auth0 #openapi #swashbuckle #swashbuckle.aspnetcore
Вопрос:
Я пытаюсь пройти аутентификацию для моего клиента Auth0 через пользовательский интерфейс Swagger (автоматически генерируется Swashbuckle.AspNetCore) с использованием учетных данных клиента.
Я получаю следующую ошибку:
Ошибка авторизации, ошибка: access_denied, описание: Неглобальным клиентам не разрешен доступ к APIv1
Вот снимок экрана:
Спецификация Open API выглядит следующим образом:
"securitySchemes": {
"auth0": {
"type": "oauth2",
"flows": {
"clientCredentials": {
"tokenUrl": "https://example.auth0.com/oauth/token"
},
"authorizationCode": {
"authorizationUrl": "https://example.auth0.com/authorize?audience=test",
"tokenUrl": "https://example.auth0.com/oauth/token",
"scopes": { }
}
}
}
}
Я подозреваю, что это как-то связано с тем, что audience
не указано. У меня была аналогичная проблема с потоком кода авторизации, но я смог заставить это работать, добавив audience в качестве параметра строки запроса к authorizationUrl
(как показано выше). К сожалению, тот же трюк не работает с потоком учетных данных клиента (т. Е. Попытка добавить аудиторию к tokenUrl
). Мне нужно поддерживать поток учетных данных клиента, так как один или несколько маршрутов должны быть заблокированы только для токенов M2M.
Интересно, что это работает, если я использую глобальный идентификатор клиента / секрет (находится в разделе «Дополнительные настройки клиента»), но я не уверен, стоит ли нам это использовать…
Кто-нибудь еще сталкивался с этой проблемой, и если да, то удалось ли найти решение?
Комментарии:
1. Я сталкиваюсь с этим — вы когда-нибудь находили решение?
2. Установите аудиторию по умолчанию в разделе «Настройки клиента> Настройки авторизации API> Аудитория по умолчанию»… дайте мне знать, если это сработает…