首页 文章

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

提问于
浏览
9

在我的API文档中,我想定义每个API endpoints 所需的安全性 . 该项目已定义角色和权限,用于确定哪些用户可以访问API . Swagger记录此信息的最佳方式是什么?有关如何显示此详细信息的最佳做法或建议吗?

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

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

记录每个 endpoints 的角色和权限信息的最佳方法是什么?

1 回答

  • 2

    如果您的API使用oAuth身份验证,则可以使用范围 . 没有标准的方法来表示Swagger / OpenApi中的角色对抗基本身份验证,因此您将继续使用供应商扩展(Swagger-UI或swagger2markup等工具无法解释,如您所见),或包括信息作为 summarydescription 属性中的文本 .

    你可以定义多个 securityDefinitions 所有类型 basic 并且每个角色使用一个,但这有点像黑客 .

    有关将范围扩展到其他安全方案的提议,请参阅此问题https://github.com/OAI/OpenAPI-Specification/issues/1366 .

相关问题