我很困惑,似乎没有标准的方法可以在向授权服务器发送授权请求时为访问令牌指定访问者。
OAuth2将访问令牌指定为不透明的字符串;规范中仅提及“受众群体”,即访问令牌可能是“受众群体受限的”。
许多最新的授权服务器实现似乎产生了JWT访问令牌,并且JWT指定了听众(aud)声明。
据我发现:
-Auth0使用“受众群体”参数
-Connect2id使用“资源”参数
-Identity Server对'aud'声明使用基于颁发者的固定值,并假定范围已足够-但是,这并不适合所有用例。
-出色的《 OAuth2 in Action》一书展示了一个示例,该示例在'aud'声明中包含资源服务器URI,但没有说明其来源。
那么,如何以标准方式获取特定受众(资源服务器,API等等)的访问令牌?
最佳答案
我想你是对的。有一些可用的指南。
The OAuth 2.0 Authorization Framework: Bearer Token Usage
OAuth 2.0: Audience Information (draft-tschofenig-oauth-audience-00.txt)
OpenID connect明确定义的“ aud”参数为:
需要。此ID令牌的目标受众。它必须
包含依赖方的OAuth 2.0 client_id作为受众
值。它也可以包含其他受众的标识符。在里面
一般情况下,aud值是区分大小写的字符串数组。在
在只有一个听众的情况下的常见特殊情况,aud值可以
是一个区分大小写的字符串。