处理开放API规范中的authorizationUrl和tokenUrl的多个环境

Rya*_*sch 6 swagger openapi

是否可以以某种方式模板化 oauth2 安全方案的基本路径authorizationUrltokenUrl处理多个环境(例如 dev、sit、uat)?

我工作的公司每个环境都有一个单独的 IDP 租户,每个环境中的服务将针对特定租户/发行者验证令牌。

理想情况下,我可以定义和选择租户基本 URL,类似于我为 API 路由创建服务器模板的方式 - 请参阅此处
在此输入图像描述

我的securitySchemes目前看起来像这样:

"securitySchemes": {
    "oauth": {
        "type": "oauth2",
        "flows": {
            "authorizationCode": {
                "authorizationUrl": "https://tenant-dev.au.auth0.com/authorize?audience=test",
                "tokenUrl": "https://tenant-dev.au.auth0.com/oauth/token"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能想到的唯一多环境方法是使用以下安全方案配置,它允许我指定任何 JWT。缺点是我仍然需要通过一些外部手段获取 JWT...

"securitySchemes": {
    "oauth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
    }
}
Run Code Online (Sandbox Code Playgroud)

笔记;

  • 我们使用外部 IDP,因此 IDP 基本 URL 不会与服务基本 URL 重叠。
  • Swagger UI 在生产环境中将无法访问,但仍然有 dev、sit 和 uat。