Vaadin 使用Google/MS Azure/LinkedIn/Box进行身份验证

Vaadin 使用Google/MS Azure/LinkedIn/Box进行身份验证,vaadin,vaadin10,vaadin-flow,Vaadin,Vaadin10,Vaadin Flow,我是瓦丁的新手(但到目前为止我很喜欢它)。我使用的是Vaadin 12,但对于使用“big main”外部登录系统实现标准登录屏幕的“最佳方式”感到困惑,即: 使用谷歌登录 使用MS Azure登录 使用LinkedIn登录 使用登录框登录 (我不打算支持自定义注册/登录页面来询问用户的姓名和电子邮件等——这是浪费时间,因为用户至少可以从上述4个受支持的系统中进行选择,这样我就可以将整个用户名/密码管理系统委托给更大的系统等。) 然而,像使用“大”外部提供者(如上面列表中的一个)的稳定/测试登录

我是瓦丁的新手(但到目前为止我很喜欢它)。我使用的是Vaadin 12,但对于使用“big main”外部登录系统实现标准登录屏幕的“最佳方式”感到困惑,即:

  • 使用谷歌登录
  • 使用MS Azure登录
  • 使用LinkedIn登录
  • 使用登录框登录
  • (我不打算支持自定义注册/登录页面来询问用户的姓名和电子邮件等——这是浪费时间,因为用户至少可以从上述4个受支持的系统中进行选择,这样我就可以将整个用户名/密码管理系统委托给更大的系统等。)

    然而,像使用“大”外部提供者(如上面列表中的一个)的稳定/测试登录系统这样简单的东西似乎并没有在Vaadin 12中预先构建。(也没有任何我可以效仿的例子)。我发现最好的是,但这似乎只适用于瓦丁7号(也许还有8号)。从过去的问题来看,我的理解是,Vaadin 8组件与Vaadin 10/12/14等不兼容。因此,如何使用Vaadin 12安全(轻松)地使用外部设备(如MS Azure)实现安全、简单的登录系统


    (注意:我确实找到了适用于Vaadin 10+的组件,但它似乎只适用于谷歌;这是否意味着我们需要为MS Azure/LinkedIn等定制类似的组件,方法是查找是否有人为这些系统构建了聚合物网络组件,然后将其集成到Vaadin中?即使答案是“是”,这似乎是一个“危险”的例子(顺便说一句,我的网络知识和安全知识几乎为零),因为这似乎意味着可以简单地使用“事件”类来检索用户名/电子邮件等,但从技术上讲,这些信息不应该来自前端吗(因为任何一个体面的黑客都可以直接调用Vaadin后端servlet并简单地“提供”用户名/电子邮件等),但取而代之的是访问令牌(或者它被称为其他东西——我现在对术语不太清楚),然后后端代码(只有后端代码)将重新调用外部提供者(例如谷歌)使用这个访问令牌,然后(并且只有在那时)最终确定用户名/电子邮件等(而且,由于后端是java,我认为使用这种库的“最佳”方法是scribe:)(并且假设,一旦最终确定用户名/电子邮件,它可以以某种方式保存为Vaadin中的会话变量,以便后续调用具有所需的信息?)(注意:作为一个附加约束,我正在努力避免使用Spring——我在过去使用过它,它使我的代码复杂化了十倍,并使调试和与非Spring示例代码集成成为一个轻度的噩梦……但是,如果我必须/强烈建议这样做,我愿意使用Java EE(ie javax库)…)

    这读起来像是典型的OAuth2场景。我建议阅读OAuth2的基础知识,然后使用Spring安全性(使用Spring Boot更容易)作为OAuth2客户机应用程序。IMO Vaadin不是应该执行“使用服务XYZ登录”等身份验证操作的框架但是,您可以使用Vaadin实现委托给授权服务器的屏幕,以替换Spring Security中预定义的屏幕。