use*_*488 2 token oauth-2.0 jwt openid-connect auth0
我很难获得Auth0以JWT格式返回访问令牌。我需要JWT格式的文件,以便可以使用Java JWT库进行验证。
我正在使用Auth0 lock登录,并用于/oauth/token获取访问令牌-我尝试将受众设置为我们的API标识符(包括锁定auth参数和/oauth/token有效负载在内的多个位置),但未成功-返回访问令牌,但未返回JWT。
或者,是否有一个Java库用于验证“本机” Auth0访问令牌?
var options = {
auth: {
redirectUrl: '<redirect_link>',
responseType: 'code',
params: {
audience: '<API_identifier>',
scope: 'openid offline_access'
}
},
allowedConnections: ['Username-Password-Authentication']
};
var lock = new Auth0Lock('<clientId>', '<auth0_Host>', options);
lock.show();
Run Code Online (Sandbox Code Playgroud)
返回的代码用于POST https://<host>/oauth/token与数据:
client_id=<client_id>&redirect_uri=<redirect_url>&client_secret=<client_secret>&code=<returned_code>&grant_type=authorization_code&audience=<API_identifier>
Run Code Online (Sandbox Code Playgroud)
哪个成功,但是访问令牌不是JWT,例如: "access_token":"sG99DAJI789SYgTj"
使用范围openid返回JWT格式的id_token,但是从阅读文档开始,不应将此令牌用于API授权。
似乎Auth0使用的是OpenID connect,这是OAuth2的扩展。最终用户身份验证成功后,服务器将返回JWT格式的ID令牌和访问令牌
ID令牌
ID令牌是一种安全令牌,其中包含有关使用客户端时授权服务器对最终用户的身份验证的声明以及可能的其他请求的声明。ID令牌表示为JSON Web令牌(JWT)[JWT]。
您可以使用任何JWT库在客户端验证ID令牌,但是访问令牌的验证规则不同
3.2.2.9。访问令牌验证
为了验证从授权端点发出的带有ID令牌的访问令牌,客户端应该执行以下操作:
使用JWA中为ID令牌的JOSE标头的alg标头参数指定的哈希算法对access_token的ASCII表示形式的八位字节进行散列。例如,如果alg为RS256,则使用的哈希算法为SHA-256。
取哈希的最左半部分,并用base64url对其进行编码。
的值
at_hash在ID令牌必须匹配在先前步骤中所产生的值。
因此,基本上要验证它,您需要access_token使用ID令牌的哈希算法来计算的摘要,并检查其是否与at_hashID令牌的声明匹配
| 归档时间: |
|
| 查看次数: |
726 次 |
| 最近记录: |