在多租户 SAAS 软件上使用 facebook/google/ms 等进行单点登录

问题描述 投票:0回答:1

我们有一个 SAAS 软件,其中每个租户都有自己的一组用户,这些用户具有多种角色,例如具有不同权限的经理、用户、承包商等。 今天,我们将所有这些都存储在我们自己的数据库中,并拥有自己的登录名。因此,我们为每个租户创建一个帐户实体,每个用户都有一个指向该帐户实体的外键。用户还具有我们用于授权的角色。 因此,当用户登录时,我们会创建一个带有帐户 ID 和角色的 JWT 令牌。

我们希望添加功能来支持使用谷歌、Facebook、微软等以及我们现有的登录。因此,当创建租户时,可以添加用户列表,例如,[电子邮件受保护][电子邮件受保护]等。

当用户选择使用 google 登录我们的应用程序时,我们将重定向到 google 并对其进行身份验证并获取令牌作为回报。然而,这个令牌具有访问谷歌资源的角色。我们可以根据前面提到的预先创建的用户列表将用户映射到租户。

我们现在希望客户端获得具有我们角色的 JWT 令牌,以便当客户端从不同的微服务调用我们的 API 时,它可以通过适当的授权访问我们的资源。

我需要如何实现这一目标的帮助。

authentication jwt authorization single-sign-on
1个回答
0
投票
我不确定,但现在我正在按照以下方式进行。例如微软

    使用 msal libarary 通过 microsoft 登录。
  1. 静默获取访问令牌
  2. 将访问令牌传递给我们的用户管理服务。 A。用户管理使用电子邮件验证登录是否存在。 b.它使用访问令牌来调用 microsoft graph api。 C。如果成功,它会生成自己的访问令牌并返回到 UI
  3. UI 存储令牌并使用我们的令牌来访问我们的 api。
  4. 注销时,它会删除这两个令牌。
© www.soinside.com 2019 - 2024. All rights reserved.