Я новичок в использовании swagger в качестве моего пользовательского интерфейса для тестирования и отладки и отображения документации по моим проектам веб-API.Добавление пользовательской безопасности в Swagger
В недавнем проекте (тип: ASP.NET Web API) я столкнулся с проблемой, У моего API не было никакой безопасности, так как интерфейс не понятен никому. Но мне нужно обеспечить интерфейс swagger, так как каждый может получить доступ к моей полной документации, просто добавив «Swagger» после URL-адреса api!
С тех пор как я легко добавил swagger из-под коробки swashbulckle nuget-package, я не знаю, как добавить к нему какую-либо безопасность. если бы какой-либо орган мог дать пошаговую прогулку, я бы очень это оценил.
Еще одна вещь, что я попробовал, добавив ниже линии SwaggerConfig.cs
но не применять никаких специальных API-ключ, и я могу открыть чванство пользовательский интерфейс, просто введя как http://localhost:4505/swagger
коснуться в моем браузере:
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.ApiKey("key-11111-0000-1111-test")
.Description("API Key Authentication")
.Name("apiKey")
.In("header");
c.EnableApiKeySupport("apiKey", "header");
});
(обратите внимание, что я пропустил конфигурации, которые не касались вопроса из предыдущего блока кода)
Нужно ли мне применять защиту api-ключа для api, встроенного в swagger? Если да, пожалуйста, покажите простой способ сделать Это.
Обновление № 1: Я нашел хак, просто изменив адрес swagger-ui. просто добавьте эту строку в SwaggerConfig.cs
:
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
//a long list of auto generated stuff
//don't touch them if you don't know how to change them
})
//next line is what you add
.EnableSwaggerUi("sandbox-passphrase-000000-passphrase2/swagger/{*assetPath}");
Тогда доступ ссылка на Swagger-интерфейс будет что-то вроде ниже:
http://your-api.com:port/sandbox-passphrase-000000-passphrase2/swagger/index
Но это не то, что я хочу, я нужно что-то вроде добавления текстового поля имени пользователя/пароля в swagger-ui для предотвращения несанкционированного доступа.
ваша апи закреплен каким-либо образом? – VisualBean
нет, поскольку я сказал: «У моего API нет никакой безопасности, так как его интерфейс не ясен для кого-либо», мне просто нужно защитить swagger-ui, интерфейс api скрыт, и на данный момент он не будет нуждаться в безопасности. – AmiNadimi
Можете ли вы объяснить, как добавить пользовательский индексный указатель к swagger ui, и после этого, как мы можем скрыть документы в нем, а затем, где мы проверим введенное имя пользователя и пароль, пожалуйста? – AmiNadimi