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

cwxwcias  于 2022-12-18  发布在  Spring
关注(0)|答案(1)|浏览(133)

我尝试在我的spring security应用程序中添加用户角色(最终目标是为付费用户创建一个角色)。我使用oidc进行身份验证。我有3个不同的应用程序,一个客户端,一个资源服务器和一个自定义的身份验证服务器(用于使用用户名和密码登录)。我还将google作为登录选项直接集成到我的客户端应用程序中。looks like this。两者都使用授权代码流。
我遇到的问题是如何以最好的方式整合用户角色。因为我认为所有的用户都应该存储在一个地方。当用户登录/注册用户名和密码时,我可以在auth服务器的数据库中获得/存储帐户。但当有人使用google时,我不知道如何存储用户。
我的问题是:当有人登录google时,我的客户端和google在通信,但是有没有可能让我的auth服务器充当“中间人”,这样我就可以存储和获取数据,可能是从jwt令牌获取的,这对实现我的用户角色很有帮助。

zi8p0yeb

zi8p0yeb1#

是的,这种“中间人”很常见,它被称为身份联盟。
市场上有不少OIDC授权服务器支持“社交登录”(使用Google登录,但也可以使用Facebook、Github等)和角色管理。
Keycloak是一个著名的“内部部署”示例,但也有许多SaaS示例,如Okta、Auth0、Amazon Cognito ...

相关问题