我已经实施了一项网络服务,目前我正在开展安全工作。
此Web服务是使用Spring启动实现的。最初我会将客户端作为Android应用程序和Web应用程序,但将来我会考虑将此API公之于众,因此我也必须考虑这个问题。
我研究了很多关于Spring Security Oauth2的内容,但基本上有两个疑问:
到目前为止我见过的所有示例都使用了Web App客户端,其中服务器重定向到url的身份验证。在Android应用程序中,如何完成此身份验证?毕竟,我没有在Android上使用Html进行重定向。
我需要我的客户使用Facebook登录,用户可以在App中共享。最初我考虑过应用程序客户端负责执行此身份验证的可能性,并稍后将其发送到我的服务器,因为我认为它比Spring Social更实用。这可能吗?
非常感谢,欢迎任何关于我的用例体系结构的提示。
答案 0 :(得分:0)
一种可能性是使用联合身份管理系统,如keycloak。 Keycloak提供适用于弹簧的适配器以及Android具有完整的OAUTH2支持,并使您可以使用Facebook作为身份提供商。 它为您带来了很多好处,因为您最有可能需要的许多功能已经存在。另一方面,这是一个很大的话题,所以请注意,需要一些时间才能使整个设置生效。您需要托管keycloak,为Android应用程序和Web应用程序配置客户端,为Android应用程序和Web应用程序引入keycloak适配器,最后将Facebook配置为身份提供者。
编辑:
看看here,这看起来很有希望。一般来说,我不得不承认我没有将keycloak与facebook或Android集成在一起。我们利用它来保护我们的spring-boot和Java EE应用程序。我只是在整合中积极参与其中,并且对所述功能感到愚蠢。还可以手动see在Android中执行OAUTH2。 Here是如何进行Facebook集成的示例。我希望这会有所帮助,祝你好运;)