【问题标题】:Are there any known Java implementations for OAuth2 'mac' token type?OAuth2 'mac' 令牌类型是否有任何已知的 Java 实现?
【发布时间】:2014-03-14 19:50:47
【问题描述】:

我查看了各种 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 令牌类型,仅此而已。根本不支持这种令牌类型有什么特别的原因吗?

【问题讨论】:

    标签: java oauth-2.0 hmac


    【解决方案1】:

    大多数OAuth 2.0 的Java 库支持Bearer 令牌类型的原因是Bearer 令牌配置文件带来了简化的身份验证方案。任何拥有bearer 令牌的用户都可以使用它来访问相关资源(无需证明拥有加密密钥)。 OAuth 2.0 授权框架:Bearer 令牌使用规范描述了在 HTTP requests 中使用 bearer 令牌来访问 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 Token Profile 定义了HTTP MAC 访问认证方案,提供了一种通过对请求进行部分加密验证的认证HTTP请求的方法,包括HTTP方法、请求URI和主机。每个访问令牌类型定义指定与access_token 响应参数一起发送到客户端的附加属性(mac_key、mac_algorithm)。

    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 是 OAuth 2.0 的 Java 库,带有 MAC 令牌配置文件。

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

    【讨论】:

      【解决方案2】:

      我不是这方面的专家,但我的印象是PicketLink同时支持MAC和BEARER token types。

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

      【讨论】:

        猜你喜欢
        • 2013-04-10
        • 2020-01-17
        • 1970-01-01
        • 2012-10-30
        • 2010-09-18
        • 2010-12-15
        • 2014-01-05
        • 2016-06-04
        相关资源
        最近更新 更多