无用户交互的定时Azure Function如何处理OAuth2回调?
定时器Azure Function无交互访问OAuth2 API的解决方案
1. 优先用客户端凭证模式(根本不需要回调地址)
你的Function是后台定时任务,全程无用户参与,完全没必要用需要回调的授权码模式,客户端凭证模式才是正确选择:
- 直接拿预先在对方企业注册好的客户端ID、密钥(或证书),调用对方的令牌接口获取访问令牌
- 这种模式从设计上就不需要回调地址,完美适配后台服务场景
- 你要做的就是在对方的OAuth2注册平台,把你的Function注册成“服务账户”或者“机器用户”,拿到对应的客户端凭证就行
2. 若对方硬要求填回调地址的变通方法
如果对方API的注册流程强制要填回调地址(哪怕是后台服务),不用纠结:
- 可以填你的Azure Function默认域名,格式是
https://<你的Function应用名>.azurewebsites.net/.auth/login/oauth2/code/<随便填个提供商名>,这个地址是Function用于用户登录的默认回调,但后台任务不会实际用到,只是用来满足注册要求 - 或者直接填一个你自己控制的HTTPS地址(比如个人静态站),反正客户端凭证模式下这个地址不会被调用,只是个占位符
关于Azure里的配置说明
定时器Function是临时进程,但你不需要在Azure里配置任何回调地址:
- 后台无交互的OAuth2流程根本用不上回调
- 要是只是为了满足对方注册要求,直接填个合规的HTTPS地址就行,Azure Portal里没地方专门给这种后台任务设回调
内容的提问来源于stack exchange,提问作者Scott Dallas
相关产品推荐
相关产品推荐

