OAuth2'mac'令牌类型是否有任何已知的Java实现?

时间:2012-07-12 21:01:41

标签: java oauth-2.0 hmac

我已经查看了各种OAuth2 java库(spring-security-oauth,cxf,scribe,google-oauth-java-client),并且找不到支持Mac令牌类型的任何内容,如下所述: http://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-01

默认情况下,所有这些都支持Bearer令牌类型。是否有任何特殊原因支持此令牌类型?

2 个答案:

答案 0 :(得分:2)

OAuth 2.0支持Bearer令牌类型的大多数Java库背后的原因是Bearer令牌配置文件带来了简化的身份验证方案。任何具有bearer令牌的用户都可以使用它来访问相关资源(不会证明拥有加密密钥)。 OAuth 2.0授权框架:Bearer令牌使用规范描述了在bearer HTTP中使用requests令牌访问受OAuth 2.0保护的资源。

Bearer访问令牌的响应

HTTP/1.1 200 OK
     Content-Type: application/json;charset=UTF-8
     Cache-Control: no-store
     Pragma: no-cache

     {
       "access_token":"mF_9.B5f-4.1JqM",
       "token_type":"Bearer",
       "expires_in":3600,
       "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA"
      }

MAC令牌配置文件定义了HTTP MAC访问身份验证方案,提供了一种通过部分加密验证请求进行身份验证的HTTP请求的方法,包括HTTP方法,请求URI,和主持人。每个访问令牌类型定义都指定发送到客户端的其他属性(mac_keymac_algorithm)以及access_token响应参数。

HTTP/1.1 200 OK
     Content-Type: application/json
     Cache-Control: no-store

     {
       "access_token":"SlAV32hkKG",
       "token_type":"mac",
       "expires_in":3600,
       "refresh_token":"8xLOxBtZp8",
       "mac_key":"adijq39jdlaska9asud",
       "mac_algorithm":"hmac-sha-256"
     }

access_tokenMAC密钥标识符是标识用于计算请求MAC的{​​{1}}密钥的字符串。该字符串通常对客户端不透明。服务器通常为每组MAC凭据分配特定的范围和生命周期。标识符可以表示用于检索授权信息的唯一值(例如,来自数据库),或者以可验证的方式自包含授权信息(即,由一些数据和签名组成的字符串)。

Scribe是Java MAC中带有OAuth 2.0令牌配置文件的库。

来源:OAuth 2.0 Bearer Token Profile Vs MAC Token Profile

答案 1 :(得分:0)

我不是这个领域的专家,但我似乎认为PicketLink支持MAC和BEARER token types

我不确定这是你想要的。如果您有任何疑问,可以contact them here