如何设计使用Spring的集中式身份验证器的安全性?

时间:2019-05-24 14:48:03

标签: spring spring-boot spring-security oauth-2.0 openid

我想要一个用于各种App的集中式身份验证器。该身份验证者必须允许我使用Facebook,Google和表单(使用我的本地数据库)登录。

我可以将Oauth2用于Google,Git和Facebook,以及将OpenId connect(尤其是mitreID connect)用于自己的数据库吗?

尤其是我不知道是否需要为此使用openId。

最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

GitHub存储库上的

Apache Oltu OAuth 2.0 Client and Provider是Apache Oltu与Pull Request #10的分支,用于两个新的提交“添加提供者演示和自述文件”。

(1)引用“此身份验证者必须允许我使用Facebook,Google和表单(使用我的本地数据库)登录。”

响应
您可以按照README指令来构建Oltu并运行OAuth 2.0客户端演示和OAuth 2.0提供者演示,以说明本地OAuth 2.0客户端与本地OAuth 2.0服务器,Facebook,Google,Github, LinkedIn,Microsoft和Instagram。

您可以修改“ demos / client-demo / src / main / webapp / WEB-INF / views / index.jsp”,以在表单下方列出Facebook和Google的登录按钮(使用我的本地数据库)。

备注:出于演示目的,本地OAuth 2.0服务器(由GitHub存储库上的Apache Oltu OAuth 2.0 Client and Provider开发)使用数据文件“ demos / provider-demo / src / main / java / org /apache/oltu/oauth2/provider/demo/Common.java”,而不是用于存储用户信息的本地数据库。

(2)问题:“我可以对自己的数据库使用Oauth2进行Google,Git和Facebook以及OpenId连接(尤其是mitreID连接)吗?”

答案
是。您可以将Oauth2用于Google,Git和Facebook,将OpenId connect(尤其是mitreID connect)用于自己的数据库。您只需要将Google,Git和Facebook发送的用户信息和OpenId connect(尤其是mitreID connect)与存储在您自己的数据库中的本地用户信息进行映射即可。

代码“ demos / client-demo / src / main / java / org / apache / oltu / oauth2 / client / demo / controller / ResourceController.java” resourceResponse.getBody()检索由Google,Git和Facebook发送的用户信息与OpenId建立连接(尤其是mitreID连接)。

(3)引用“特别是我不知道是否需要为此使用openId。”

响应
GitHub存储库上的Apache Oltu OpenID Connect Client and Provider开发了一个本地OpenID Connect客户端和一个基于Apache Oltu的OpenID Connect服务器,可以作为集中式OpenID Connect客户端的参考。“如果有必要使用openId作为集中式身份验证器,应用”。