使用akka-http执行OAuth2身份验证的最佳方法是什么?

时间:2016-02-05 01:42:49

标签: scala oauth-2.0 spray akka-http

Akka HTTP和Spray提供authenticateOAuth2指令,但their documentation states指示

  

该指令不实现完整的OAuth2协议,而是通过从HTTP头中提取所需的令牌来实现它。

我也找不到任何为Akka HTTP或Spray实现OAuth2的库。有没有我想念的东西,或者这只是现在这些库的状态?

1 个答案:

答案 0 :(得分:2)

我认为最大的问题是OAuth2本身并没有真正告诉你实现细节是什么样的。

引用the RFC

  

令牌可以表示用于检索授权的标识符      信息或可以自包含授权信息      可验证的方式(即由一些数据和一个数据组成的令牌字符串)      签名)。其他身份验证凭据,超出了      可能需要本规范的范围才能获得      客户端使用令牌。

     

访问令牌可以具有不同的格式,结构和方法      基于资源的利用率(例如,加密属性)      服务器安全要求。访问令牌属性和      用于访问受保护资源的方法超出了范围      本规范由同伴规范定义      如[RFC6750]。

例如,您可以使用JWT来验证请求,或者您可以仅将令牌用作标识符,并询问服务是否允许该资源使用该令牌。

根据您的OAuth2提供程序,实现可能会有所不同,所以我的猜测是框架只能为您提供常见的东西(为您提取令牌),或者它必须实现所有可能的OAuth2实现,这似乎不可行点。

我个人过去曾使用pauldijou/jwt-scala,您可能需要查看。