这是我的应用程序应如何工作:
如果用户拥有可以从其他应用程序购买的足够的芯片(令牌),或者可以在某些事件中被授予(无论如何),他们可以使用我的应用程序的某些功能。
用户具有与其相关联的称为“芯片”的属性,该属性表示一些数字。此信息可能应该表示为索赔。
我希望Keycloak为我做此授权-检查用户是否可以使用该功能。我遇到过基于JavaScript的策略。看来他们能够处理令牌中的信息-例如用户电子邮件等,但这不是我的情况,令牌中可能包含过时的信息,即令牌生成时,用户拥有足够的筹码,但从那以后他就花了它们。
也许应该在花费筹码后刷新令牌,但是在那种情况下,是否会使用绑定到用户的当前信息来更新令牌?或者授权服务可以在评估策略期间以某种方式访问数据库?这项工作可行吗,或者对此用例有任何优雅的解决方案?
答案 0 :(得分:0)
Keycloak不在这里检查用户是否有足够的钱。这里的Keycloak表示用户是否已通过身份验证,以及他是否具有特定应用程序(管理员,用户...)的角色。
检查用户是否有足够的钱应该在服务器端。对于传入请求,您必须在数据库中检查用户是否有足够的芯片来访问应用程序,如果没有,则返回403。