如何设计安全性以使用 Spring 进行集中式身份验证器? [关闭]
Posted
技术标签:
【中文标题】如何设计安全性以使用 Spring 进行集中式身份验证器? [关闭]【英文标题】:How can I design the security to have a centralized authenticator using Spring? [closed] 【发布时间】:2019-10-11 04:42:18 【问题描述】:我想要一个用于各种 App 的集中式身份验证器。此身份验证器必须允许我使用 Facebook、Google 和表单(使用我的本地数据库)登录。
我可以为我自己的数据库使用 Google、Git 和 Facebook 的 Oauth2 和 OpenId 连接(特别是 mitreID 连接)吗?
特别是我不知道是否有必要为此目的使用 openId。
最好的方法是什么?
【问题讨论】:
【参考方案1】: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 之间的 OAuth 2.0 身份验证/授权流程, LinkedIn、微软和 Instagram。
您可以修改“demos/client-demo/src/main/webapp/WEB-INF/views/index.jsp”以在表单下方列出 Facebook 和 Google 的登录按钮(使用我的本地数据库)。
备注:出于演示目的,本地 OAuth 2.0 服务器(由Apache Oltu OAuth 2.0 Client and Provider 在 GitHub 存储库开发)使用数据文件“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 连接(特别是 mitreID 连接)用于您自己的数据库。您只需要将 Google、Git 和 Facebook 发送的用户信息和 OpenId 连接(特别是 mitreID 连接)与存储在您自己的数据库中的本地用户信息进行映射。
代码“demos/client-demo/src/main/java/org/apache/oltu/oauth2/client/demo/controller/ResourceController.java”resourceResponse.getBody()检索由 Google、Git 和 Facebook 发送的用户信息和 OpenId 连接(特别是 mitreID 连接)。
(3) 引用“特别是我不知道是否有必要为此使用openId。”
回应:Apache Oltu OpenID Connect Client and Provider GitHub 仓库,开发了一个本地 OpenID Connect 客户端和一个基于 Apache Oltu 的 OpenID Connect 服务器,可以作为集中式 OpenID Connect 客户端的参考”如果有必要使用 openId 作为您的各种 App 的集中身份验证器”。
【讨论】:
以上是关于如何设计安全性以使用 Spring 进行集中式身份验证器? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring Security + Spring 数据 + MongoDB 进行身份验证
使用 JWT 的 Spring 安全性,如何使用 JwtAuthenticationFilter 对 /login 等某些端点进行身份验证?