由不同服务器处理授权和身份验证的最佳实践

时间:2018-08-09 20:45:16

标签: node.js authentication authorization jwt

我正在寻找一种使用Node.js API与其他应用程序共享SSO用户表和密钥的方法。

当前实现:我有一个用于身份验证的中央服务器。授权发生在应用程序级别。用户使用我的SSO服务器进行注册。用户信息存储在MySQL DB中。当用户登录时,SSO将生成一个JWT令牌,并将其发送给客户端(将其存储在cookie中)。然后,对于每个请求,客户端将发送令牌,而不是用户名和密码。

我将有一个产品展示页面,其中列出了所有应用程序。

每个应用程序都有自己的数据库/文件系统来存储用户信息。我考虑了两种与每个应用程序共享用户信息和密钥的方法。

设计1:

  1. 您从Cookie复制JWT的值,在应用程序中对其进行解码,然后尝试将用户信息插入相应的数据库/文件中
  2. 当用户单击特定应用程序时,此操作会在SSO的产品显示页面中发生
  3. 除非用户在SSO产品显示页面中单击App,否则每个应用程序都不会存储用户信息。

Design-2:适用于用户管理和密钥共享

  1. 我们在SSO中显式配置所有应用服务器

  2. 我们提供了一个API,用于将用户数据发送到应用程序

如何有效管理多个应用程序中的添加,删除,更新用户信息,并在所有应用程序之间共享密钥?我应该如何处理?

0 个答案:

没有答案