如何在Swagger中定义角色/权限安全性

如何在Swagger中定义角色/权限安全性,swagger,swagger-ui,swagger-2.0,Swagger,Swagger Ui,Swagger 2.0,在我的API文档中,我想为每个API端点定义必要的安全性。项目定义了角色和权限,以确定哪些用户可以访问API。在Swagger中,记录这些信息的最佳方式是什么?是否有关于如何显示此细节的最佳实践或建议 这是我使用securityDefinitions和角色自定义变量尝试的,但当我通过swagger2markup或使用swagger ui运行文档时,这些信息(x-role-names)没有复制到文档中 "securityDefinitions": { "baseUserSecuri

在我的API文档中,我想为每个API端点定义必要的安全性。项目定义了角色和权限,以确定哪些用户可以访问API。在Swagger中,记录这些信息的最佳方式是什么?是否有关于如何显示此细节的最佳实践或建议

这是我使用securityDefinitions和角色自定义变量尝试的,但当我通过swagger2markup或使用swagger ui运行文档时,这些信息(x-role-names)没有复制到文档中

    "securityDefinitions": {
    "baseUserSecurity": {
          "type": "basic",
          "x-role-names": "test"
       }
    }

记录每个端点的角色和权限信息的最佳方式是什么?

如果您的API使用oAuth身份验证,您可以为此使用作用域。在Swagger/OpenApi中,没有标准方法根据基本身份验证来表示角色,因此只能使用供应商扩展(正如您所发现的,Swagger UI或Swagger 2Markup等工具无法解释这些扩展),或者将信息作为文本包含在
摘要
说明
属性中

您可以定义多个
securityDefinitions
所有类型的
basic
,并为每个角色使用一个,但这有点麻烦


另请参阅本期,了解将作用域的使用范围扩大到其他安全方案的建议。

我在规范中看到了说明,但没有看到概要。它有哪个版本?不幸的是,无论哪种方式,这些似乎只在通用安全块中显示,而不是在每个API调用中显示,这将是更理想的。看起来用basic定义范围是允许的,但这是违反规范的,所以我可以“破解”它,让它更像我希望的-但仍然不理想。对不起,我想的是“摘要”而不是“概要”,这将是操作级别,而不是安全性定义。