我使用ASP. Net Core 3.1制作了一个应用编程接口,并使用Swashuckle在网站的根目录下添加了SwaggerUI。也许这是一个微不足道的问题,但我希望SwaggerUI仅供授权用户访问(即不公开可用)。我读过很多关于Swagger如何处理API授权方案的帖子,但没有一篇关于SwaggerUI本身的帖子。特别是,我需要限制对它通过一些[Authorize(Policy="MyCustomPolicy")]
属性或等价物创建的静态文件的访问,因此只有在其身份中具有特定声明的用户才能访问UI。此条件仅在SwaggerUI上需要,因为API本身已经通过承载身份验证进行了权限改造,并且工作正常。
如何将此索赔要求添加到Swagger UI?
这就是我添加招摇过市服务的方式:
// Register the Swagger Generator service. This service is responsible for genrating Swagger Documents.
// Note: Add this service at the end after AddMvc() or AddMvcCore().
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo
{
Title = "MySystem API",
Version = "v1",
Description = "API for MySystem.",
Contact = new OpenApiContact
{
Name = "MyCompany S.A.",
Email = string.Empty,
Url = new System.Uri("https://contoso.com/"),
},
});
var filePath = System.IO.Path.Combine(System.AppContext.BaseDirectory, "MySystem.Web.xml");
c.IncludeXmlComments(filePath);
c.CustomSchemaIds(x => x.GetCustomAttributes(false).OfType<DisplayNameAttribute>().FirstOrDefault()?.DisplayName ?? x.Name);
});
以下是我如何将“招摇过市”添加到我的生成器中的:
// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MySystem API v1");
// To serve SwaggerUI at application's root page, set the RoutePrefix property to an empty string.
c.RoutePrefix = string.Empty;
});
提前感谢。
事实证明,这一点在这里得到了回答。我必须补充一点:
app.UseAuthentication(); // before UseAuthorization()
// Original answer
app.UseAuthorization(); // before the middleware
...
授权策略 必须 使用 授权策略 类来做用户授权。 使用基类 所有 Policy 授权策略类 必须 继承 app/Policies/Policy.php 基类。基类文件如下: <?php namespace App\Policies; use Illuminate\Auth\Access\HandlesAuthorization; class Policy { use HandlesA
基于路径的授权 Apache和svnserve都可以给用户赋予(或拒绝)访问许可,通常是对整个版本库:一个用户可以读版本库(或不),而且他可以写版本库(或不)。如果可能,也可以定义细粒度的访问规则。一组用户可以有版本库的一个目录的读写权限,但是没有其它的;另一个目录可以是只对一少部分用户可读。 两种服务器都使用同样的文件格式描述路径为基础的规则,如果是Apache,需要加载mod_authz_sv
这并不是: 唯一的区别是user/searchuser和group/searchgroup 当我尝试应用后者时,它只会给我一个错误: 关于为什么策略适用于用户而不是组,有什么想法吗?
我想在我的Spring mvc项目之一中实现基于URL的授权。在我的Spring mvc项目中,我使用java配置。我已将此站点https://www.baeldung.com/role-and-privilege-for-spring-security-registration以实现基于角色和特权的授权。 所以我创建了下面的表来实现。 这是用户表。 这个角色表。 这是角色和特权之间的映射表。 这
我是oAuth2安全系统的新手。关于访问REST资源的基于用户角色的授权,我有一个问题。我的互联网冲浪提供了关于oauth2的身份验证部分的输入。 让我提供给你困扰我的情况。
我正在使用Auth0来获得一些在我的后端API服务器中工作的身份验证和授权。Auth0使用角色权限系统,它与此处描述的策略概念兼容-https://learn.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-3.1 在用户方面,我没有问题,收集令牌。当我研究令牌时,我注意到必要的范围正在