6

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

默认情况下,它们都支持 Bearer 令牌类型,仅此而已。有什么特殊原因根本不支持这种令牌类型吗?

4

2 回答 2

2

大多数 Java 库OAuth 2.0支持Bearer令牌类型的原因是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"
      }

MACToken Profile 定义了HTTP MAC访问认证方案,提供了一种通过对请求进行部分加密验证的方式来发出经过认证的 HTTP 请求,包括 HTTP 方法、请求 URI 和主机。每个访问令牌类型定义都指定了与响应参数一起发送到客户端的附加属性 ( mac_key, )。mac_algorithmaccess_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_token或密钥标识符是一个字符串,用于MAC标识MAC用于计算请求的密钥MAC。该字符串通常对客户端是不透明的。服务器通常为每组MAC凭据分配特定的范围和生命周期。标识符可以表示用于检索授权信息的唯一值(例如从数据库中),或者以可验证的方式自包含授权信息(即由一些数据和签名组成的字符串)。

Scribe是 Java 中用于 Token 配置文件的OAuth 2.0MAC

资料来源:OAuth 2.0 承载令牌配置文件与 MAC 令牌配置文件

于 2014-03-14T11:50:47.760 回答
0

我不是该领域的专家,但我似乎认为PicketLink支持 MAC 和 BEARER令牌类型

我不确定这是你想要的。如果您有任何疑问,可以在这里联系他们

于 2014-03-14T09:27:19.513 回答