处理具有多个提供者的用户角色的最佳方法是什么?



我试图将用户角色添加到我的spring安全应用程序中(最终目标是为付费用户创建一个角色)。我使用oidc进行身份验证。我有3个不同的应用程序,一个客户端,一个资源服务器和一个自定义认证服务器(用于登录用户名和密码)。我还集成了谷歌作为登录选项直接到我的客户端应用程序。看起来像这样。都使用授权码流。

我遇到的问题是如何以最好的方式集成用户角色。因为我认为所有的用户都应该存储在一个地方。当用户使用用户名和密码登录/注册时,我可以在认证服务器的数据库中获取/存储该帐户。但是当有人使用谷歌时,我不知道如何存储用户。

我的问题是:当有人登录谷歌我的客户端和谷歌正在沟通。但是,是否有可能以某种方式使我的自定义认证服务器充当"中间人"呢?所以我可以存储和获取数据,可能从jwt令牌?这对于实现我的用户角色来说是非常好的。

是的,这个"中间的人";很常见。它被称为身份联合。

市面上不少OIDC授权服务器都支持"社交登录";(登录与谷歌,但也Facebook, Github等)和角色管理。

Keycloak是一个著名的"on premise"。示例,但也有许多SaaS,如Okta, Auth0, Amazon Cognito,…

最新更新