Azure API Management:非标准认证流程的授权配置咨询
自定义认证API的授权实现方案
问题描述
我有一个需要配置认证的API,它不遵循标准OAuth2合规流程。具体要求是向https://{APIUrl}/Login发送GET请求,在请求头中传递userName和password;该请求的响应体返回AccessToken和RefreshToken,用于后续API请求。请问能否使用Authorizations实现?若不行,是否推荐用send-request策略预先调用Login端点获取AccessToken,再用于主API调用?
解答
1. 能否用Authorizations实现?
不能直接使用标准的Authorizations组件实现。因为你的认证流程完全偏离了OAuth2规范——OAuth2不会通过GET请求在请求头传递用户名密码,也不会采用这种直接返回Token的非标准响应格式。标准Authorizations模块仅支持适配OAuth2、OpenID Connect等合规认证协议,无法兼容这类自定义认证逻辑。
2. 推荐方案
推荐使用send-request策略预先获取Token,这是适配此类自定义认证流程的常规实践,具体逻辑如下:
- 在主API调用的前置流程中,添加
send-request策略,向https://{APIUrl}/Login发送GET请求,请求头中带上userName和password参数 - 通过响应解析逻辑提取返回的
AccessToken和RefreshToken,用set-variable策略将其存储为全局或局部变量 - 主API请求时,从变量中取出
AccessToken,添加到请求的指定位置(通常是请求头)完成认证 - 可额外补充Token过期校验逻辑,当检测到Token失效时,自动触发Login接口调用刷新Token
内容的提问来源于stack exchange,提问作者Kiran Ramaswamy
相关产品推荐
相关产品推荐

