public static void AddAuthenticationConfig(this SwaggerGenOptions c, AuthenticationType authenticationType) { switch (authenticationType) { case AuthenticationType.JwtBearer: var tokenPath = TokenConfiguration.GetOptions().Value.Path; c.DocumentFilter <TokenOperation>(); c.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme, c.GetTokenSecurityDefinition(tokenPath)); c.AddSecurityRequirement(c.GetTokenSecurityRequirement()); break; case AuthenticationType.Basic: c.AddSecurityDefinition(BasicAuthenticationDefaults.AuthenticationScheme, c.GetBasicSecurityDefinition()); c.AddSecurityRequirement(c.GetBasicSecurityRequirement()); break; case AuthenticationType.ApiKey: c.AddSecurityDefinition(ApiKeyAuthenticationDefaults.AuthenticationScheme, c.GetApiKeySecurityDefinition()); c.AddSecurityRequirement(c.GetApiKeySecurityRequirement()); break; case AuthenticationType.AllowAll: break; default: throw new ArgumentException(nameof(authenticationType) + " is not a valid authentication type"); } }
public static void Configure(SwaggerGenOptions options) { options.AddSecurityDefinition("apiKeyAuth", new OpenApiSecurityScheme { Name = "X-SRS-API-KEY", Type = SecuritySchemeType.ApiKey, In = ParameterLocation.Header, }); options.AddSecurityDefinition("basicAuth", new OpenApiSecurityScheme { Name = "Authorization", Type = SecuritySchemeType.Http, In = ParameterLocation.Header, Scheme = "basic" }); options.AddSecurityDefinition("signAuth", new OpenApiSecurityScheme { Name = "Authorization", Type = SecuritySchemeType.Http, In = ParameterLocation.Header, Scheme = "SIGN" }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "apiKeyAuth" } }, Array.Empty <string>() } }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "basicAuth" } }, Array.Empty <string>() } }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "signAuth" } }, Array.Empty <string>() } }); options.OperationFilter <SecurityRequirementsOperationFilter>(); }
/// <summary> /// 配置授权 /// </summary> /// <param name="swaggerGenOptions">Swagger 生成器配置</param> private static void ConfigureSecurities(SwaggerGenOptions swaggerGenOptions) { // 判断是否启用了授权 if (_specificationDocumentSettings.EnableAuthorized != true || _specificationDocumentSettings.SecurityDefinitions.Length == 0) { return; } var openApiSecurityRequirement = new OpenApiSecurityRequirement(); swaggerGenOptions.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] { } } }); // 生成安全定义 foreach (var securityDefinition in _specificationDocumentSettings.SecurityDefinitions) { // Id 必须定义 if (string.IsNullOrEmpty(securityDefinition.Id)) { continue; } // 添加安全定义 var openApiSecurityScheme = securityDefinition as OpenApiSecurityScheme; swaggerGenOptions.AddSecurityDefinition(securityDefinition.Id, openApiSecurityScheme); // 添加安全需求 var securityRequirement = securityDefinition.Requirement; if (securityRequirement.Scheme.Reference != null) { securityRequirement.Scheme.Reference.Id ??= securityDefinition.Id; openApiSecurityRequirement.Add(securityRequirement.Scheme, securityRequirement.Accesses); } } // 添加安全需求 if (openApiSecurityRequirement.Count > 0) { swaggerGenOptions.AddSecurityRequirement(openApiSecurityRequirement); } }
private static void AddSecurityDefinitionAndRequirements(OpenApiSettings openApiSettings, SwaggerGenOptions options) { if (openApiSettings.Security != null) { options.AddSecurityDefinition(openApiSettings.Security.Scheme, new OpenApiSecurityScheme { Description = openApiSettings.Security.Description, Name = openApiSettings.Security.Name, In = ParameterLocation.Header, Scheme = openApiSettings.Security.Scheme, Type = openApiSettings.Security.SchemeType, BearerFormat = openApiSettings.Security.BearerFormat }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = openApiSettings.Security.Scheme } }, new List <string>() } }); } }
public static SwaggerGenOptions ConfigureSecurityDefinition(this SwaggerGenOptions options) { options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "Type into the textbox: Bearer {your JWT token}.", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, }); var security = new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Id = "Bearer", Type = ReferenceType.SecurityScheme }, UnresolvedReference = true }, new string[] {} } }; options.AddSecurityRequirement(security); return(options); }
private static void AddBasicSecurityDefinition(this SwaggerGenOptions c) { // https://thecodebuzz.com/basic-authentication-swagger-asp-net-core-3-0/ c.AddSecurityDefinition("basic", new OpenApiSecurityScheme { Name = "Authorization", Type = SecuritySchemeType.Http, Scheme = "basic", In = ParameterLocation.Header, Description = "Basic Authorization header using the Bearer scheme." }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "basic" } }, new string[] { } } }); }
private static void ConfigureSwaggerGenOptions(SwaggerGenOptions options, IServiceCollection services) { var provider = services.BuildServiceProvider().GetRequiredService <IApiVersionDescriptionProvider>(); foreach (var description in provider.ApiVersionDescriptions) { options.SwaggerDoc(description.GroupName, CreateInfoForApiVersion(description)); } options.DocInclusionPredicate((docName, apiDesc) => { var versions = apiDesc.ControllerAttributes() .OfType <ApiVersionAttribute>() .SelectMany(attr => attr.Versions); return(versions.Any(v => $"v{v.ToString()}" == docName)); }); options.IncludeXmlComments(GetXmlCommentsFilePath()); var apiKeyScheme = new ApiKeyScheme() { Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"", Name = "Authorization", In = "header", Type = "apiKey", }; options.AddSecurityDefinition("Bearer", apiKeyScheme); options.AddSecurityRequirement(new Dictionary <string, IEnumerable <string> > { { "Bearer", new string[] { } } }); }
public static void AddBearerToken(this SwaggerGenOptions swaggerGenOptions) { swaggerGenOptions.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "Please enter into field the word 'Bearer' following by space and JWT. Example: \"Authorization: Bearer {token}\"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, Scheme = "Bearer" }); swaggerGenOptions.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header }, new List <string>() } }); }
public static void AddSecuritySchemas(this SwaggerGenOptions options) { options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() { Description = "Adquira aqui seu token: Bearer {seu token}", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }, new List <string>() } }); }
private static void AddJwtBearerSecurity(this SwaggerGenOptions options) { options.AddSecurityDefinition( JwtBearerDefaults.AuthenticationScheme, new OpenApiSecurityScheme { Name = "Authorization", In = ParameterLocation.Header }); options.AddSecurityRequirement( new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = JwtBearerDefaults.AuthenticationScheme } }, new string[] {} } }); }
public static void AddDefaultOptions(this SwaggerGenOptions options) { options.DescribeAllEnumsAsStrings(); options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "Авторизация с помощью JWT токена. <b>Пример: Bearer -token-</b>", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); var security = new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header, }, new List <string>() } }; options.AddSecurityRequirement(security); }
public static void Configure(SwaggerGenOptions swaggerOptions, string secretKey) { swaggerOptions.DescribeAllParametersInCamelCase(); swaggerOptions.OrderActionsBy(x => x.RelativePath); swaggerOptions.AddSecurityDefinition("ApiKey", new OpenApiSecurityScheme { Description = "ApiKey needed to access the endpoints (eg: `Authorization: ApiKey xxx-xxx`)", In = ParameterLocation.Header, Name = "Authorization", Type = SecuritySchemeType.ApiKey, }); swaggerOptions.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Name = "ApiKey", Type = SecuritySchemeType.ApiKey, In = ParameterLocation.Header, Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "ApiKey", }, }, Array.Empty <string>() } }); }
private static void AddSecurity(this SwaggerGenOptions options) { var authName = "myBasicAuth"; options.AddSecurityDefinition(authName, new OpenApiSecurityScheme() { Type = SecuritySchemeType.Http, Scheme = "basic", Description = "Input your username and password to access this API" }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = authName } }, new List <string>() } }); }
private static void AddSwaggerSecurity(SwaggerGenOptions swaggerOptions, OpenApiInfo swaggerDocumentationSettings) { if (swaggerDocumentationSettings.Extensions.TryGetValue("TokenUrl", out IOpenApiExtension t) && t is OpenApiString tokenUrl) { swaggerOptions.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Type = SecuritySchemeType.OAuth2, Flows = new OpenApiOAuthFlows() { Password = new OpenApiOAuthFlow() { TokenUrl = new Uri(tokenUrl?.Value) } } }); swaggerOptions.AddSecurityRequirement(new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Id = "Bearer", Type = ReferenceType.SecurityScheme } }, new List <string>() } }); } }
public static void ApplySecurityDefinition(this SwaggerGenOptions genOptions) { var security = new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header, }, new List <string>() } }; genOptions.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = @"JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token in the text input below. Example: 'Bearer 12345abcdef'", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); genOptions.AddSecurityRequirement(security); }
private void AddAuthenticationParameter(SwaggerGenOptions c) { c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Id = "Bearer", Type = ReferenceType.SecurityScheme } }, new List <string>() } }); //c.OperationFilter<AddHeaderParameter>(); }
public static void Configure(this SwaggerGenOptions options) { options.DocInclusionPredicate((docName, apiDesc) => { var actionApiVersionModel = apiDesc.ActionDescriptor?.GetApiVersion(); if (actionApiVersionModel == null) { return(true); } if (actionApiVersionModel.DeclaredApiVersions.Any()) { return(actionApiVersionModel.DeclaredApiVersions.Any(v => $"v{v.ToString()}" == docName)); } return(actionApiVersionModel.ImplementedApiVersions.Any(v => $"v{v.ToString()}" == docName)); }); options.SwaggerDoc("v1.0", new Info { Title = "API", Version = "v1.0" }); options.SwaggerDoc("v1.1", new Info { Title = "API", Version = "v1.1" }); options.OperationFilter <SwaggerApiVersionOperationFilter>(); options.AddSecurityDefinition("Bearer", new ApiKeyScheme { In = "header", Description = "Please enter into field the word 'Bearer' following by space and JWT", Name = "Authorization", Type = "apiKey" }); options.AddSecurityRequirement(new Dictionary <string, IEnumerable <string> > { { "Bearer", Enumerable.Empty <string>() }, }); }
/// <summary> /// Aggiunge la parte relativa alla security delle API /// </summary> /// <param name="options"></param> public static void AddSecurityConfiguration(this SwaggerGenOptions options) { options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { In = ParameterLocation.Header, Description = "Please enter into field the word 'bearer' following by space and access token", Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer" }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header }, new List <string>() } }); }
private static void ConfigureDevelopmentSecurity(SwaggerGenOptions options) { options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 12345abcdef.23fdeeecxxXE...\"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, Scheme = "Bearer", BearerFormat = "JWT" }); options.AddSecurityRequirement( new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header, }, new List <string>() } }); }
public static SwaggerGenOptions AddSwaggerOptions(SwaggerGenOptions options) { options.SwaggerDoc("v2", new OpenApiInfo { Title = "WebApiPushNotifications", Version = "v2" }); options.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme, new OpenApiSecurityScheme { In = ParameterLocation.Header, Description = "Insert the Bearer into Header", Name = HeaderNames.Authorization, Type = SecuritySchemeType.ApiKey }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = JwtBearerDefaults.AuthenticationScheme } }, Array.Empty <string>() } }); return(options); }
public static void AddIndentitySecurity(this SwaggerGenOptions options) { if (options is null) { throw new ArgumentNullException(nameof(options)); } options.AddSecurityDefinition(_SecurityDefinitionName, new OpenApiSecurityScheme { Type = SecuritySchemeType.ApiKey, Name = "Authorization", Description = "Identity authorization", In = ParameterLocation.Header, Scheme = _SecurityDefinitionName }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Name = _SecurityDefinitionName, In = ParameterLocation.Header, Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = _SecurityDefinitionName } }, Array.Empty <string>() } }); }
private static void AddJwtToSwagger(this SwaggerGenOptions swagger) { swagger.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = $"Authorization header using the 'Bearer' scheme.\n\rEnter 'Bearer' [space] and then your token in the text input below.\r\nExample: 'Bearer eyJuYW1laWQi'", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, Scheme = "bearer", BearerFormat = "Bearer" }); swagger.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Id = "Bearer", Type = ReferenceType.SecurityScheme }, }, new List <string>() } }); }
private static void AddJwtSecurityDefinition(this SwaggerGenOptions c) { // Configure swagger to accept JWT c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Name = "Bearer", BearerFormat = "JWT", Scheme = "bearer", Description = "Specify the authorization token.", In = ParameterLocation.Header, Type = SecuritySchemeType.Http }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] {} } }); }
/// <summary>Adiciona autenticação no serviço</summary> /// <param name="options">Opção de configuração</param> private static void AddSecurity(SwaggerGenOptions options) { options.AddSecurityDefinition( "oauth2", new OpenApiSecurityScheme { Type = SecuritySchemeType.OAuth2, Flows = new OpenApiOAuthFlows { Implicit = new OpenApiOAuthFlow { AuthorizationUrl = new Uri("/auth-server/connect/authorize", UriKind.Relative), Scopes = new Dictionary <string, string> { { "readAccess", "Access read operations" }, { "writeAccess", "Access write operations" } } } } }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } }, new[] { "readAccess", "writeAccess" } } }); }
public static SwaggerGenOptions AddBearerAuthentication(this SwaggerGenOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { In = ParameterLocation.Header, Name = "Authorization", Description = "JWT Authorization header using the Bearer scheme. Example: \"Bearer {token}\"" }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] { } } }); return(options); }
public static void UseOAuth2Scheme(this SwaggerGenOptions options, AuthenticationInfo authentication) { if (authentication?.Authority == null) { throw new ApiDocumentationException("Invalid or missing Authentication info: Authority"); } var scheme = new OpenApiSecurityScheme() { Type = SecuritySchemeType.OAuth2, Flows = new OpenApiOAuthFlows { Implicit = new OpenApiOAuthFlow { AuthorizationUrl = new Uri($"{authentication.Authority}/oauth2/authorize"), Scopes = new Dictionary <string, string>(), } }, Description = authentication.Description }; options.AddSecurityDefinition("oauth2", scheme); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } }, new string[] { } } }); }
public static void ApplyBearerAuthorication(this SwaggerGenOptions c) { c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { In = ParameterLocation.Header, Description = "授权认证码", Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer" }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { [ new OpenApiSecurityScheme { Name = "Bearer", Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer", }, Scheme = "oauth2", In = ParameterLocation.Header, } ] = new List <string>() }); }
public static void UseApiKeyScheme(this SwaggerGenOptions options, AuthenticationInfo authentication) { var scheme = new OpenApiSecurityScheme() { Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer", BearerFormat = "JWT", In = ParameterLocation.Header, Description = authentication.Description }; options.AddSecurityDefinition(ImpersonationBearerDefaults.AuthenticationScheme, scheme); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = ImpersonationBearerDefaults.AuthenticationScheme } }, new string[] { } } }); }
private static void AddSwaggerAuthorization(SwaggerGenOptions x) { x.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = @"JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below. \r\n\r\nExample: 'Bearer 12345abcdef'", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, Scheme = "Bearer" }); x.AddSecurityRequirement(new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header, }, new List <string>() } }); }
private void ConfigureSwaggerGen(SwaggerGenOptions obj) { obj.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Name = "Bearer", BearerFormat = "JWT", Scheme = "bearer", Description = "Specify the authorization token.", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, }); obj.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] { } } }); }