我们正在开发一个iOS应用程序,用户需要使用email+password (或手机号码)进行身份验证。我们的后端是由几个使用Akka-Http的微服务组成的。它需要快速、可伸缩、并发,并且authentication+authorization应该跨我们的多个服务工作。我正在尝试找出使用哪种身份验证方法。Akka-HTTP目前提供基本认证和OAuth2的部分实现。
所以一开始我们考虑的是基本身份验证(太简单,功能不够),Oauth1 (太复杂),所以我们转向了OAuth-2.0,因为它是一种标准。
然后我们考虑AWS Cognito,因为它结合了Oauth-2.0和OpenID连接,后者提供了OAuth2所缺少的身份验证机制。http://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html
然后我们意识到OAuth2只是使用第三方进行身份验证--实际上我们不需要第三方身份验证提供商--也许我们需要自己做这件事,使用Cognito会在我们的微服务之外创建额外的api调用……
所以我读了一点关于使用WSSE specs:http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html创建我们自己的自定义身份验证提供程序的文章,我也发现了这个使用sure的例子,但我确信它与Akka-Http:http://danielasfregola.com/2015/06/29/how-to-create-a-spray-custom-authenticator/没有太大的不同它看起来太简单了,而且没有令牌过期...
所以我的问题是,我是不是错过了什么?我应该选择什么方法,在哪里可以找到它的例子?
我觉得我在兜圈子,我们将不得不从头开始编写我们自己的自定义身份验证提供程序,这有点说不通。毕竟,几乎每个人都需要身份验证,这应该是一个标准。
发布于 2017-08-12 06:51:47
我最近一直在使用SoftwareMill的akka-http-session库,发现它很容易集成。它支持基于案例类的会话、JWT、具有可插拔存储的刷新令牌、使用头部和CSRF令牌,以及一些用于路由的很好的简单指令。
https://stackoverflow.com/questions/35151680
复制相似问题