在Azure API Management中为指定端点添加授权遇问题求助
问题排查:APIM中添加Bearer授权后OpenAPI配置丢失的原因与解决方法
我来帮你梳理下这个问题的关键点,以及正确的配置方式:
1. 你的Bearer配置类型有误
你当前用apiKey类型来定义Bearer认证,这不符合OpenAPI规范对Bearer令牌的定义,这很可能是APIM保存后配置丢失的核心原因。
在OpenAPI规范里,Bearer令牌属于HTTP认证方案,正确的配置应该是这样的:
components: securitySchemes: BearerAuth: # 可以自定义这个认证方案的名称 type: http scheme: bearer bearerFormat: JWT # 可选字段,用来明确这是JWT类型的令牌
2. 要确保配置在正确的位置
在APIM中添加Bearer授权时,需要分两步:
- 第一步:在OpenAPI的
components.securitySchemes节点下定义上述的Bearer认证方案 - 第二步:在API级别(所有端点生效)或者单个端点上引用这个方案,示例如下:
# 全局启用(所有端点都要求Bearer验证) security: - BearerAuth: [] # 仅对特定端点启用 paths: /your-target-endpoint: post: security: - BearerAuth: [] # 其他端点配置...
3. APIM门户里的正确操作步骤
如果你是通过APIM可视化界面操作,建议这么做:
- 进入你的API,切换到「Design」标签页
- 在页面右侧找到「Security」板块,点击「Add」
- 选择「HTTP」作为安全类型,然后填写
scheme为bearer,可选填入bearerFormat为JWT - 保存后,找到需要验证的端点,在其「Security」设置里勾选你刚才创建的Bearer认证方案,再次保存
这样配置后,你重新打开OpenAPI Specification时,配置就不会消失了。
内容的提问来源于stack exchange,提问作者CoderX
相关产品推荐
相关产品推荐

