2016-07-07 3 views
0

Я использую swashbuckle, чтобы добавить swagger в мой проект asp.net mvc web api. Я вижу варианты добавления OAuth2, но для моего сайта требуется wsfederation. Как мне потребовать аутентификацию для просмотра swagger ui с помощью wsfederation?Как добавить аутентификацию в swashbuckle?

GlobalConfiguration.Configuration 
    .EnableSwagger(c => 
    { 
     c.SingleApiVersion("v1", "Services"); 
    }) 
    .EnableSwaggerUi(c => { }); 

ответ

1

аутентификации в файле SwaggerConfig напрямую связана с документирования API, а не фактическое выполнение, так сказать. Так что, если вы используете его в вашем swaggerConfig:

c.OAuth2("oauth2") 
       .Description("OAuth2 Implicit Grant") 
       .Flow("implicit") 
       .AuthorizationUrl("http://petstore.swagger.io/oauth/dialog") 
       .Scopes(scopes => 
       { 
        scopes.Add("read:pets", "read your pets"); 
        scopes.Add("write:pets", "modify pets in your account"); 
       }); 

Это создаст следующую securitydefinition в файле чванство JSon

securityDefinitions: 
    petstore_auth: 
    type: oauth2 
    authorizationUrl: 'http://petstore.swagger.io/oauth/dialog' 
    flow: implicit 
    scopes: 
     'write:pets': modify pets in your account 
     'read:pets': read your pets 

Чтобы ответить

Как я могу требовать аутентификацию просмотрите чванство ui с помощью wsfederation?

Просто добавьте аутентификацию глобально в файле WebApiConfig.cs, нечто похожее на следующие (если вы используете MessageHandler или фильтр)

config.Filters.Add(new WSFederationAuthentication()); 

Просмотр документации чванство непосредственно WebAPI связаны.

Возможно, у вас могут возникнуть проблемы, так как Swagger получает клиентскую сторону docs.

Смежные вопросы