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

时间:2019-01-19 21:02:11

标签: vaadin vaadin10 vaadin-flow

我是Vaadin的新手(但到目前为止很喜欢)。我正在使用Vaadin 12,但是对于“最佳方法”使用“大型主要”外部登录系统实现标准登录屏幕感到困惑,即:

  1. 使用Google登录
  2. 使用MS Azure登录
  3. 使用LinkedIn登录
  4. 使用Box登录

(我不打算支持自定义注册/登录页面来询问用户其姓名和电子邮件等-这是浪费时间,因为用户至少可以从上述4个受支持的系统中进行选择,因此我委托了整个用户名/密码管理系统,甚至更大的系统,等等。)

但是,像“使用稳定的” /“经过测试的” 登录系统那样简单的东西使用“大型”外部提供程序(例如,上面的列表之一)似乎并没有在Vaadin 12中预先构建。 (也没有我能效仿的例子)。我发现最好的是https://vaadin.com/directory/component/oauth2-popup-add-on/overview,但这似乎仅适用于Vaadin 7(也许是8)。从过去的问题中,我的理解是Vaadin 8组件与Vaadin 10/12/14等不兼容。因此,如何使用外部提供的内容(例如MS Azure)安全(轻松地)实施安全,简单的登录系统, Vaadin 12?

(注意:我确实发现https://vaadin.com/directory/component/google-sign-in-component/overview似乎适用于Vaadin 10+,但似乎只适用于Google;这是否意味着我们需要为MS Azure / LinkedIn等自定义构建类似的组件,查找是否有人为这些系统构建了聚合物Web组件,然后将其集成到Vaadin中?即使答案为“是”,https://vaadin.com/directory/component/google-sign-in-component/overview中的示例似乎也是“危险”(顺便说一句,我的Web-知识和安全性知识接近于零),因为这似乎意味着人们可以仅使用“事件”类来检索用户的名称/电子邮件等,但是从技术上讲,信息不应该 NOT 来自前端(因为任何体面的黑客都可以直接调用Vaadin后端servlet并简单地“提供”用户名/电子邮件等),但是只能使用 访问令牌(或者也许是叫做别的东西-我现在对术语不了解),然后后端代码(并且只有后端代码)会使用此访问令牌重新调用外部提供商(例如google),然后(然后才)最终确定用户名/电子邮件等。(而且,由于后端是java,所以我认为“最好”的此类库使用的是抄写员:https://github.com/scribejava/scribejava/)(大概是,一旦用户名/ email最终确定,然后可以以某种方式将其保存为Vaadin中的会话变量,以便后续调用具有所需的信息?)(注意:作为附加约束,我正在努力避免Spring -我已经使用过过去,它使我的代码复杂了十倍,并且使调试和与非Spring示例代码的集成成为一个噩梦。...但是,如果我必须//愿意使用Java EE(即javax库),我愿意/如果强烈建议您这样做...)

0 个答案:

没有答案