OAuth授权类型问询:存储连接字符串场景对应哪种授权类型?
问题分析与解答
核心结论
你的这个流程不是单纯的授权码授权,而是结合了授权码流与OAuth 2.0代表用户(On-Behalf-Of,OBO)授权类型的组合流程,其中后者是实现服务器获取存储专用access token的关键环节。
具体拆解
- 用户登录阶段:授权码流
用户登录服务器的过程,本质是通过授权码授权完成用户身份认证:用户先被引导到认证服务器完成身份验证,授权服务器返回授权码给服务器,服务器再用授权码换取针对自身服务的access token(包含用户身份信息的JWT),这一步完全符合授权码授权的逻辑。 - 调用存储服务阶段:On-Behalf-Of授权
服务器需要获取带存储scope的access token时,并不是直接用授权码去换,而是拿着之前获取的、代表用户身份的access token,向授权服务器发起OBO请求,申请一个专门用于访问存储服务的token。授权服务器会验证原token的有效性、用户权限,确认后颁发带有存储scope的新access token,服务器再把这个token放入连接字符串中访问存储资源。
为什么不是纯授权码授权?
授权码授权的核心是终端用户直接向授权服务器申请授权,换取的token用于访问用户自己授权的资源;而你的场景中,是服务器作为中间方,拿着用户的身份凭证,代表用户向授权服务器申请另一个资源(存储服务)的访问凭证,这正是OBO授权类型的典型应用场景,常见于后端API需要调用下游服务且需携带用户身份的场景。
内容的提问来源于stack exchange,提问作者stanleyerror
相关产品推荐
相关产品推荐

