Soenneker.Swashbuckle.Authentication
4.0.2969
Prefix Reserved
See the version list below for details.
dotnet add package Soenneker.Swashbuckle.Authentication --version 4.0.2969
NuGet\Install-Package Soenneker.Swashbuckle.Authentication -Version 4.0.2969
<PackageReference Include="Soenneker.Swashbuckle.Authentication" Version="4.0.2969" />
<PackageVersion Include="Soenneker.Swashbuckle.Authentication" Version="4.0.2969" />
<PackageReference Include="Soenneker.Swashbuckle.Authentication" />
paket add Soenneker.Swashbuckle.Authentication --version 4.0.2969
#r "nuget: Soenneker.Swashbuckle.Authentication, 4.0.2969"
#:package Soenneker.Swashbuckle.Authentication@4.0.2969
#addin nuget:?package=Soenneker.Swashbuckle.Authentication&version=4.0.2969
#tool nuget:?package=Soenneker.Swashbuckle.Authentication&version=4.0.2969
Soenneker.Swashbuckle.Authentication
Protects a Swagger path with HTTP Basic credentials, optional role-bearing access keys, or an explicit local-request bypass.
Installation
dotnet add package Soenneker.Swashbuckle.Authentication
Configuration
{
"Swagger": {
"Uri": "/swagger",
"Username": "docs-admin",
"Password": "replace-with-a-secret",
"LocalAuthenticationBypassEnabled": false,
"AccessKeys": [
"support:replace-with-a-random-key",
"developer:replace-with-another-random-key"
]
}
}
Username and Password are required. Uri defaults to /swagger. Each optional access-key entry uses role:key; a successful key creates an authenticated principal named accesskey with that role. Basic credentials create an admin principal.
Keep credentials and access keys in a secret provider or environment variables rather than a committed settings file.
Middleware order
Register authentication before the Swagger middleware so requests cannot reach the UI or JSON document first:
using Soenneker.Swashbuckle.Authentication.Registrars;
app.UseSwashbuckleAuth();
app.UseSwagger();
app.UseSwaggerUI();
Requests outside the configured Swagger path pass through unchanged. Unauthorized requests under that path receive 401 with a Basic authentication challenge.
Access-key links
An access key can be supplied as ?accesskey=.... A valid key is persisted in an HTTP-only, same-site session cookie restricted to the Swagger path; the cookie is marked secure when the request uses HTTPS.
Query strings commonly appear in browser history, proxy logs, monitoring tools, and copied URLs. Use random, revocable keys, send access-key links only over HTTPS, and remove the key from the address bar after the first authenticated request. Opening the Swagger landing page without an access-key query clears the existing access-key cookie.
Local bypass
Leave LocalAuthenticationBypassEnabled disabled unless the deployment's connection-address handling is fully trusted. The bypass relies on HttpContext.Connection addresses; forwarded-header middleware, proxies, or test middleware that rewrites those addresses can affect what counts as local.
This middleware protects Swagger endpoints but is not a replacement for application-wide authentication, authorization, TLS, rate limiting, or secret rotation.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Soenneker.Extensions.Configuration (>= 4.0.878)
- Soenneker.Extensions.Dictionary (>= 4.0.660)
- Soenneker.Extensions.Enumerable (>= 4.0.660)
- Soenneker.Extensions.HttpContext (>= 4.0.736)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.3006 | 43 | 9/16/2026 |
| 4.0.3005 | 62 | 9/16/2026 |
| 4.0.3004 | 61 | 9/16/2026 |
| 4.0.3002 | 63 | 9/16/2026 |
| 4.0.3000 | 77 | 9/15/2026 |
| 4.0.2997 | 83 | 9/13/2026 |
| 4.0.2995 | 81 | 9/13/2026 |
| 4.0.2993 | 76 | 9/13/2026 |
| 4.0.2992 | 84 | 9/13/2026 |
| 4.0.2990 | 85 | 9/13/2026 |
| 4.0.2989 | 91 | 9/12/2026 |
| 4.0.2988 | 85 | 9/12/2026 |
| 4.0.2987 | 79 | 9/12/2026 |
| 4.0.2980 | 105 | 9/9/2026 |
| 4.0.2979 | 98 | 9/9/2026 |
| 4.0.2978 | 96 | 9/9/2026 |
| 4.0.2977 | 97 | 9/9/2026 |
| 4.0.2975 | 102 | 9/8/2026 |
| 4.0.2974 | 95 | 9/8/2026 |
| 4.0.2969 | 101 | 9/7/2026 |
Updated Multiple NuGet packages