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

问题描述 投票:16回答:1

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

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

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

scala oauth-2.0 spray akka-http
1个回答
2
投票

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

引用the RFC

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

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

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

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

我个人过去曾经使用过pauldijou/jwt-scala,你可能想看一下。

© www.soinside.com 2019 - 2024. All rights reserved.